StringGridをカスタマイズしているのですが
RowCountの変更時特定の処理を行いたいのですが?
TStringGridからの継承では無理なのでしょうか?
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は呼ばれません。
ツイート | ![]() |