tritapepe:
avrei la necessita di visualizzare il contenuto di un combobox non cliccando sul bottone relativo ma attraverso l'inserimento di un dato nel suo edit.
ho trovato le seguenti istruzioni:
// Check whether DropedDown if SendMessage(ComboBox1.Handle, CB_GETDROPPEDSTATE, 0, 0) <> 1 then // nop, so drop it SendMessage(ComboBox1.Handle, CB_SHOWDROPDOWN, 1, 0);
funzionano benissimo in ambiente Windows ma su Linux no. le costanti CB_SHOWDROPDOWN CB_GETDROPPEDSTATE in windows si trovano nella unit Windows su Linux non riesco a trovarle
Stilgar:
Hai provato a mandare un messaggio di altro tipo? Sparo a casaccio ... un mouse down?
nomorelogic:
--- Citazione da: tritapepe - Maggio 30, 2012, 07:58:49 pm ---funzionano benissimo in ambiente Windows ma su Linux no. le costanti CB_SHOWDROPDOWN CB_GETDROPPEDSTATE in windows si trovano nella unit Windows su Linux non riesco a trovarle
--- Termina citazione ---
su linux dovrebbero essere nella unit LCLIntf
hai già provato in alternativa con :
--- Codice: --- ComboBox1.DroppedDown := true;
--- Termina codice ---
tritapepe:
grazie dell' interessamento. :D
nella unit LCLIntf non ho trovato le costanti di combobox mentre nella Lwindows sono presenti solo:
ComboBox1.DroppedDown := true; è una rimediabile alternativa. Ma sarebbe interessante capire come gestire i messaggi che in Windows funzionano alla grade mentre in Linux :'(
Stilgar:
Windows è Windows. Linux è Linux. Diciamo che Linux (come il mondo Unix) si porta dietro il carrozzone del server X. BEOS, all'epoca, ha segato X11 e ha ottenuto quello che vieniva definito il MultimediaOS..... (insomma faceva mangiare la povere a tutti gli altri competitors). Grazie alla Palm, è stato dismesso (Geniali!).
A parte i rimpianti. I sistemi sono differenti, quindi gli "adattamenti" fatti non è detto che abbiano gli stessi comportamenti ;) Cerca di restare ad "alto livello" in modo che lo strato di astrazione lavori bene. So benissimo che con 2 comandini nel SendMessage si ottenevano cose apparentemente magiche. Ma tant'è ;)