StringGridの1row を削除するには?

解決


オン赤  2002-04-04 06:56:04  No: 758

また初歩的な質問です。StringGridの一つの行(Row)を削除したいのです。うまいメソッドはありますか?StringGrid1.Rows(rowIndex)で行のデータをcommattext 化しても、Stringと互換性がないので困っています。
お教えいただきたいのですが。


にしの  2002-04-04 08:16:05  No: 759

ありそうでないですね、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;


オン赤  2002-04-04 08:59:42  No: 760

どうもありがとうございました。にしのさま。
僕がStringGrid1.Rows(rowindex)を使うイメージでいたところへ、にしのさんのアドバイスはColsでした。コードを拝見しながらおもわず、首をぐうーと90度回転しそうになりました。確かにこれはうまい手ですね。参りました。ありがとうございました。お尋ねして特に勉強になった点は、TStringListのassign、そしてDeleteがこうして使えるのだということでした。基本が十分でないのに、Gridなんかに手を出してまして、来週から早速仕事で使うもので、慌てていたので、助かりました。今後とも、どうかこの初心者をよろしくお願いします。


オン赤  2002-04-04 09:01:32  No: 761

解決、をチェックするのをさっき忘れちゃいましたので、今いたしました。


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








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