掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
システムメニューの左マウス押下での処理メッセージの流れを監視するには (ID:29380)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>>最大化とか移動しても止まりませんよ 最大化ボタンは元々無効ですよね? 移動はシステムメニューの押下ではなく、タイトルバーの押下なので問題ないと思います。 >>マインスイーパー自体最小化するとカウント止まるけど? そのようですね。従って、最小化はしなくても、最小化ボタンの押下のみでカウントがとまるような処理かもしれませんので、これ自体では判断できないようですね。 では、メモ帳で点滅しているカーソルは、最小化ボタンの押下ではどうなりますか? また、より複雑な私本来のしたいことが実現できているということなのですが、念の為に確認させてください。 Formに TLabel 2個 TTimer 1個 TButton 1個 をおいて、 〜Unit1始まり〜 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls,Unit2; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Button1: TButton; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private 宣言 } MyThread:TMyThread; public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin MyThread:=TMyThread.Create(False); end; procedure TForm1.Timer1Timer(Sender: TObject); begin Label1.Caption:=FormatDateTime('hh:mm:ss',now); end; end. 〜Unit1終わり〜 〜Unit2始まり〜 unit Unit2; interface uses Classes,SysUtils,Forms; type TMyThread = class(TThread) private { Private 宣言 } procedure UpdateCaption; protected procedure Execute; override; end; implementation uses Unit1; procedure TMyThread.UpdateCaption; begin Form1.Label2.Caption:= FormatDateTime('hh:mm:ss',now); end; procedure TMyThread.Execute; begin while True do begin Application.ProcessMessages; Synchronize(UpdateCaption); end; end; end. 〜Unit2終わり〜 というアプリケーションをつくり実行してみてください。 起動で、Label1の時刻表示が開始され、Button1クリックで、スレッドによるLabel2の時刻表示が開始されます。私の環境では、最小化ボタンの左マウス押下で、これらの時刻表示は両方とも停止します。そちらの環境では問題なく動作しますでしょうか?あるいは、私のコード自体に致命的な間違いが存在するでしょうか? お手数をおかけしますがよろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.