Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi PopUp-Menü einer Combobox "verschwinden" lassen (https://www.delphipraxis.net/5511-popup-menue-einer-combobox-verschwinden-lassen.html)

DBman 9. Jun 2003 17:44


PopUp-Menü einer Combobox "verschwinden" lassen
 
Ich habe folgendes Problem:

Ich habe eine Combobox und ein Editfeld.

Wenn ich den Focus auf der Combobox habe und F3 drücke möchte ich in das Editfeld kommen (also Focus aufs Editfeld) und das Popup-Menü von der Combobox soll nicht ausgerollt sein.

(also quasi zum hin- und herspringen)

Wenn ich jedoch F3 drücke , so "rollt" der Inhalt der Combobox nach unten aus , und der Focus wird auf das Editfeld gesetzt...


FRAGE : Wie kann ich das ausrollen verhindern??

Ps:Habe schon bei PopUpMenu.free geguckt und so weiter , aber bin da nicht weitergekommen...
:|

Luckie 9. Jun 2003 17:55

Combobox, Popupmenü, ausrollen? Redest du von der Liste der Combobox oder was?
Wenn die Combobox den Focus hat sthet der Cursor doch automatsich im Edit von der Combobox - oder nicht?

DBman 9. Jun 2003 18:01

Nein!

Es gibt 2 Komponenten in meinem Programm :

Komponente 1 : edit_feld : TEdit;
Komponente 2 : cb_box : TComboBox

Nun habe ich den Focus auf der Combobox.
Drücke F3 , (dann wird der Focus auf edit_feld gesetzt) .
Und dann passiert folgendes : Die Liste der ComboBox rollt aus....

Das soll aber nicht so sein. Die ComboBox liste soll nicht ausrollen.

Wie kann ich das Ändern?

Luckie 9. Jun 2003 18:10

Wie setzt du denn den Focus auf das Edit?

Wenn ich das so mache:
Delphi-Quellcode:
procedure TForm1.CtlKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_F3 then
    SendMessage(Handle, WM_NEXTDLGCTL, 0, 0);
end;
Verhält es sich so, wie erwartet, es klappt nicht auf. Keine Ahnung, was du da machst.

DBman 9. Jun 2003 18:28

Ahso.
Ja ich mache das nich über ein Handle , (damit kenne ich mich noch gar nich so mit aus)
Ich hab das einfach über Edit1.SetFocus gesetzt...
Aber wenns so funktioniert : Dankeschön !

Christian Seehase 9. Jun 2003 18:31

Moin DBMan,

ich hab's eben mal so ausprobiert:

Delphi-Quellcode:
procedure TfrmMAIN.ComboBox1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = VK_F3 then Edit1.SetFocus;
end;
geht auch wie erwartet.

Bei Luckies Variante musst Du dafür sorge tragen, dass das Edit Feld auch das nächste in der Tabulatorreihenfolge ist.

DBman 9. Jun 2003 18:32

Hm nee , das muss noch an irgendwas anderem liegen... wirklich komisch.
Ich probier nochmal n bisschen rum , und wenn es dann nich klappen sollte kann ich das Prog ja mal posten.

DBman 9. Jun 2003 18:33

Das is ja krank!
Ich weiss woran es liegt... aber wie ich das löse weiss ich auch nich:
Und zwar hab ich da F4 als taste genommen , und dann rollt der das tatsächlich auf...
Muss wohl dran liegen das Windows F4 für das schliessen zusammen mit ALT +F4 reserviert hat oder sowas.... kannste mir da nochmal helfen??

Luckie 9. Jun 2003 18:34

Hast du irgendwas bei OnExit von der Combobox stehen?

Christian Seehase 9. Jun 2003 18:35

Moin DBMan,

nein, das hängt damit zusammen, dass F4 in Windows das ausklappen der Liste einer ComboBox bewirkt (standard).
Geh' doch mal in die AdressComboBox des Explorers und drücke F4.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz