![]() |
TCombobox Text deselektieren nach SetFocus
Gegeben ist eine VCL Form mit u.a. einer TComboBox, Stil csDropDown, drauf.
Klicke ich einen bestimmten Button wird Combo.SetFocus aufgerufen. Nur ist der bereits eingegebene Text dann immer schon selektiert, was ich nicht will. Ich habe schon versucht im OnEnter ClearSelection aufzurufen, SelLength auf 0 zu setzen oder SelStart auf -1. Hat alles nicht gefruchtet. Gibt's dazu eine Lösung? |
AW: TCombobox Text deselektieren nach SetFocus
.. so tut es bei mir:
Delphi-Quellcode:
Grüße
procedure TForm1.Button1Click(Sender: TObject);
begin ComboBox1.SetFocus; ComboBox1.SelStart := 0; ComboBox1.SelLength := 0; end; Klaus |
AW: TCombobox Text deselektieren nach SetFocus
@Klaus: Er macht im Button nur SetFocus,
aber den Rest im OnEnter. Tja, eventuell wird die Selection erst nach "deinem" Event gesetzt? Statt sich an die OnXXX zu hängen, könnte man auch die DoXXX überschreiben. So Manches wird nach dem VCL-Event gemacht, aber mit etwas Glück noch innerhalb der jeweiligen Windows-Message. Oder einfach noch etwas warten.
Delphi-Quellcode:
TThread.ForceQueue(nil, procedure
begin DeineComboBox.ClearSelection; end; Alternativ mal die TComboBoxEx versuchen. Bei einigen Dingen verhält Diese sich anders. |
AW: TCombobox Text deselektieren nach SetFocus
Zitat:
Delphi-Quellcode:
// das um sicherzustellen das nichts blau ist nach einer auswahl durchs pop-up oder per scroll
procedure TForm1.ComboBox1Change(Sender: TObject); begin PostMessage(ComboBox1.Handle, CB_SETEDITSEL, 0, MAKELPARAM($FFFF, $0000)); end; // das damit nichts ausgewählt wird wenn die combobox den focus erhält procedure TForm1.ComboBox1Enter(Sender: TObject); begin PostMessage(ComboBox1.Handle, CB_SETEDITSEL, 0, MAKELPARAM($FFFF, $0000)); end; |
AW: TCombobox Text deselektieren nach SetFocus
Zitat:
danke, das funktioniert grundsätzlich. Ich lasse sogar das SelStart weg und es geht auch. Man darf's halt wohl nicht im OnEnter aufrufen. Nur: bei mir ist der Cursor danach immer am Textanfang statt am Text Ende. Kann man das noch irgendwie ändern? Hab' auf die Schnelle nix gefunden... Grüße TurboMagic |
AW: TCombobox Text deselektieren nach SetFocus
Zitat:
|
AW: TCombobox Text deselektieren nach SetFocus
Zitat:
|
AW: TCombobox Text deselektieren nach SetFocus
Geht das?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin ComboBox1.SetFocus; ComboBox1.SelStart := Length(ComboBox1.Text) // evntuell + 1?; ComboBox1.SelLength := 0; end; |
AW: TCombobox Text deselektieren nach SetFocus
Zitat:
Delphi-Quellcode:
Bis bald...
ComboBox.SetFocus;
ComboBox.Perform(CB_SETEDITSEL, 0, 0 {oder -1, wenn der Cursor am Ende stehen soll}); Thomas |
AW: TCombobox Text deselektieren nach SetFocus
Zitat:
Danke! Grüße TurboMagic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:14 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