Italian community of Lazarus and Free Pascal
Programmazione => Generale => Topic aperto da: bonmario - Novembre 09, 2012, 10:18:33 am
-
Ciao,
mi hanno fatto notare un comportamento strano dei programmi fatti col Lazarus.
Praticamente il òproblema è questo: andate con Esplora Risorse in una cartella che contiene tanti files e selezionatene uno. Se muovete su e giù la rotella del mouse, il file selezionato rimane sempre lo stesso, ed è l'elenco che si muove in su ed in giù.
Ho provato anche con alcuni files manager in Linux e si comportano alla stessa maniera.
Se si fa la stessa cosa su una TStringGrid in Lazarus, muovendo su e giù la rotella del mouse, viene cambiato l'elemento selezionato.
Sapete se è possibile fare in modo di avere lo stesso comportamento di Esplora risorse e degli altri files manager?
Grazie in anticipo, Mario
-
ciao Mario
vai sull'object inspector ed imposta
MouseWheelOption = mwGrid
-
Grande, era proprio quello !!!!!
Un'altra domanda sempre sullo stesso argomento: quando "trascino" la scrollbar in alto o in basso, la griglia non si muove fino a quando non rilascio la scrollbar. Se faccio la stessa cosa ad esempio con una ListBox, mentre trascino la scrollbar muove la ListBox, in questo modo, riesco a capire dove sono arrivato senza mollare la scrollbar. Come faccio ad ottenere lo stesso comportamento con la TStringList?
Grazie ancora, Mario
-
in Options:
goThumbTracking = TRUE
ciao
-
Ottimo !!!
Per fare in modo di avere questi 2 comportamenti di default per tutte le TStringGrid, l'unica cosa che posso fare è modificare il sorgente "grids.pas" prima di ricompilare l'IDE, giusto?
Grazie ancora, Mario
-
è possibile ma non è di sicuro la strada giusta...
Secondo me l'approccio migliore è che ti fai un componente personalizzato ad esempio TMyStringGridche eredita da TSgringGrid e poi imposti tutto quello che vuoi e l'unica cosa che devi fare è usare il tuo componente.
ciao
-
E' fuori dalla mia portata ... non saprei come fare ad aggiungerlo ai componenti che seleziono in alto nell'IDE un nuovo componente.
Se poi grazie a qualche congiunzione astrale favorevole riuscissi a farlo, mi rimarrebbe il problema di tutte le TStrinGrid dei progetti già fatti: dovrei modificare i sorgenti per usare TSgringGrid in TMyStringGrid.
A me piace vincere facile !!!!!!
Grazie comunque dell'idea.
Ciao, Mario
-
Se poi grazie a qualche congiunzione astrale favorevole riuscissi a farlo, mi rimarrebbe il problema di tutte le TStrinGrid dei progetti già fatti: dovrei modificare i sorgenti per usare TSgringGrid in TMyStringGrid.
A me piace vincere facile !!!!!!
ciao Mario
se gli astri ti sorridono, per vincere facile basta fare un search/replace da TSgringGrid a TMyStringGrid, sia nel .pas che nel .lfm
;)
-
Mi hai quasi convinto ... sai se c'è in giro qualche guida, anche in inglese, su come aggiungere un componente alla barra dei componenti?
Grazie, Mario
-
ho trovato questa guida
http://wiki.freepascal.org/How_To_Write_Lazarus_Component (http://wiki.freepascal.org/How_To_Write_Lazarus_Component)
non sembra una cosa complicata, nel loro esempio scrivono un nuovo componente ereditando da TComboBox, tu dovrai invece specificare TStringGrid.
La guida sembra lunga ma in realtà a te interessa fino a circa la metà e poi... ci sono un sacco di figure :D
Una volta ottenuto il tuo componente dovrai intervenire sul costruttore (Create) per impostare le proprietà che ti interessano al valore che preferisci.
Tienici aggiornati.
Ciao
-
Grazie, vedo cosa riesco a tirare fuori.
Ciao, Mario