ボタンをクリックされたかどうか知るには

解決


デルデル  2006-08-24 18:29:08  No: 22979

他の関数内で、あるボタンをクリックされたかどうか知るにはどうすれば良いのでしょう?
procedure TRoiSetForm.RadioGroup1Click(Sender: TObject);
begin
   if Sender = BitBtn1 then (処理)
end;

のような書き方ではBitBtn1は押されていないと判断されてしまいます。
BitBtn1Click内でフラグを作る方法しかないのでしょうか?


ん?  2006-08-24 19:09:47  No: 22980

フラグを使わないけど、めんどくさい...

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  event: TNotifyEvent;
begin
  event:= RadioGroup1.OnClick;
  RadioGroup1.OnClick := nil;

  RadioGroup1.ItemIndex := 1;

  RadioGroup1Click(Sender{or BitBtn1})
  RadioGroup1.OnClick := event;
end;

「マウスダウン中である」という判定は、マウスクリックイベント発生時には消えてるし、
スペースキーやエンターキーでもクリックイベント発生するので、難しいのでは??

呼び出し履歴みたいなもので、簡単に追跡できる方法があれば、自分も教えて欲しいです。


デルデル  2006-08-24 20:35:45  No: 22981

ん?さん、ありがとうございます。
「マウスダウン中である」という判定は難しいのですね。
今回はフラグを使用してみます。


ん?  2006-08-25 20:49:50  No: 22982

遅レスですが、ちょっと思いついただけの一言

マウスダウン中の判定じゃなく、フォーカスを取得できるTButton,TBitBtnであれば、
ActiveControlで判断するのもいいかも。

if ActiveControl = BitBtn1 then (処理)


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

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






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