AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Anfängerfrage zum Comboboxverhalten

Ein Thema von Trush · begonnen am 3. Feb 2004 · letzter Beitrag vom 5. Mär 2004
Antwort Antwort
Trush

Registriert seit: 3. Feb 2004
18 Beiträge
 
#1

Anfängerfrage zum Comboboxverhalten

  Alt 3. Feb 2004, 17:11
Hallo,

ich schreibe gerade an meinen ersten zwei Delphiprogrammen und bin so gut wie fertig, es fehlen eigentlich nur noch ein paar "kosmetische Korrekturen".
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:
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;
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?

Wäre echt toll, wenn jemand die Antwort weiß
Trush
  Mit Zitat antworten Zitat
Trush

Registriert seit: 3. Feb 2004
18 Beiträge
 
#2

Re: Anfängerfrage zum Comboboxverhalten

  Alt 5. Mär 2004, 15:58
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:
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;
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.157 Beiträge
 
Delphi 12 Athens
 
#3

Re: Anfängerfrage zum Comboboxverhalten

  Alt 5. Mär 2004, 16:23
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Trush

Registriert seit: 3. Feb 2004
18 Beiträge
 
#4

Re: Anfängerfrage zum Comboboxverhalten

  Alt 5. Mär 2004, 17:22
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:43 Uhr.
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