19/05/2023: A causa di un errore sono stati cancellati, insieme ad account creati da bot, alcuni account legittimi. Si prega di leggere qui: https://www.gambas-it.org/smf/index.php?topic=9733.0
Private c As Short ' Va aggiunta questa variabile Globale ! '..............Public Sub Scrollo_Scroll() Dim ob As Object Dim b As Byte c += sa.ScrollY For Each ob In sa.Children Inc b ob.Visible = True If ob.Y < TableView1.Rows[1].Y - (ob.H / (TableView1.Rows[1].Y * 0.3)) Then ob.Visible = False ob.Y = TableView1.Rows[b].Y - sa.ScrollY ob.X = TableView1.Columns[4].X - sa.ScrollX + 40 Next' Forse questo passaggio si può semplificare un po'..... :-D If sa.Children[0].Y < (TableView1.Rows[1].Y - (sa.Children[0].H * 0.3)) Then sa.Children[0].Visible = False If (sa.Children[0].Y > (TableView1.Rows[1].Y - (sa.Children[0].H * 0.3))) And (sa.Children[1].Y >= TableView1.Rows[1].H) Then sa.Children[0].Visible = True End
CitazioneVuoi dire che se hai 10000 righe inserisci 10000 pulsantiSììììììììììì, un mare di pulsanti che salgono e scendono dalle onde! No Gianluigi, lo so che giocando coi database sei abituato a maneggiare tanti e tanti record.Io nella lista ho al massimo massimo 50 righe. Nella realtà di norma non sono che una decina, e come piegavo sono relativa ognuna ad una apparecchiatura che interrogo via USB e raccolgo i messaggi di risposta che aggiorno in ogni riga (relativa ad una apparecchiatura). IL pulsante mi serve per aprire una TextAea nella quale riporto gli ultimi 5 record che mi servono per capire, se c'è stato un problema pregresso senza andare ad analizzare il log generale, che ha tutte le informazioni, ma che vanno spulciate con pazienza. Così invece capisco al volo se nel corso di una giornata il messaggio di malfunzionamento è già arrivato.La frequenza dei messaggi di malfunzionamento puo essere anche di 4 ore, giusto per intenderci.
Vuoi dire che se hai 10000 righe inserisci 10000 pulsanti
...attualmente non so come creare l'effetto del passaggio degli oggetti al di sotto della riga dell'header della TableView.Nel frattempo possiamo ricreare più o meno un effetto "sparizione/apparizione" degli oggetti, quando si trovano nei pressi dell'header con un codice che va a modificare, come segue, l'ultima routine:Codice: [Seleziona]Private c As Short ' Va aggiunta questa variabile Globale ! '..............Public Sub Scrollo_Scroll() Dim ob As Object Dim b As Byte c += sa.ScrollY For Each ob In sa.Children Inc b ob.Visible = True If ob.Y < TableView1.Rows[1].Y - (ob.H / (TableView1.Rows[1].Y * 0.3)) Then ob.Visible = False ob.Y = TableView1.Rows[b].Y - sa.ScrollY ob.X = TableView1.Columns[4].X - sa.ScrollX + 40 Next' Forse questo passaggio si può semplificare un po'..... :-D If sa.Children[0].Y < (TableView1.Rows[1].Y - (sa.Children[0].H * 0.3)) Then sa.Children[0].Visible = False If (sa.Children[0].Y > (TableView1.Rows[1].Y - (sa.Children[0].H * 0.3))) And (sa.Children[1].Y >= TableView1.Rows[1].H) Then sa.Children[0].Visible = True End
' Forse questo passaggio si può semplificare un po'..... :-D If sa.Children[0].Y < (TableView1.Rows[1].Y - (sa.Children[0].H * 0.3)) Then sa.Children[0].Visible = False If (sa.Children[0].Y > (TableView1.Rows[1].Y - (sa.Children[0].H * 0.3))) And (sa.Children[1].Y >= TableView1.Rows[1].H) Then sa.Children[0].Visible = True
... ti comunico che io di questo codice potrei farne a meno che funziona lo stesso.Codice: [Seleziona]' Forse questo passaggio si può semplificare un po'..... :-D If sa.Children[0].Y < (TableView1.Rows[1].Y - (sa.Children[0].H * 0.3)) Then sa.Children[0].Visible = False If (sa.Children[0].Y > (TableView1.Rows[1].Y - (sa.Children[0].H * 0.3))) And (sa.Children[1].Y >= TableView1.Rows[1].H) Then sa.Children[0].Visible = True
Le due righe di codice apparentemente inutili, a me risultano decisive altrimenti dopo lo scorrimento verso il basso nella prima riga scompare il pulsante.
Citazione da: kicco - 22 Maggio 2016, 17:08:29Le due righe di codice apparentemente inutili, a me risultano decisive altrimenti dopo lo scorrimento verso il basso nella prima riga scompare il pulsante.Sì, è vero: se si effettua il ritorno in alto del cursore laterale, il primo tasto (in alto) non ricompare. Questo problema a me avviene, pro, solo quando il ritono in alto è effettuato velocemente. Al contrario, se viene effettuato lentamente, il prmo tasto ricompare regolarmente.Probabilmente, quando ho deciso di inserire quelle due righe in basso, l'ho fatto perché facendo risalire velocemente il cursore laterale, non ricompariva il primo Button.
...volevo chiedere se si può risolvere il discorso del tab, che (almeno per me) è molto utile per spostarsi nella griglia.Non si può intercettare il tab?
Ciao GianluigiHo letto il post spagnolo e appunto volevo chiedere se si può risolvere il discorso del tab, che (almeno per me) è molto utile per spostarsi nella griglia.Non ho fatto in tempo a scrivere che già avevi preso in considerazione il problema Non si può intercettare il tab?
Public Sub TableView_KeyPress() ' Per impedire a questi eventi di scatenare il ' ' click quando passano alla riga successiva. ' Select Case Key.Code Case Key.Right, Key.Return, Key.Enter If TableView1.Column = 3 Then $bNoEvent = True Endif ' Lo so che il tab è usato dalle form per passare da un controllo ad un altro' ' Ma volevo vedere se riuscivo a catturarlo solo per la TableView.' Case Key.Tab Stop Event Desktop.SendKeys("\n") ' <-----Ora con stop event funziona' End Select End