Показать сообщение отдельно
  #4  
Старый 11.12.2013, 23:39
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Daryll
Дело в том что у меня в StringGrid могут заносится ещё числа, так как
в таблице есть столбцы ещё: Название, Раздел, Цена.
А эти числа я написал для примера.
Т.е. тебе нужна число-текстовая сортировка. Для этого в Windows есть специальная API-функция StrCmpLogicalW. Просто изменяешь правило сортировки примерно так:
Код:
function StrCmpLogicalW(psz1, psz2: PWideChar): Integer; stdcall; external 'shlwapi.dll';

function NumberSort(List: TStringList; Index1, Index2: Integer): Integer;
var
  ws1, ws2: WideString;
begin
  ws1 := List[Index1];
  ws2 := List[Index2];
  Result := StrCmpLogicalW(Pointer(ws1), Pointer(ws2));
end;  

Или вот ещё Rouse в своём блоге публикует свою аналогичную функцию чисто на Delphi: "Сортировка списка по аналогу "Проводника Windows""
Ответить с цитированием