我现在想要把几个大的子窗口显示在主窗口的一个TPanel上,我试了用这种方法显示:
procedure TMainFrm.dbInventoryInfoClick(Sender: TObject);
begin
if OldForm is TInventoryInfoFrm then Exit;
DoChangeForm(TInventoryInfoFrm.Create(nil));
end;
procedure TMainFrm.DoChangeForm(NewForm: TForm);
begin
if Assigned(OldForm) then
FreeAndnil(OldForm); OldForm := NewForm;
OldForm.Align := alClient;
OldForm.BorderStyle := bsnone;
OldForm.Parent := plRight;
OldForm.Show;
end;但是在显示TInventoryInfoFrm的时候发现窗口很晃,我想问一下有什么好点的办法来实现,最好不要使窗口这么晃动。
procedure TMainFrm.dbInventoryInfoClick(Sender: TObject);
begin
if OldForm is TInventoryInfoFrm then Exit;
DoChangeForm(TInventoryInfoFrm.Create(nil));
end;
procedure TMainFrm.DoChangeForm(NewForm: TForm);
begin
if Assigned(OldForm) then
FreeAndnil(OldForm); OldForm := NewForm;
OldForm.Align := alClient;
OldForm.BorderStyle := bsnone;
OldForm.Parent := plRight;
OldForm.Show;
end;但是在显示TInventoryInfoFrm的时候发现窗口很晃,我想问一下有什么好点的办法来实现,最好不要使窗口这么晃动。
if Assigned(OldForm) then
FreeAndnil(OldForm);
这样每次释放,创建,显示,肯定感觉不好,你把你创建的窗体维护在一个列表中,只创建一次,然后添加到列表,下次用时,到列表中找,找到后BringToFront