|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
TValueListEditor и сортировака по Value
Добрый день. Есть форма на которой есть компонент TValueListEditor
в цикле в компонент вставляются значения ValueListEditor1.InsertRow(Stemmings,IntToStr(Rati ng),True); число строк от 10 до 1000 первый столбец - слова втрой столбец - цифры далее нужно провести сортировку по значениям второго столбца(цифры), большие значения должны попасть наверх Вопрос: - есть ли в ValueListEditor1 встроенная сортировка? если есть то где? что то процедура Sort нигде в свойствах не видна - если нет, то как можно сделать сортировку? есть два параметра: строка=число, сортировать нужно по значению число |
#2
|
||||
|
||||
Стандартная сотрировка есть, но она такая же как и у базового класса TStringList - т.е. по алфавиту, с цифрами сложнее
Код:
procedure TForm1.Button1Click(Sender: TObject); function SortByValue(List: TStringList; index1, index2: integer): integer; begin with List do Result:= CompareText(ValueFromIndex[index1], ValueFromIndex[index2]); end; begin TValueListStrings(ValueListEditor1.Strings).CustomSort(@SortByValue); end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
Спасибо за вариант, есть еще один, как раз для меня подходит:
Код:
procedure SortVLE; function MyCompare(List: TStringList; Index1, Index2: Integer): Integer; begin Result := AnsiCompareStr(List.ValueFromIndex[Index2], List.ValueFromIndex[Index1]) end; var fSL : TStringList; begin fSL := TStringList.Create; try fSL.Text := SeoController.ValueListEditor1.Strings.Text; fSL.CustomSort(@MyCompare); SeoController.ValueListEditor1.Strings.Text := fSL.Text; finally fSL.Free; end end; |