掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ListViewのマウスクリックでOnExitイベントが2回実行されてしまう (ID:44723)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
提示されたコードのようにOnExitの中でSetFocusすると再現しました。(Delphi6 Personal、WindowsXP) ListViewがvsReport時で言うと、ヘッダ部分、またはItemのCaptionの文字をクリックした 場合は普通に1回で、それ以外の場所だと2回発生します。 >これは何故なのでしょうか。 分かりません (^^; >1回のみOnExitイベントを実行する方法 分かりません (^^; どなたか解説をお願いします…。 以下、とりあえず思い付いた回避策です。 FormのOnCreateでApplication.OnIdleを設定する以外に、ApplicationEventsコンポーネントの OnIdleを使ってもOkです。 procedure TForm1.FormCreate(Sender: TObject); begin Application.OnIdle:=ApplicationIdle; end; procedure TForm1.Edit1Exit(Sender: TObject); begin if Edit1.Text='Edit1' then Edit1.Tag:=1; end; procedure TForm1.ApplicationIdle(Sender: TObject; var Done: Boolean); begin if Edit1.Tag=1 then begin Edit1.Tag:=0; ShowMessage('入力値が不正です。再入力してください。'); Edit1.SetFocus; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.