4

私はDelphiを初めて使用し、TStringGridから派生したカスタムコントロールを構築しています。OnResizeイベントハンドラーにアクセスする必要があります。どうすればアクセスできますか?TStringGridの親にOnResizeイベントがあります

4

3 に答える 3

10

OnResizeでデフォルトで保護されているイベントを公開しますTControl


独自の子孫では、イベント自体を使用するのではなく、イベントをトリガーするメソッドを使用する必要があります。そのようにすると、コンポーネントのユーザーに独自のイベント ハンドラーを実装する機会が与えられます。

Resize メソッドをオーバーライドします。

type
  TMyGrid = class(TStringGrid)
  protected
    procedure Resize; override;
  published
    property OnResize;
  end;

{ TMyGrid }

procedure TMyGrid.Resize;
begin
  // Here your code that has to be run before the OnResize event is to be fired
  inherited Resize; // < This fires the OnResize event
  // Here your code that has to be run after the OnResize event has fired
end;
于 2013-02-06T11:25:35.007 に答える
0

TStringGrid を TPanel 内に配置し、それを alClient に配置するだけで、TPanel のパブリッシュされた Resize イベントを任意のアクションに使用できます。

于 2014-01-18T21:33:24.040 に答える