![]() |
Anfängerfrage zum Comboboxverhalten
Hallo,
ich schreibe gerade an meinen ersten zwei Delphiprogrammen und bin so gut wie fertig, es fehlen eigentlich nur noch ein paar "kosmetische Korrekturen". :wink: Aber bei einem Problem, weiß ich nicht, wie ich es lösen kann. Ich benutze mehrere Male eine Combobox und diese soll auf Knopfdruck aufklappen. Das habe ich durch folgenden Code realisiert:
Delphi-Quellcode:
Was mich nur stört ist, dass beim Benutzen der Pfeiltasten der bisher ausgewählte Eintrag ändert. Ich hätte es gerne so wie es ist, wenn man bei einer Combobox alt + Pfeil nach unten drückt. Dazu müsste er die Pfeiltaste als beliebige andere Taste ansehen, solange die Combobox nicht aufgeklappt ist, aber wie geht das? :gruebel:
procedure TForm1.Einheit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if sendmessage(Einheit1.handle, CB_GETDROPPEDSTATE, 0, 0)=0 then SendMessage(Einheit1.Handle, CB_SHOWDROPDOWN, 1, 0); end; end; Wäre echt toll, wenn jemand die Antwort weiß Trush |
Re: Anfängerfrage zum Comboboxverhalten
Hallo,
ich habe mir jetzt selber eine Lösung ausdenken können (ja, ich bin lernfähig ;)) Das oben beschriebene Problem lässt sich folgendermaßen lösen:
Delphi-Quellcode:
Das einzige was mich ein wenig wundert ist, dass die Prozedur auch auch auf F4 reagiert, keine Ahnung warum, aber das stört ja nicht wirklich
procedure TForm1.Einheit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if sendmessage(Einheit1.handle, CB_GETDROPPEDSTATE, 0, 0)=0 then begin if (Key=VK_LEFT) or (Key=VK_DOWN) or (Key=VK_RIGHT) or (Key=VK_UP) then begin Key:=VK_NUMPAD0; {einfach irgend eine Taste, die man an der Stelle garantiert nicht braucht.} SendMessage(Einheit1.Handle, CB_SHOWDROPDOWN, 1, 0); end; end; end; |
Re: Anfängerfrage zum Comboboxverhalten
Die Antwort mit dem F4 ist ganz einfach.
Die Combobox wird in diesem Fall nicht von deinem Code aufgeklappt. Dein Code ist in dieser Richtung nicht Fehlerhaft. Mit F4 wird das standardmäßig gemacht. Kannst ja einfach mal deinen Code deaktivieren. Und du siehst, das es immernoch mit F4 geht. |
Re: Anfängerfrage zum Comboboxverhalten
Ach so ist das, könnte mein Code dann einfach vereinfacht werden indem ich Key:=VK_F4 einsetze? Muss ich gleich mal probieren ob das geht (spart bestimmt unglaublich viele Bits ;))
Klappt tatsächlich, stark *gg* Danke sehr Trush |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz