小さなメニューから複数のパネルにアクセスできるシングルウィンドウアプリケーションを作成したいと思います。パネルを片側からスライドさせたい。
私は小さなデモアプリケーションを実行しましたが、すべてが機能します。唯一の問題は、デモアプリ用に1つのフォームに約7つのパネルがあることです。それらはすべて互いに重なり合っているため、これらのパネルの概要を維持したり、変更したりするのは困難です。
そこで、パネルごとに追加のユニットを作成し、パネルを好きなようにデザインして変更し、コードを使用してメインフォームに追加したいと思いました。
フォームのfmxファイルを調べて、パネル用に1つ作成しました。また、パネル用に.pasを作成しました。
Unit2.pas:
unit Unit2;
interface
uses ...
type
TPanel1 = class(TPanel)
Label1: TLabel;
end;
var
Panel1: TPanel1;
implementation
{$R *.fmx}
end.
Unit2.fmx:
object Panel1: TPanel1
Left = 0
Top = 0
Caption = 'Panel1'
ClientHeight = 551
ClientWidth = 800
Visible = False
StyleLookup = 'backgroundstyle'
object Label1: TLabel
Position.Point = '(8,8)'
Width = 120.000000000000000000
Height = 15.000000000000000000
TabOrder = 9
Text = 'Panel1'
end
end
これで、デザイナーを使用してパネルをデザインできます。しかし、次のようなことをしてメインフォームで使用したい場合:
Panel1 := TPanel1.Create(Self);
Panel1.Parent := Self;
私が設計したものではなく、標準のTPanelしか入手できません。
すべてを同じに保ち、基本クラスをTPanelからTFormに変更すると、期待どおりに機能します(もちろん、テストするには.Parent =の代わりに.Showを使用します)。
設計したパネルをメインフォームにするには、何をする必要がありますか?
助けてくれてありがとう。