关于客户端界面设计的问题(30分)

  • 主题发起人 f_huafeng
  • 开始时间
F

f_huafeng

Unregistered / Unconfirmed
GUEST, unregistred user!
具体如下:客户端是多窗口编辑的,然后主窗体的左边一部分显示各个窗体
(其实就是一棵树,不要的时候可要关闭掉,需要时也可以打开的),
点击其中的某一个节点,在主窗体的右边显示该窗体。
现在有个难点就是,当那棵树存在的时候,其左边所有的窗体都只能存在树的右边
那部分空间,当树不存在的时候,则窗体可以在主窗体上面的任意地方显示。
 
各位大虾:发表意见吧。。。等待中。。。
 
右边可以放一个Panel控件。
每当点击左边树时,
定义一个窗体类型变量 NewDemoClass
定义一个窗体变量,NewDemo
begin
case Tag of
1:
NewDemoClass := TFmSectRooms;
2:
NewDemoClass := TFmRegKind;
11:
NewDemoClass:=TFmClinRegLogin;
14:
NewDemoClass := TFmIndiviSetting;
else
NewDemoClass := nil;
end;
if (Panel.ControlCount = 1) or not (Panel.Controls[1] is NewDemoClass) then
begin
if Panel.ControlCount > 1 then begin
(Panel.Controls[1] as TForm).Close;
Panel.Controls[1].Free;
end;
if Assigned(NewDemoClass) then
begin
NewDemo := NewDemoClass.Create(Self);
NewDeMo.tag:=(Sender as TAction).Tag;
NewDemo.Hide;
NewDemo.Height := NewDemo.ClientHeight;
//将窗体设为无标题栏时,会使客户区高度变为窗体总高度,所以...
NewDemo.BorderStyle := bsNone;
NewDemo.Parent := ContPanel;
ContPanelResize(nil);
vComp := NewDemo.FindComponent('pmDropDown');
if (vComp<>nil)and(vComp is TPopupMenu) then
DropDownMenu := vComp as TPopupMenu;
NewDemo.Show;
end;
End;
 
左边放一面板,align=alLeft
右边放一面板,align=alClient

把树放在左边的面板上,From放在右边的面板上。
当树不显示时,左面板的 width:=0;
显示时,。。。。。。。。
 
多人接受答案了。
 
顶部