StringColGridで行の入れ替えをしたいのですが?

解決


ヒロポン  2006-05-25 10:06:11  No: 21799  IP: 192.*.*.*

初心者のため記述方法がまったくわかりません。
処理内容は、10行表示されたデータの1行を選択し
TBitBtnにてそのデータを10行表示の範囲内で上下の
移動をしたいと思うのですが、ご存知のお方ご教授
お願いいたします。

編集 削除
igy  2006-05-25 11:54:28  No: 21800  IP: 192.*.*.*

StringColGrid
は知りませんが、
StringGridなら
Optionsプロパティで goRowMoving を Trueにすれば、左のIndicator部分をドラッグして
移動できます。

プログラムで移動させる場合は、こんな感じでどうでしょう?

procedure TForm1.Button1Click(Sender: TObject);
var
    cnt: Integer;
    sl: TStringList;
    idx_from, idx_to: integer;
begin
    sl := TStringList.Create;
    try
        with StringGrid1 do
        begin
            { 末尾のデータを先頭に }
            idx_from := RowCount - 1;
            idx_to   := FixedRows;

            for cnt := 0 To ColCount - 1 Do
            begin
                sl.Assign(Cols[cnt]);
                sl.Move(idx_from, idx_to);
                Cols[cnt].Assign(sl);
            end;
        end;
    finally
        sl.Free;
    end;
end;

編集 削除
ヒロポン  2006-05-25 17:48:33  No: 21801  IP: 192.*.*.*

igyさまレスありがとうございました。
記述ミスで申し訳ありませんでしたStringColGridで正しいです。
内容確認をして、対応しましたところ、いい感じで行入れ替えが
出来るようになりました。
大変ありがとうございました。

編集 削除