Сортировка элементов Combobox
Стандартная сортировка с помощью свойства Sorted выстраивает числовые значения от меньшего к большему, а наоборот не получается. Рассмотрим пример, как это сделать в обратном порядке.
- Поместим на форму кнопку и Сombobox. Предварительно добавим пункты в Сombobox (2009, 2010.. 2013).
- Далее, в обработчике событий OnClick кнопки поместим код ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
procedure TForm1.SortComboboxBtnClick(Sender: TObject); var TS : TStringList; begin try TS := TStringList.Create; TS.Text := ComboBox1.Items.Text; TS.CustomSort( @StringListCompareStrings ); ComboBox1.Items.Text := TS.Text; finally FreeAndNil(TS); end; function StringListCompareStrings(List: TStringList; Index1, Index2: Integer): Integer; begin if List.Strings[Index1] = List.Strings[Index2] then Result := 0 else if List.Strings[Index1] < List.Strings[Index2] then Result := 1 else Result := -1; end; end; |