OnSelect bei ComboBox programmseitig aufrufen
Bei einem Button kann man ja mit
Delphi-Quellcode:
die in Button1.OnClick angegebene Prozedure aufrufen.
Button1.Click;
Wie geht das aber mit dem OnSelect-Ereignis in einer ComboBox? Ich hab mir einige ComboBoxen abgeändert, leider wird aber beim Sprung der ItemIndex vom letzten zum ersten Item nicht die OnSelect-Prozedur aufgerufen. Derzeit hab'sch das zwar mit der roten Abfrage gelöst, aber so ideal ist das nicht gerade. Mir wär da sowas wie TComboBox(Sender).Select; lieber.
Code:
Procedure TForm1.ComboBoxXKeyDown(Sender: TObject; Var Key: Word; Shift: TShiftState);
Begin If (Key = 13) and (not TComboBox(Sender).DroppedDown) Then Begin If TComboBox(Sender).ItemIndex < TComboBox(Sender).Items.Count - 1 Then TComboBox(Sender).ItemIndex := TComboBox(Sender).ItemIndex + 1 Else TComboBox(Sender).ItemIndex := 0; Key := 0; End; If Key in [37, 38] Then Begin TComboBox(Sender).DroppedDown := True; If TComboBox(Sender).ItemIndex = 0 Then Begin TComboBox(Sender).ItemIndex := TComboBox(Sender).Items.Count - 1; Key := 0; End; End; If Key in [39, 40] Then Begin TComboBox(Sender).DroppedDown := True; If TComboBox(Sender).ItemIndex = TComboBox(Sender).Items.Count - 1 Then Begin TComboBox(Sender).ItemIndex := 0; Key := 0; End; End; [color=red] If Key = 0 Then If (TComboBox(Sender) = ComboBox1) or (TComboBox(Sender) = ComboBox2) or (TComboBox(Sender) = ComboBox3) or (TComboBox(Sender) = ComboBox4) Then ComboBox1bis4Select(nil) Else If TComboBox(Sender) = ComboBox7 Then ComboBox7Select(nil) Else If TComboBox(Sender) = ComboBox11 Then ComboBox11Select(nil) Else If TComboBox(Sender) = ComboBox5 Then ComboBox5Select(nil);[/color] End; Procedure TForm1.ComboBoxXKeyUp(Sender: TObject; Var Key: Word; Shift: TShiftState); Begin If Key in [13, 37..40] Then Key := 0; End; |
Re: OnSelect bei ComboBox programmseitig aufrufen
So sollte es auch gehen
Delphi-Quellcode:
if Assigned(TComboBox(Sender).OnSelect) then TComboBox(Sender).OnSelect(Sender);
|
Re: OnSelect bei ComboBox programmseitig aufrufen
Danke.
(manchmal kommt man einfach nicht auf die einfachsten Dinge) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:19 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