DELPHI 如何在 一个FORM的左边显示树组,单击树组上的按钮,右边显示不同的FORM
2个回答
展开全部
我估计你的问题肯定是在右边显示不同的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;
运行程序,看看效果
有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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询