AGB  ·  Datenschutz  ·  Impressum  







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

Warum kann die ComboBox nicht direkt aufklappen?

Ein Thema von Popov · begonnen am 11. Mai 2012 · letzter Beitrag vom 4. Mär 2014
Antwort Antwort
Popov
(Gast)

n/a Beiträge
 
#1

Warum kann die ComboBox nicht direkt aufklappen?

  Alt 11. Mai 2012, 00:14
Ich kam auf die verrückte Idee, die ComboBox so einzustellen, dass es, wenn es nicht dem Fokus hat, auch nicht den DropDown-Button anzeigt. Der Code sollte einfach sein:

Delphi-Quellcode:
procedure TForm1.ComboBox1Enter(Sender: TObject);
begin
  ComboBox1.Style := csDropDown;
end;

procedure TForm1.ComboBox1Exit(Sender: TObject);
begin
  ComboBox1.Style := csSimple;
end;
Bei OnEnter wird der Style csDropDown, sonst csSimple. Insoweit funktioniert es auch.

Das Problem ist, dass ich nach OnEnter nicht sofort auf DropDown-Button klicken kann. Tut sich nichts. Erst wenn ich erneut in das Fenster klicke, erst dann funktionert der DropDown-Button. Warum?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Warum kann die ComboBox nicht direkt aufklappen?

  Alt 11. Mai 2012, 00:33
Klicke nochmal in das Edit, dann geht's.

Tja, das Umgestelle scheint wohl den Fokus etwas durcheinanderzubringen.

Du kannst es ja mal mit SetFocus oder Folgendem versuchen.
Delphi-Quellcode:
ComboBox1.Style := csDropDown;
ComboBox1.Perform(CM_RECREATEWND, 0, 0);
Aber so viel erhoffe ich mir davo nicht, denn das Umstellen des Style erzeugt auch ein komplett neues WindowsControl und in dieses hattest du noch niemals reingeklickt. (der OnMouseDown kommt bei dem alten Control an und wo das OnMouseUp ankommt, kann man nur schwer sagen)

Du kannst höchstens mal versuchen den Style direkt über die WinAPI umzustellen und mußt dabei versuchen, daß die ComboBox nicht neu erstellt wird.

Ansonsten verwende doch mal die TComboBoxEx.
$2B or not $2B

Geändert von himitsu (11. Mai 2012 um 00:37 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: Warum kann die ComboBox nicht direkt aufklappen?

  Alt 11. Mai 2012, 01:11
Danke, deine Lösung scheint zu funktionieren. Dass hier ein komplett neues WindowsControl erstellt wird, wusste ich nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Warum kann die ComboBox nicht direkt aufklappen?

  Alt 4. Mär 2014, 13:25
Hallo!

Ich fleddere mal diese Leiche weil ich grade genau das selbe versuche. Allerdings scheint die Lösung unter XE4 nicht mehr zu funktionieren. Das Style ändert sich nicht und es gibt am Ende Memleaks.

Grüße
Cody
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  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 04:04 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