フレームの切り替えをするには?


有浦  2005-11-14 16:37:41  No: 18703  IP: 192.*.*.*

Frames をフォームに貼り付けると
ひとつしか張り付かないのですが
フレームを2つ作って
Form 上でこの2つのフレームを切り替えて表示するには
どうすればよいのでしょうか?

編集 削除
Mr.XRAY  URL  2005-11-14 23:28:22  No: 18704  IP: 192.*.*.*

う〜む.どういうふうにレスしたらいいか悩んだのですが....

>ひとつしか張り付かないのですが

私のところでは同じFrameも違うFrameもいくつでもフォームに配置できて
いますよ.Delphi5,6,7ですが.
Frameの作成や利用手順はいろいろありますので,有浦さんの質問の文章
だけですと,これ以上のアドバイスはちょっと無理かも知れませんね.

編集 削除
にしの  2005-11-15 00:02:01  No: 18705  IP: 192.*.*.*

Align:=alClientだと1つしか貼り付けていないようにみえてしまうということでしょうか。
Xr.XRAYさんのいうように複数貼り付けることもできるはずです。
その場合、1つをVisibleにして、他をInvisibleにする必要があります。

簡単な方法としては、TPageControlを使って、
・各ページにFrameを貼り付ける
・各ページのTabVisibleをFalseにする。
・TPageControlのTabIndexで切り替える。
とすればよいかと思います。

編集 削除
 2005-11-15 01:41:19  No: 18706  IP: 192.*.*.*

プロジェクトのusesに貼り付けしたいフレームが入ってなくて、
ぽとりぺたりしても候補に出てこないとかさ。。。
これなら、「ユニットを追加」とかで、入ったりしないかぃ?

編集 削除
有浦  2005-11-15 10:35:45  No: 18707  IP: 192.*.*.*

すみません。
考え違いしていたようです。

TFrame で 2つのUnit を新規作成し、
同じようなフォームで若干違うものを作成しました。

これをひとつのフォームから切り替えて表示し、
表示されているメニューで処理をおこうつもりでした

例えば
Frame1とFrame2 を作成し、
FormMain で  切り替える

SelFrame: array [1..2] of TFrame;

表示の切り替え
SelFrame[SelMode].Visible := (SelMode = 1);
SelFrame[SelMode].Visible := (SelMode <> 1);

以下のような記述で処理できないかなと思ったのですが。

if SelFrame[SelMode].RadioButton.Tag = 0 
then 〜
else 〜;

編集 削除
Mr.XRAY  URL  2005-11-15 18:37:10  No: 18708  IP: 192.*.*.*

でしたら,にしのさんのレスの方法ですね.

>・TPageControlのTabIndexで切り替える。

このTabIndexをRadioButtonで切り替える感じですね.

編集 削除