私はDelphiの初心者であり、アドバイスが必要です。
TMS TDBAdvGridを使用しており、ユーザーが列のヘッダーをクリックしているときにデータを並べ替える必要があります。グリッドの並べ替え設定をセットアップし、onclicksortイベントのコードを記述しましたが、機能していません。
グリッドの並べ替え設定:
SortSettings.Show = True;
SortSettings.IgnoreBlanks = True;
SortSettings.BlankPos = blLast;
onclicksortイベント:
try
try
if FSortISWorking then
Exit;
FSortISWorking := true;
if ACol < 0 then
begin
grid.BeginUpdate;
grid.SortSettings.Column := ACol;
Application.ProcessMessages;
grid.QSort;
grid.EndUpdate;
end;
except on e: Exception do
begin
// log the error
end;
end;
finally
FSortISWorking := false;
end;
グリッドはデータベースに直接リンクされていません。データはメモリ(TClientDataSet)にロードされ、データベースへの別のクエリなしで、メモリ内でのみデータを並べ替える必要があります。
ありがとうございました