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

解決


ヒロポン  2006-05-25 19:06:11  No: 21799

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


igy  2006-05-25 20:54:28  No: 21800

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-26 02:48:33  No: 21801

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加