「タスクバーに子フォームを表示」について


ユッケ  2008-03-07 17:38:46  No: 30105  IP: 192.*.*.*

http://big2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=0&refresh=1#0005.txt

に書いてある通りにすると、親フォームからボタンを押して、
子フォームをShowした時にタスクバーにアイコンが追加されます。

が、Showなのでもっかい親フォームからボタンを押すと、もう一つタスクバーに表示されてしまって、無限に出てきます。。。

2回目以降の起動を知り、表示させないためにはどうすればよろしいでしょうか?

それとこの処理は子フォームの方に記述しなければならないみたいなんですが、親の方から制御する事は出来ないでしょうか?
どなたかご存知の方ご教授お願いします。

編集 削除
KHE00221  2008-03-07 18:54:28  No: 30106  IP: 192.*.*.*

こうかな?

Form2 はプロジェクトから削除しておいて

procedure TForm1.Button1Click(Sender: TObject);
begin
    if Assigned(Form2) = False then
    begin
      Form2 := TForm2.Create(Self);
      SetWindowLong(Form2.Handle,GWL_EXSTYLE,GetWindowLong(Form2.Handle,GWL_EXSTYLE) + WS_EX_APPWINDOW);
    end;
    Form2.Show;
end;

編集 削除