GridのRowCount変更をフックするには?


幸福の玉子  2003-10-22 22:47:13  No: 5339

StringGridをカスタマイズしているのですが
RowCountの変更時特定の処理を行いたいのですが?
TStringGridからの継承では無理なのでしょうか?


にしの  2003-10-22 23:16:43  No: 5340

SizeChangedをオーバーライドしてやればよろしいかと思います。

こんな感じ。
  TMyGrid=class(TStringGrid)
  protected
    procedure SizeChanged(OldColCount, OldRowCount: Longint); override;
  end;

としておいて、

procedure TMyGrid.SizeChanged(OldColCount, OldRowCount: Longint);
begin
  ShowMessage('Old ColCount:' + IntToStr(OldColCount) + #13#10
          +   'Old RowCount:' + IntToStr(OldRowCount)  + #13#10
          +   'Now ColCount:' + IntToStr(ColCount) + #13#10
          +   'Now RowCount:' + IntToStr(RowCount) );
end;

とすれば、
MyGrid1.RowCount := 10;
とすると、

Old ColCount:5
Old RowCount:5
Now ColCount:5
Now RowCount:10

と表示されます(初期状態の場合)。
RowCount=10のとき、RowCount:=10としても、SizeChangedは呼ばれません。


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

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






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