フォームにボタンが1つあります。以下はそのボタンのクリックイベントです
procedure Form1.btnOKClick(Sender: TObject);
begin
//Do something
end;
このイベントは、ボタンをクリックしたときにのみ呼び出されますよね?
ユーザーの介入なしにこのイベントを自動的に呼び出すにはどうすればよいですか?
フォームにボタンが1つあります。以下はそのボタンのクリックイベントです
procedure Form1.btnOKClick(Sender: TObject);
begin
//Do something
end;
このイベントは、ボタンをクリックしたときにのみ呼び出されますよね?
ユーザーの介入なしにこのイベントを自動的に呼び出すにはどうすればよいですか?
OnClick
コントロールにアタッチされたイベントハンドラーを呼び出す最良のClick
方法は、コントロールのメソッドを呼び出すことです。このような:
btnOK.Click;
イベントハンドラーを呼び出すと、Sender
パラメーターを直接指定する必要があります。メソッドを呼び出すと、Click
すべての作業を実行するためのコントロールが取得されます。ボタンクリック用のWindowsメッセージハンドラーの実装は、Click
メソッドを呼び出します。
しかし、私はwhosrdaddyの答えで表明された意見を2番目にしています。ボタンの背後にあるロジックを別のメソッドに引き出す必要があります。
ビジネスロジックをイベントハンドラに入れないでください。これにより、アプリケーションが大きくなるとコードが読めなくなります。
通常、これを行います。
procedure TForm1.DoSomething;
begin
// do something
end;
procedure TForm1.btnOKClick(Sender: TObject);
begin
DoSomething;
end;
DoSomething
次に、コード内の他の部分から呼び出すだけです。
このイベントは、他のメソッドと同じようにコードで呼び出すことができます。
...
btnOkClick(Self.btnOk); // Sender in this case is the btnOk
...
送信者は、好きなオブジェクトでもnilでもかまいません。