Показать сообщение отдельно
  #1  
Старый 13.11.2013, 21:50
Pcrepair
 
Сообщения: n/a
По умолчанию Сортировка по VALUE в ValueListEditor

Добрый день. Есть процедура,которая сортирует пару KEY--VALUE(слово--число) по значению VALUE и передает результат в ValueListEditor, для просмотра
Код:
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 := MainForm.ValueListEditor1.Strings.Text;
    fSL.CustomSort(@MyCompare);
    MainForm.ValueListEditor1.Strings.Text := fSL.Text;
  finally
    FreeAndNil(fSL);
  end
end;
Но сортировка идет немного не так как нужно, в частности:
рпрпропопр--99
пиропиррор--87
прррпррппр--33
титититьит--223
рпрпрпрпрр--12

хотя строка титититьит--223 в ValueListEditor должна быть наверху так как 223 больше чем 99

Вопрос: где ошибка и как поправить?
Ответить с цитированием