名前 題名 ▼ takiさん > ▼ たてぐやさん > > > 私はこんなコードを長年使っています。参考になれば。 > > たてぐやさん ありがとうございます。 > でも、残念ながら私の能力不足のためコードが読み解けません。(T_T) > > str_St1.Assign(Grid.Cols[SortCol]);とかは分かります。 > ソートのKeyとなるデータをstr_St1にコピーしているのですね。 > > for int_i := 1 To Grid.FixedRows Do str_St1.Delete(0);は見出しの > 部分を取り除いて… > > for int_i := 0 to str_St1.Count - 1 do > str_St1.Strings[int_i] := str_St1.Strings[int_i] + > #1 + Format('%.10d',[int_i]); > ではKeyとなるデータの後に#1とIndexをくっつけて記憶して… > > 次に、str_St2.Assign(Grid.Rows[int_i]);では > Gridの行のデータ(レコード単位)をStr_St2にコピーして、 > > str_St1.Objects[int_i - Grid.FixedRows] := str_St2;で > それをオブジェクトとしてStringListに代入?して・・・ > > つまり、Str_St1にはKeyの文字列とGridの行のデータを持った状態で > Str_St1.Sortする? > > その後、 > Grid.Rows[int_i].Assign(TStringList(str_St1.Objects[int_i - > Grid.FixedRows]));では > str_St1に保存したオブジェクトをTStringListとして取り出して > さらにGridのRowデータとしてコピー(書き換え)する。 > > で、正しいでしょうか? GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link