• 全部
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API
  • 问答

FORM,FORM我爱你!!!

Rayphrank 2002-05-12 08:30:49
有两个form A和B,

1、其中B只在A的范围里面显示,且可移动,
2、B被选中时,A的标题栏还是蓝色的,
3、B移动时,A始终不出现滚动条

满足这样三条的两个FORM怎样实现??

ps:
MDI可实现大部分功能,
但 B移动时,A会出现滚动条,而且MDIFORM里设置了AUTOSCROLL=FALSE也没用,即3不能完成,

不用MDI,设B的PARENT=A,滚动条可以没有,但B始终不能获得焦点,即2不能完成

如果不用MDI怎样实现?
用MDI了??
...全文
8 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
naughtyboy 2002-05-14
var
form2:tform;
begin
form2:=tform.create(application);
form2.parent:=form1;
form2.visible:=true;
end;
回复
短歌如风 2002-05-14
对不起,前面写错了:
procedure TB.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WindowClass.lpfnWndProc:= @ MyMDIChildProc;
end;

回复
ihihonline 2002-05-13
delphi下有一个例子的,为什么不看一下?
回复
tazhch 2002-05-13
用MDI,拦堆了窗口的wm_changewindowpost消息
回复
短歌如风 2002-05-13
A.FormStyle:=fsMDIForm
B.FormStyle:=fsMDIChild
在B的单元写一个函数(注意,不是B的成员函数):
function MyMDIChildProc(hwndMe:HWND;uMsg,wParam,lParam:DWORD):Integer;sdtcall;
begin
if (uMsg = WM_SIZE) or (uMsg = WM_MOVE) then
Result := DefWindowProc(hwndMe,uMsg,wParam,lParam)
else
Result := DefMDIChildProc(hwndMe,uMsg,wParam,lParam);
end;

覆盖B的CreateParams:
procedure TB.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WindowClass.lpWindowProc := @ MyMDIChildProc;
end;
这样就可以了。
由于我是在网吧上网,上面的代码可能有写错的地方,敬请原谅。
回复
Rayphrank 2002-05-12
to:all

不能用PANEL阿,只能用form的,呵呵,而且最好不要用MDI,因为MDI主窗口的客户区很难控制
回复
Rayphrank 2002-05-12
to:: jishiping(JSP 季世平)

我一开始也是这样写的,后来发现一个FORM的子form是不能获得焦点的,标题栏始终是灰的!!!
回复
Rayphrank 2002-05-12
to:smhpnuaa

setparent(form2.handle,form1.handle);怎么用阿??哪个单元的阿,VCL里面好像也有这样一个函数阿,但两个函数的参数不同,编译通不过的阿
回复
smhpnuaa 2002-05-12
photoshop的窗体结构就是这样!

你可以用Panel代替Form!

或者:Form1.autoscroll:=false;
setparent(form2.handle,form1.handle);
回复
jishiping 2002-05-12
我使用BCB,Pascal的语法不熟。
TForm1.Create(TComponent* Owner);
begin
HorzScrollBar.Visible := false;
VertScrollBar.Visible := false;
Form2 := TForm2.Create(this);
Form2.Parent := this;
Form2.Visible := true;
end;
回复
kmask 2002-05-12
b用panel来代替不行嘛???

看不出有什么理由一定要用FORM
回复
发帖
Delphi
创建于2007-08-02

4867

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2002-05-12 08:30
社区公告
暂无公告