Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > сортировка utf8 в virtualstringtree


Автор: bistropoke 2.11.2011, 09:36
Приветствую.
Столкнулся с тем что сортировка работает непонятно как.
Код обработчика
Код

procedure TForm1.VTCompareNodes(Sender: TBaseVirtualTree;
  Node1, Node2: PVirtualNode; Column: TColumnIndex; var Result: integer);
var
  data1,data2:ptreedata;
begin
  data1:=sender.getnodedata(node1);
  data2:=sender.GetNodeData(node2);
  case column of
// 0: Result := ansiCompareText(data1^.Name,data2^.Name);
 0: Result := WideCompareStr(data1^.Name,data2^.Name);
  end;
end;       

Нормально не работает ни с wide ни с ansi .
user posted image

Подскажите пожалуйста какую функцию использовать для корректного сравнения.

Добавлено через 3 минуты и 48 секунд
 smile 
и тут же сам нашел ответ
Код

Result := WideCompareStr(utf8decode(data1^.Name),utf8decode(data2^.Name)); 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)