喫茶XRAYトップページ

[スレッド全体
]

[1506] 新規作成したフォームの参照返信 削除
2008/1/8 (火) 18:27:46 ANDY
次のような場合どのようにしますか?

Form2をにbutton1を作っておいて

Form1からパネルに表示します。


 var ff:TForm;
 NewDemoClass: TFormClass;
 begin
  NewDemoClass := TForm2;
  if Panel2.ControlCount > 0 then Panel2.Controls[0].Free;
    if Assigned(NewDemoClass) then begin
      ff := NewDemoClass.Create(Self);
      ff.Hide;
      ff.BorderStyle := bsNone;
      ff.Parent := Panel2;
      ff.Align := alClient;
      ff.Show;
    end;


Form1からform2のbutton1.clickなどをしたいのですが。




[1507] Re:新規作成したフォームの参照返信 削除
2008/1/9 (水) 21:29:32 Mr.XRAY
▼ ANDYさん

いやいや,恥ずかしながらTFormClassというのを知りませんでした.
で,ネットで調べてみました.なるほど.

TFormClaasを使用した時のコードは,とうことですよね.
気づいたのは,

>   if Panel2.ControlCount > 0 then Panel2.Controls[0].Free;

このControls[0]ですが,対象のFormを直接指定してFreeする方がなんとなく
すっきりする気がするのですが.
それとも 0 は常にそれになるのかな?
全体的なコードについては,TFormClassのことがよくわからないので... (^_^;)

[1508] Re2:新規作成したフォームの参照返信 削除
2008/1/10 (木) 09:43:16 ANDY
▼ Mr.XRAYさん

> いやいや,恥ずかしながらTFormClassというのを知りませんでした.
> で,ネットで調べてみました.なるほど.
>
> TFormClaasを使用した時のコードは,とうことですよね.
> 気づいたのは,
>
> >   if Panel2.ControlCount > 0 then Panel2.Controls[0].Free;
>
> このControls[0]ですが,対象のFormを直接指定してFreeする方がなんとなく
> すっきりする気がするのですが.
> それとも 0 は常にそれになるのかな?
> 全体的なコードについては,TFormClassのことがよくわからないので... (^_^;)


コメントをありがとうございました。
最初、1つのフォームでコントロールを作成していましたが
書き換えがなんか早くできないので、海外のページを見ていたら
このような方法でやっていましたのでやってみました。
最近では、Viewフォームを作っておいて、関連するフォームを
切り替えるようにしています。フォームが増えますが
修正のときはやりやすくなったです。
単純にフォームを作ってやるとお互いのコントロールが参照できる
のですが、プロジェクトで作成の方にし、CREATでフォーム
を作成するとコントロールの候補は出てくるのに
実行時参照するとエラーになります。


[1510] Re3:新規作成したフォームの参照返信 削除
2008/1/11 (金) 00:25:29 Mr.XRAY
▼ ANDYさん

> 単純にフォームを作ってやるとお互いのコントロールが参照できる
> のですが、プロジェクトで作成の方にし、CREATでフォーム
> を作成するとコントロールの候補は出てくるのに
> 実行時参照するとエラーになります。


なんか,こういう状態が続くとイラつきませんか?
何にも手助けできませが,せいぜい愚痴でもこぼして下さい. m(_ _)m

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82