掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
新規フォームをアクティブにせずに表示するには (ID:35815)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>>処理が無限ループ?に陥ってしまい いあいあ、そもそもWindowアプリケーションは無限ループです。 直にAPIで表示状態を変更すると、 VCLのShow,Hideのメッセージの流れが変になります。 そのため必要な個所の修正が必要って意味です。 簡単な利用なだけであればさほど問題はありません。 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private 宣言 } PopForm : TForm; btn : TButton; procedure btnClick(Sender: TObject); public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.btnClick(Sender: TObject); begin Timer1.Enabled:=False; ShowWindow(PopForm.Handle,SW_HIDE); end; procedure TForm1.Button1Click(Sender: TObject); begin SetWindowPos(PopForm.Handle,0,Left-100,Top-100,100,100,SWP_SHOWWINDOW or SWP_NOACTIVATE); Timer1.Enabled := True; end; procedure TForm1.FormCreate(Sender: TObject); begin Timer1.Enabled := False; Timer1.Interval := 3000; PopForm := TForm.Create(Self); PopForm.BorderStyle := bsNone; PopForm.Color := clYellow; btn := TButton.Create(Self); btn.Caption := 'Close'; btn.Parent := PopForm; btn.OnClick := btnClick; SetWindowPos(btn.Handle,0,0,0,100,100,SWP_SHOWWINDOW or SWP_NOACTIVATE); end; procedure TForm1.Timer1Timer(Sender: TObject); begin beep; ShowWindow(PopForm.Handle,SW_HIDE); end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.