「クリック」と「Enter」でのonclickイベントの違いについて

解決


駆け出し  2005-07-28 03:51:12  No: 16671

TLoginForm.Button1Click(Sender: TObject);
begin
//
//省略(ID・Pass参照後、別のフォームのVisible:=Trueにしている。)
//
  LoginForm.Destroy;
end;

このプログラムなのですが、ボタンをマウスでクリックして呼び出すと、
「EXE名 のアドレス 0040315 でアドレス 0000000E に対する読み込み違反がおきました。」
のエラーメッセージが出てしまいます。
ボタン上でEnterにてイベント発生の際には、この不具合はありません。

「LoginForm.Destroy;」を削除すれば、この不具合は出ないのですが、なぜこのような現象がおきるのか?
そもそも、「ボタンをマウスでクリック」と「ボタン上でEnter」との違いはなにか?
まだ駆け出しなので、わからないことだらけです・・・
よろしくお願いしますm(_ _)m


にしの  2005-07-28 04:25:58  No: 16672

LoginForm.Release;
でもエラーになりますか?
クリックとEnterの違いと言えば、メッセージの飛ぶ順序くらいだと思いますが。


つか  2005-07-28 09:25:27  No: 16673

Destory は、直接使うなってHelpに書いてなかったっけ?
にしのさんのレスのように、 Release を使うか、または Free を使う。

今回のような場合、自身のイベント処理中に自殺(Free)しちゃだめ。
Release を使って、やることやって(イベントをぬけてすっきりして)からお亡くなりにならないといけません。


駆け出し  2005-07-28 19:33:13  No: 16674

にしのさん、つかさん、回答ありがとうございました。
LoginForm.Release;では問題ありませんでした。
原因はともかく、自殺しないようにすることで、対処と致しました。


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

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






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