DELPHI 如何在 一个FORM的左边显示树组,单击树组上的按钮,右边显示不同的FORM

 我来答
水木葫芦娃
2012-04-09 · TA获得超过100个赞
知道小有建树答主
回答量:133
采纳率:50%
帮助的人:42.6万
展开全部
我估计你的问题肯定是在右边显示不同的Form上
有2个方式可以实现
第1: 嵌入Frame,使用 Notebook+Frame,
方法是:1.先新建1个Frame,方法是菜单 File—new—Frame
2.然后在加入Notebook控件
3. 增加一个Page
4. 现在新加个Page
5. 选择Frames控件(在Standard页,也就是菜单控件左边的那个)
6. 放入Page, 会弹出一个选择框,选择你刚加的那个Fram就行。
Frame其实就算一个窗口了,在里面你可以编辑你自己的界面,按钮事件和业务逻辑,
运行程序,看看效果

第2: 嵌入真正的Form,使用 PageControl+Form
方法是:1.新建3个Form, FormMain, Form1和Form2
2.在Form1和Form2的Public区声明函数
class procedure loadSelf(var pForm: TForm; parentForm: TWinControl; AlignParent: TAlign);
3. 函数实现(Form1和Form2都要有,这里是Form1的):
class procedure TForm1.loadSelf(var pForm: TForm;
parentForm: TWinControl; AlignParent: TAlign);
begin
//释放引用窗体
if Assigned(pForm) then
pForm.Free;
//建立新窗体
pForm := Create(ParentForm);
with pForm as Self do
begin
BorderStyle := bsNone;
Parent := ParentForm;
if AlignParent = alNone then
begin
//定义窗体显示的左上位置
Left := (ParentForm.ClientWidth - Width) div 2;
Top := (ParentForm.ClientHeight - Height) div 2 + 10;
end else
Align := alclient;
Show;
end;
end;

4.在FormMain窗口上添加PageControl控件,并添加一个2个TabSheet ,TabSheet1和TabSheet2,其中TabSheet1嵌入Fom1, TabSheet2嵌入Form2
5. 在FormMain窗口声明一个全局变量 FLoadForm: TForm;
6. 在PageControl控件的Change事件中,加入下面的代码
case PageControl.ActivePageIndex of
0: TForm1.loadSelf(FLoadForm, TabSheet1, alClient);
1: TForm2.loadSelf(FLoadForm, TabSheet2, alClient);
end;

运行程序,看看效果
追问
6. 在PageControl控件的Change事件中,加入下面的代码
case PageControl.ActivePageIndex of
0: TForm1.loadSelf(FLoadForm, TabSheet1, alClient);
1: TForm2.loadSelf(FLoadForm, TabSheet2, alClient);
end;

这里找不到 PageControl
zyqasc
2012-04-09 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:101万
展开全部
右边一般不能再用form了,因为这样会乱。
实际中会用到pagecontrl的控件,通过左边树节点的ID号来控制显示不同类型的page

如:ID为1,则显示PAGENUM为1的页面,而其他page页面则进入visible为false的状态
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式