Edit1にフォーカスがあるときだけボタンをおせるようにするには


  2009-07-10 01:29:56  No: 35105

Edit1にあるときだけButton1のEnabledをTrueにしたいのですが、どこで設定すればいいでしょうか。
Edit1のOnEntreでButton1のEnabledをTrueにしても、他のところにフォーカスを移動させた時にボタンを押すことができました。

何かほかにやり方があるのでしょうか。


HOta  2009-07-10 02:17:09  No: 35106

OnExitでButton1のEnabledをFalseにすれば?


KHE00221  2009-07-10 04:00:33  No: 35107

単純に Exit で False すると Button1 を押す直前に Exit が実行されて
Enabled := False になってしまうのでボタンが押せなくなってしまいます。

なので

procedure TForm1.Button1Exit(Sender: TObject);
begin
    if ActiveControl <> Button1 then
    begin
      Button1.Enabled := False;
    end
end;

procedure TForm1.Edit1Exit(Sender: TObject);
begin
    if ActiveControl <> Button1 then
    begin
      Button1.Enabled := False;
    end
end;

のようにしてください


moocho  2009-07-10 04:49:43  No: 35108

SpeedButtonとの併用はだめですか?

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  if ActiveControl = Edit1 then
     showmessage('Edit1');
end;


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

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






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