Forum > Generale

aprire combobox con sendmessage in linux

(1/1)

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:

{ Combo Box Notification Codes }
const
  CBN_ERRSPACE     = (-1);
  CBN_SELCHANGE    = 1;
  CBN_DBLCLK       = 2;
  CBN_SETFOCUS     = 3;
  CBN_KILLFOCUS    = 4;
  CBN_EDITCHANGE   = 5;
  CBN_EDITUPDATE   = 6;
  CBN_DROPDOWN     = 7;
  CBN_CLOSEUP      = 8;
  CBN_SELENDOK     = 9;
  CBN_SELENDCANCEL = 10; 

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'è ;)

Navigazione

[0] Indice dei post

Vai alla versione completa