Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: Narciso - Agosto 24, 2018, 11:17:28 am

Titolo: Sendmessage ad una stringlist, come fare?
Inserito da: Narciso - Agosto 24, 2018, 11:17:28 am
Dovrei mandare un messaggio ad una stringGrid di cui conosco l'handle.

Se fosse un Bottone,manderei:
SendMessage(H, BM_CLICK, 0, 0);


Alla Stringgrid che messaggi si possono mandare?


mi servirebbe pulirla con , per esempio, qualcosa del tipo:

SendMessage(H, _clear, 0, 0);

EH EH vi sto stressando questo periodo eh.http://www.lazaruspascal.it/Smileys/default/grin.gif
Grazie a tutti!
 
Titolo: Re:Sendmessage ad una stringlist, come fare?
Inserito da: nomorelogic - Agosto 24, 2018, 06:19:05 pm
Dovrei mandare un messaggio ad una stringGrid di cui conosco l'handle.
...
Alla Stringgrid che messaggi si possono mandare?
...
mi servirebbe pulirla con , per esempio, qualcosa del tipo:
SendMessage(H, _clear, 0, 0);

per sapere quali messaggi puoi mandare alla string grid puoi fare riferimento ai sorgenti:
dalla classe TControl in avanti fino a TStringGrid
basta cercare i metodi con la keyword "message" nella dichiarazione.

se non ne trovi uno adatto puoi sempre fare una classe che erediti da TStringGrid e puoi metterci un tuo metodo che risponda ad un tuo messaggio

però...
sei sicuro che non ti basti
Codice: [Seleziona]
StringGrid1.Clear
?  ;)



Titolo: Re:Sendmessage ad una stringlist, come fare?
Inserito da: Narciso - Agosto 24, 2018, 09:01:13 pm
Il problema è che la stringrid si trova su un programma che intercetto con findwindow ed enumeratechild

della stringgrid ho solo l'handle, ecco perché le devo mandare un messaggio.

Quando dici che devo esaminare i sorgenti, intendi i file .pas tipo grid.pas ?
Titolo: Re:Sendmessage ad una stringlist, come fare?
Inserito da: nomorelogic - Agosto 25, 2018, 10:45:05 am
esattamente

ricorda che per trovare i sorgenti di una classe è sufficiente un Ctrl+Click (sx) sul nome della classe ;)
Titolo: Re:Sendmessage ad una stringlist, come fare?
Inserito da: Narciso - Agosto 25, 2018, 10:07:54 pm
allora, non era una stringgrid ma una SysListView32

si vede che il software non era in pascal:-)

ma ho trovato che per cancellare gli item si doveva dare
sendMessage(strlstf1, LVM_deleteitem, 0, 0); 
cio' ha risolto i miei problemi! :-)

Grazie Comunque a tutti!
Titolo: Re:Sendmessage ad una stringlist, come fare?
Inserito da: Stilgar - Agosto 26, 2018, 08:38:45 pm
La string grid sotto window non ha senso.
Il sistema operativo non la conosce. Avresti potuto intercettare la form e inviare messaggi custom alla form che poi le avrebbe tradotte per la string grid.
Per la list view (configurata come report se ti ha ingannato il suo aspetto) questa è
La pagina di riferimento del messaggio: https://docs.microsoft.com/en-us/windows/desktop/controls/lvm-deleteitem
Titolo: Re:Sendmessage ad una stringlist, come fare?
Inserito da: Stilgar - Agosto 26, 2018, 08:40:50 pm
Questi i messaggi per la list view
https://docs.microsoft.com/en-us/windows/desktop/controls/bumper-list-view-control-reference-messages

Buon divertimento 😉