お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"スプラッシュウィンドウ"

この発言に対し以下のコメントが寄せられています
#00995 凛 さん RE:スプラッシュウィンドウ
#00996 凛 さん RE:スプラッシュウィンドウ

スプラッシュウィンドウのサンプル 他にもいろいろやり方はあると思いますが、私はこのようにしております。 全てディフォルトの名前を使ったと仮定しての例です。 Form1がメインウィンドウでForm2がスプラッシュとします。 1. Form1とForm2を作ってForm2はDelphiのメインメニューの プロジェクト/オプション/フォーム で Form2を自動作成の対象から選択可能なフォームに移動しておきます。 (もしくはproject1.dprを開いて Application.CreateForm(TForm2, Form2);の一行をコメントアウトする) 2. Unit1のimplemenationの下にuses unit2 を加える implementation uses      //☆追加 unit2; //☆追加 3.TForm1.onCreateのイベントハンドラを以下のように記述する procedure TForm1.FormCreate(Sender: TObject); var f2:TForm2; begin f2:=TForm2.Create(self); f2.show; sleep(1000);//もしくは時間がかかる処理 f2.free; end; ■多くの人は無意味なスプラッシュを嫌いますので特別な理由がない限りスプラ ッシュを使うのは控えた方がよいでしょう。 ■上記のサンプルはTForm1のインスタンスが一つしか作られないし、 TForm1.Createでいろいろな初期化をしているので時間がかかる、、という時に 妥当な処理です。TForm1のインスタンスがたくさん生成されるような状況では TForm1.CreateでなスプラッシュをCraeteするのは調子が悪いので initializationを使って以下のようにするのが吉かもしれません。 procedure init;//自分で書く var f2:TForm2; begin f2:=TForm2.Create(Application); f2.show; sleep(1000);//もしくはApplication共通の初期化 f2.free; end; initialization init; end. または プロジェクトファイル(*.dpr)を以下のようにしてもいいのではないで しょうか。 program Project1; uses Forms,  windows, //☆sleepのために追加 Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; var f2:TForm2; //☆追加 {$R *.RES} begin Application.Initialize; //ここから f2:=TForm2.Create(Application); f2.show; sleep(1000); f2.free; //ここまで追加 Application.CreateForm(TForm1, Form1); Application.Run; end. ☆☆☆  かわいいコードにゃ旅をさせよう いざサンプル蔵へ!! ☆☆☆ 99/12/26(日) 14:39 凛(MXB01744) Original document by 凛 氏 ID:(MXB01744)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum