Einzelnen Beitrag anzeigen

Benutzerbild von Guido R.
Guido R.

Registriert seit: 5. Jul 2007
141 Beiträge
 
Delphi 12 Athens
 
#20

AW: Combobox in Gruppen unterteilt

  Alt 25. Feb 2011, 17:53
So sollte es klappen :

Erstelle eine Variable "oldindex" vom Typ Integer und initialisiere sie mit -1;

Delphi-Quellcode:
procedure TForm1.ComboBox1Select(Sender: TObject);
Var newIndex : Integer;
begin
 newIndex := ComboBox1.ItemIndex;
 if ComboBox1.Items[ComboBox1.ItemIndex][1]='_'
  then begin
        if oldindex<newIndex
         then while (ComboBox1.Items.Count>(newIndex)) AND (ComboBox1.Items[newIndex][1]='_') // runterscrollen
               do newIndex:=newIndex+1
         else while (newIndex>-1) AND (ComboBox1.Items[newIndex][1]='_') // raufscrollen
               do newIndex:=newIndex-1;
        if (newIndex>ComboBox1.Items.Count-1) or (newIndex<=-1) // Ausserhalb des gültigen Bereiches ?
         then newIndex := oldIndex;
        ComboBox1.ItemIndex := newIndex;
       end;
 oldindex := newIndex;
end;
Alternativ kann man den Wert für "oldindex" auch im "Tag" der ComboBox ablegen. Das hätte den Vorteil, dass man die selbe Funktion für mehrere ComboBoxen nutzen kann, wenn man diese dann über den Sender
Code:
(Sender AS tComboBox). statt ComboBox1.
anspricht.

Ideal wäre natürlich eine eigene Klasse abzuleiten, in der man oldindex und die Grouping-Funktionen integriert...

Gruß
Guido R.
  Mit Zitat antworten Zitat