- ベストアンサー
delphi6を使ってます。
今、FormやUnitを勉強しているのですが Formのなかにボタンをつけてそのボタンをクリックすると新しいFormが表示するようにしたいのですがやり方がわかりません。 何方か教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
Form を動的に作成する方法もありますが勉強し始めと言う事なので。わかりやすい方法を説明します、スキルのレベルがわからないのでわかりきった説明をしていたら御免なさい。 (1) ファイルメニューの新規作成でもう一つ Form を作成します。普通に作成すれば Form2 になるので Form2 とします。Form2 用のコードを記述する為の Unit2 も追加されます。 (2) Unit1 で Form2 を使用すると言う事の記述が必要です。 Unit1 の上の方の Interface の下の uses に Unit2 を追加します。 uses ・・・・Dialogs,StdCtrls,Unit2; (3) プログラム起動時には表示されないようにオブジェクトインスペクタでForm2のプロパティタブの Visible プロパティを False にします。 2つ目以降のフォームは変更しなくてもディフォルトで False になっているので確認だけになると思います。 (4) ボタンが Button1 ならオブジェクトインスペクタで Button1 を選びイベントタブの OnClick の右の空欄をダブルクリックすると自動的にイベント処理ルーチンとして procedure TForm1.Button1Click(Sender: TObject) が選択され、また自動的に Unit1 内に procedure TForm1.Button1Click(Sender: TObject); begin end; とコードが追加されます。 これがボタンが押された時処理するコードを記述する部分です (5) procedure TForm1.Button1Click(Sender: TObject); begin Form2.Show; end; とForm2を表示するコードを追加します。 Form2.Show; のかわりに Form2.Visible:=True; としても表示されます。ひとまず以上でボタンをクリックすれば2つめのフォームが表示されます。 (参考) もし2つボタンを配置して消す機能を追加する場合は Form2.Hide; または Form2.Visible:=False; となります。 表示には Form2.Show とは別に Form2.ShowModal があります。どう違うかはヘルプなどで調べてみて下さい。
お礼
回答ありがとうございます。 コンパイルはできたのですが そのボタンを押すと読み込み違反と出てしまいました。