implementation
USES UNIT2,UNIT3,UNIT4,UNIT5,UNIT6,UNIT7,unit8,UNIT9;
VAR
A:TFrame2;
B:TFRAME3;
C:TFRAME4;
D:TFRAME5;
E:TFRAME6;
F:TFRAME7;
g:TFRAME8;
H:TFRAME9;{$R *.dfm}procedure TForm1.BitBtn1Click(Sender: TObject);
begin
IF ASSIGNED(a) THEN a.FREE
ELSE
IF ASSIGNED(b) THEN b.FREE;
B:=TFRAME3.CREATE(SELF);
B.Parent:=PANEL2;
B.Align:=ALCLIENT;
B.SHOW;
end;procedure TForm1.BitBtn2Click(Sender: TObject);
begin
IF ASSIGNED(A) THEN A.Free
ELSE
IF ASSIGNED(B) THEN B.Free;
A:=TFRAME2.Create(SELF);
A.Parent:=PANEL2;
A.Align:=ALCLIENT;
A.SHOW;
end;procedure TForm1.BitBtn3Click(Sender: TObject);
begin
if assigned(a) then a.Free
else
if assigned(c) then c.Free;
c:=tframe4.Create(self);
c.Parent:=panel2;
c.Align:=alclient;
c.Show;
end;procedure TForm1.BitBtn4Click(Sender: TObject);
begin
if assigned(a) then a.Free
else
if assigned(d) then d.Free;
d:=tframe5.Create(self);
d.Parent:=panel2;
d.Align:=alclient;
d.Show;end;procedure TForm1.BitBtn5Click(Sender: TObject);
begin
if assigned(a) then a.Free
else
if assigned(e) then e.Free;
e:=tframe6.Create(self);
e.Parent:=panel2;
e.Align:=alclient;
e.show;end;procedure TForm1.BitBtn6Click(Sender: TObject);
begin
if assigned(a) then a.Free
else
if assigned(f) then f.Free;
f:=tframe7.Create(self);
f.Parent:=panel2;
f.Align:=alclient;
f.show;
end;procedure TForm1.BitBtn7Click(Sender: TObject);
begin
if assigned(a) then a.Free
else
if assigned(g) then g.Free;
g:=tframe8.Create(self);
g.Parent:=panel2;
g.Align:=alclient;
g.Show;
end;procedure TForm1.BitBtn8Click(Sender: TObject);
begin
if assigned(a) then a.Free
else
if assigned(h) then h.Free;
H:=tframe9.Create(self);
H.Parent:=panel2;
H.Align:=alclient;
H.Show;
end;
上面是我做的一个窗体切换介面.共有八个按钮,重复点击TFRAME4里就提示" A COMPONENT NAMED FRAME4 ALREADY EXISTS"但我明明放了的呀.
USES UNIT2,UNIT3,UNIT4,UNIT5,UNIT6,UNIT7,unit8,UNIT9;
VAR
A:TFrame2;
B:TFRAME3;
C:TFRAME4;
D:TFRAME5;
E:TFRAME6;
F:TFRAME7;
g:TFRAME8;
H:TFRAME9;{$R *.dfm}procedure TForm1.BitBtn1Click(Sender: TObject);
begin
IF ASSIGNED(a) THEN a.FREE
ELSE
IF ASSIGNED(b) THEN b.FREE;
B:=TFRAME3.CREATE(SELF);
B.Parent:=PANEL2;
B.Align:=ALCLIENT;
B.SHOW;
end;procedure TForm1.BitBtn2Click(Sender: TObject);
begin
IF ASSIGNED(A) THEN A.Free
ELSE
IF ASSIGNED(B) THEN B.Free;
A:=TFRAME2.Create(SELF);
A.Parent:=PANEL2;
A.Align:=ALCLIENT;
A.SHOW;
end;procedure TForm1.BitBtn3Click(Sender: TObject);
begin
if assigned(a) then a.Free
else
if assigned(c) then c.Free;
c:=tframe4.Create(self);
c.Parent:=panel2;
c.Align:=alclient;
c.Show;
end;procedure TForm1.BitBtn4Click(Sender: TObject);
begin
if assigned(a) then a.Free
else
if assigned(d) then d.Free;
d:=tframe5.Create(self);
d.Parent:=panel2;
d.Align:=alclient;
d.Show;end;procedure TForm1.BitBtn5Click(Sender: TObject);
begin
if assigned(a) then a.Free
else
if assigned(e) then e.Free;
e:=tframe6.Create(self);
e.Parent:=panel2;
e.Align:=alclient;
e.show;end;procedure TForm1.BitBtn6Click(Sender: TObject);
begin
if assigned(a) then a.Free
else
if assigned(f) then f.Free;
f:=tframe7.Create(self);
f.Parent:=panel2;
f.Align:=alclient;
f.show;
end;procedure TForm1.BitBtn7Click(Sender: TObject);
begin
if assigned(a) then a.Free
else
if assigned(g) then g.Free;
g:=tframe8.Create(self);
g.Parent:=panel2;
g.Align:=alclient;
g.Show;
end;procedure TForm1.BitBtn8Click(Sender: TObject);
begin
if assigned(a) then a.Free
else
if assigned(h) then h.Free;
H:=tframe9.Create(self);
H.Parent:=panel2;
H.Align:=alclient;
H.Show;
end;
上面是我做的一个窗体切换介面.共有八个按钮,重复点击TFRAME4里就提示" A COMPONENT NAMED FRAME4 ALREADY EXISTS"但我明明放了的呀.
解决方案 »
- 各位好,请推荐几本学习Delphi的好书!
- 加密算法的实现?
- 用delphi 开发一个能发lotus 邮件的功能,有办法吗?程序如何写????
- 求助类型转换的问题
- 如何对listview每一行字体颜色进行处理
- delphi中的控件
- 100分送上!Delphi5 中用 QuickReport 做的报表,在Win98下总是只打印最后一页?很急!
- 我们几个想开一套单机版的软件 , 可是在数据库的选择上面出现了一点疑惑,不知道使用access好还是用自带的数据库好,希望能给个理由
- 能否帮忙给解释一下:什么是"EPR"?
- 请教高手关于delphi如何开发关于cookie的程序
- dephi中大段的字符串过滤用什么好?
- 高手指教--socket服务器提示:“Read Err64 提定的网络名不可用”的原因?
页面切换不用你这么麻烦吧...
var
Frame: array [1..9] of TFrame; //九个Frame
PublicFrame: TFrame;
begin
Frame[1] := TFrame1.Create(Self); //这样就是创建了TFrame1这个Frame了...
Frame[2] := TFrame2.Create(Self); //这样就是创建了TFrame2这个Frame了... PublicFrame := Frame[1]; //把最新创建的Frame指针保存...在创建新的Frame之前释放这个frame就行了...就不有这么麻烦...
//在就是不用九个按钮都写代码,一个就行了而且简单明了...
end;
begin
B:=nil;
IF ASSIGNED(a) THEN a.FREE
ELSE
IF ASSIGNED(b) THEN b.FREE;
B:=TFRAME3.CREATE(SELF);
B.Parent:=PANEL2;
B.Align:=ALCLIENT;
B.SHOW;
end;