还是不太明白你的意思,但是下面的代码是如何动态加载Frmae窗体 use FrmName ; //你建立的Frame var Frame : TFrame ; procedure Tform1.Button1Click(Sender: TObject); begin if Assigned(Frame) then Begin Try FreeAndNil(Frame) ; Except Frame := nil ; end ; end ; Frame := TFrmName.Create(Form1); //TFrmName:你建立的Frame窗体,前面需要引用 Frame.Parent := gBox ; Frame.Align := alClient ; with (Frame as TFrmName) do begin 。这里可以对Frame 中的控件进行设置了 end ; end ;
Frame : array of TFrame2 ; procedure Tform1.Button1Click(Sender: TObject); var i:integer; begin setlength(frame,3); for i:=low(frame) to high(frame) do begin if Assigned(Frame[i]) then Begin Try FreeAndNil(Frame[i]) ; Except Frame[i] := nil ; end ; end ; Frame[i] := TFrame2.Create(Form1); //TFrame2:你建立的Frame窗体,前面需要引用 Frame[i].Parent := Form1 ; Frame[i].Align := altop ; with (Frame as TFrmName) do begin 。这里可以对Frame 中的控件进行设置了 end end; end ; 我的意思就这样,要加载好几个frame2,运行到TFrame2.Create(Form1);说是已经加载了
把上面的改成 if i=0 then Frame[i] := TFrame2.Create(Form1) else Frame[i] := TFrame2.Create(Frame[i-1]); 就可以了,谁可以解释一下这个意思啊
然后我读配置文件,如果是3,就以数组形式加载frame1,为frame1[0],frame1[1],frame1[2]
use FrmName ; //你建立的Frame
var
Frame : TFrame ;
procedure Tform1.Button1Click(Sender: TObject);
begin
if Assigned(Frame) then
Begin
Try
FreeAndNil(Frame) ;
Except
Frame := nil ;
end ;
end ;
Frame := TFrmName.Create(Form1); //TFrmName:你建立的Frame窗体,前面需要引用
Frame.Parent := gBox ;
Frame.Align := alClient ;
with (Frame as TFrmName) do
begin
。这里可以对Frame 中的控件进行设置了
end ;
end ;
procedure Tform1.Button1Click(Sender: TObject);
var i:integer;
begin
setlength(frame,3);
for i:=low(frame) to high(frame) do
begin
if Assigned(Frame[i]) then
Begin
Try
FreeAndNil(Frame[i]) ;
Except
Frame[i] := nil ;
end ;
end ;
Frame[i] := TFrame2.Create(Form1); //TFrame2:你建立的Frame窗体,前面需要引用
Frame[i].Parent := Form1 ;
Frame[i].Align := altop ;
with (Frame as TFrmName) do
begin
。这里可以对Frame 中的控件进行设置了
end
end;
end ;
我的意思就这样,要加载好几个frame2,运行到TFrame2.Create(Form1);说是已经加载了
if i=0 then
Frame[i] := TFrame2.Create(Form1)
else
Frame[i] := TFrame2.Create(Frame[i-1]);
就可以了,谁可以解释一下这个意思啊