|
15番会議室「FAQ編纂委員会」に寄せられた「よくある質問の答え」
[Q]
StringGrid で,指定のカラムに入力されている内容で行をソートしたい。
[A]
下記のようなメソッドを作り、呼び出してやります。
Procedure GridSort(Grid : TStringGrid;SortCol : LongInt);
var
St, St2 : TStringList;
i : Integer;
begin
St := TStringList.Create;
ST.Assign(Grid.Cols[SortCol]);
For i := 1 To Grid.FixedRows Do
St.Delete(0);
For i := Grid.FixedRows To Grid.RowCount - 1 Do
Begin
St2 := TStringList.Create;
St2.Assign(Grid.Rows[i]);
St.Objects[i - Grid.FixedRows] := St2;
End;
St.Sort;
For i := Grid.FixedRows To Grid.RowCount - 1 Do
Begin
Grid.Rows[i].Assign(TStringList(St.Objects[i - Grid.FixedRows]));
TStringList(St.Objects[i - Grid.FixedRows]).Free;
End;
St.Free;
end;
呼び出す時は、
GridSort(StringGrid1, 2); //2カラム目でソート
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum FDELPHIに寄せられる質問の中から、よくある質問への回答を FDELPHIのメンバーがまとめたものです。 したがって、これらの回答はボーランド株式会社がサポートする公式のものではなく、掲示されている内容についての問い合わせは受けられない場合があります。
Copyright 1996-1998 Delphi Users' ForumFAQ編纂委員会
|