Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

OnSelect bei ComboBox programmseitig aufrufen

  Alt 3. Apr 2004, 12:43
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;
$2B or not $2B
  Mit Zitat antworten Zitat