Есть
StringGrid 3 на 10. Хочу сделать сортировку всех столбцов по второму столбцу с помощью
function StrCmpLogicalW(psz1, psz2: PWideChar): Integer; stdcall; external 'shlwapi.dll';
Встал вопрос как в эту функцию передать параметры?
Решено
procedure TForm1.SortGrid(ST: TStringGrid; Column: Integer);
var
I, I2: integer;
SL: TStringList;
begin
try
SL := TStringList.Create;
try
for I := 1 to ST.RowCount - 2 do // С 1, чтобы не трогать FixedRows
begin
for I2 := I + 1 to ST.RowCount - 1 do
begin
// Cортируем по возрастанию
if StrCmpLogicalW(PWideChar(ST.Cells[Column, I]), PWideChar(ST.Cells[Column, I2])) > 0 then
begin
SL.Assign(ST.Rows[I]);
ST.Rows[I] := ST.Rows[I2];
ST.Rows[I2] := SL;
end;
end;
end;
except
end;
finally
FreeAndNil(SL);
end;
end;