開発ブログ - ダイアログフォームに裏に行ってほしくない!
Delphi VCL はフォームやダイアログを独自のフォームによって処理しているので
一般的な Windows プログラムと違う動きをする部分が結構あります。
フォームを ShowModal でダイアログとして表示しているのに、
タスクバーのアイコンをクリックすると、ダイアログがオーナーフォームの裏に隠れてしまうことがあります。
一般的な Windows プログラムと違う動きをする部分が結構あります。
フォームを ShowModal でダイアログとして表示しているのに、
タスクバーのアイコンをクリックすると、ダイアログがオーナーフォームの裏に隠れてしまうことがあります。
これを防ぐには以下のようなコードを入れればよいようです。
参考にしたサイトには {} 内のコードが入っているのですが、私が試したやり方では {}内があるとうまくいきませんでした。
基本的にダイアログとして使うフォームをモーダルにしたりモーダルでなくしたりということはしないので、これでも大丈夫かな...と
[参考サイト]
[Delphi] フォームの管理を多少楽にする(くろねこ研究所)
procedure TDialog1.FormCreate(Sender: TObject);
begin
if (Owner <> nil) and (Owner is TForm) {and (fsModal in FormState)} then
SetWindowLong(Handle, GWL_HWNDPARENT, TForm(Owner).Handle);
end;
参考にしたサイトには {} 内のコードが入っているのですが、私が試したやり方では {}内があるとうまくいきませんでした。
基本的にダイアログとして使うフォームをモーダルにしたりモーダルでなくしたりということはしないので、これでも大丈夫かな...と
[参考サイト]
[Delphi] フォームの管理を多少楽にする(くろねこ研究所)