Form中的Form(60分)

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

fatBaby

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要将一个Form做为另一个Form的一个Panel或Notebook显示出来,即这个Form看上去好
象成为了另一个Form上的一部分。

请教如何实现

注:这和拖拽是两种概念。
 
在DELPHI中用FRAME代替FORM,可以实现您要求的。
 
该问题用堆叠技术可实现(Drag and Dock)也就是像Wrod的工具条那样可拉出来成为浮动窗口
,也可以堆叠回去,还原为工具条。
堆叠汲及两个操作对象,一人是堆叠区(Docking Site),一个是可堆叠对象(Dockable
Control)。TWinControl的子类都可以做堆叠区,TControl的子类可以做堆叠对象。
有3个事件可来控制堆叠:
property OnGetSiteInfo:procedure(Sender:TObject;DockClient:TControl;var
InfluenceRect:TRect;var CanDock;Boolean) of Object;
property OnDockOver:procedure(Sender:TObject;Source:TDragDockObject;X,Y:Integer;
State:TDragState;var Accept:Boolean) of Object;
property OnDockDrop:procedure(Sender:TObject;Source:TDragDockObject;X,Y:Ineger)
of Object;
 
这个问题不难,这分归我了
运行时设置:
form1.parent := form1.panal1;

that's ok

用控件也可以
 
form上放panal,panal再放FRAME;
能达到您的要求吗?

 
to mech, wumeng: 没用过 Frame, 哪儿有 Demo ?

to 悲酥清风: 我说过这和拖拽不一样的.

我的用意是将一个Panel 上的内容,什么编辑框,列表框等,放在一个 DLL 中,运行时
将它作为 EXE 中的一部分显示出来。
说白了,就是一个 ActiveForm 的作用,但为了减少麻烦,并且为使 DLL 不存在时也能
运行,所以不使用 ActiveForm 。
 
》wumeng 并且请注意事件是原窗口代码接受的,千万小心
 
only
Form2.Parent:=Form1;
就可以了!
 
应该是
form2.show;
form2.parent:=form1;
form2.borderstyle:=bsnone;
然后按你的要求设置form2的位置!
 
学习到不少东西
可以用Frame,我觉得
 
啊?原来这么简单,我原以为你们全是错的呢 ...
 
能不能告诉我 Frame 的用法,

分不够,我再加 !
 
和FORM的用法一样。
同样从FILE中选NEW FRAME, 同样继承,同样可视化设计。
区别是:
可以将FRAME加到PALETTE中, 再将FRAME当成组件用。
 
多人接受答案了。
 
Frame 我也没真正用过,只是玩玩,你看看help吧.
简要步骤:NewApp-->NewFrame(file-->NewFrame)设计您的Frame(象设计FORM一样,
其它的FRame从它继承),设计完之后,点控件栏上的Frame添加.
您自己试试吧.
 
后退
顶部