名前 題名 ▼ Mr.XRAYさん > ググっていたらこんな質問を見かけました. > 子フォーム Form2 をメインフォーム Form1 から表示するとします. > Form2 を表示してメインフォームを非表示にします. > すると,タスクバーにアプリまたはフォームのアイコンが表示されなくなってしまいます. > > procedure TForm1.Button1Click(Sender: TObject); > begin > Form2 := TForm2.Create(Self); > Form2.Show; > > Hide; > end; > > サンプルプログラム主にアクティブなフォームのアイコンだけをタスクバーに表示する > サンプルがありますが,以下のような方法もあります. > 動作確認は Windows 7 U64(SP1) + Delphi XE5(UP2) Pro VCL-32 です. > > procedure TForm1.Button1Click(Sender: TObject); > begin > // まずメインフォームを非表示にする > Hide; > > Form2 := TForm2.Create(Self); > Form2.Left := Self.Left + 100; > Form2.Top := Self.Top + 100; > Form2.Show; > end; > > 表示する子フォームのコードを以下のようにします. > > uses Unit1; > > procedure TForm2.CreateParams(var Params: TCreateParams); > begin > inherited CreateParams(Params); > > //このフォームの親をDesktopとする > //タスクバーにForm1とは別にアイコン表示される > if not Form1.Visible then begin > Params.WndParent := GetDesktopWindow; > end; > end; > > procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean); > begin > Form1.Show; > end; > > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link