Bei einem Button kann man ja mit
Button1.Click;
die in Button1.OnClick angegebene Prozedure aufrufen.
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;