また初歩的な質問です。StringGridの一つの行(Row)を削除したいのです。うまいメソッドはありますか?StringGrid1.Rows(rowIndex)で行のデータをcommattext 化しても、Stringと互換性がないので困っています。
お教えいただきたいのですが。
ありそうでないですね、1行削除。
こんな感じでどうでしょうか。
エラー処理はしていません。
1行目(上から2行目)を削除します。
procedure TForm1.Button2Click(Sender: TObject);
var
i: integer;
tmplist: TStringList;
begin
tmplist := TStringList.Create;
for i := 0 to StringGrid1.ColCount - 1 do // 各桁ごとに行う
begin
tmplist.Assign(StringGrid1.Cols[i]);
tmplist.Delete(1); // 上から2つ目のセルを削除
StringGrid1.Cols[i] := tmplist;
end;
StringGrid1.RowCount := StringGrid1.RowCount - 1;
tmplist.Free;
end;
どうもありがとうございました。にしのさま。
僕がStringGrid1.Rows(rowindex)を使うイメージでいたところへ、にしのさんのアドバイスはColsでした。コードを拝見しながらおもわず、首をぐうーと90度回転しそうになりました。確かにこれはうまい手ですね。参りました。ありがとうございました。お尋ねして特に勉強になった点は、TStringListのassign、そしてDeleteがこうして使えるのだということでした。基本が十分でないのに、Gridなんかに手を出してまして、来週から早速仕事で使うもので、慌てていたので、助かりました。今後とも、どうかこの初心者をよろしくお願いします。
解決、をチェックするのをさっき忘れちゃいましたので、今いたしました。
ツイート | ![]() |