他の関数内で、あるボタンをクリックされたかどうか知るにはどうすれば良いのでしょう?
procedure TRoiSetForm.RadioGroup1Click(Sender: TObject);
begin
if Sender = BitBtn1 then (処理)
end;
のような書き方ではBitBtn1は押されていないと判断されてしまいます。
BitBtn1Click内でフラグを作る方法しかないのでしょうか?
フラグを使わないけど、めんどくさい...
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;
「マウスダウン中である」という判定は、マウスクリックイベント発生時には消えてるし、
スペースキーやエンターキーでもクリックイベント発生するので、難しいのでは??
呼び出し履歴みたいなもので、簡単に追跡できる方法があれば、自分も教えて欲しいです。
ん?さん、ありがとうございます。
「マウスダウン中である」という判定は難しいのですね。
今回はフラグを使用してみます。
遅レスですが、ちょっと思いついただけの一言
マウスダウン中の判定じゃなく、フォーカスを取得できるTButton,TBitBtnであれば、
ActiveControlで判断するのもいいかも。
if ActiveControl = BitBtn1 then (処理)
ツイート | ![]() |