怎样实现QQ或MSN发送消息窗口的多重创建?

chenzhenhui 2004-09-07 09:49:18
MSN的聊天窗口可以多重创建,但又好像是独立的,同主界面没有关联.....
我创建了一个主界面:MainFrm ,然后在主界面创建子窗口:
Application.CreateFrom(TForm2,Form2)
Form2.show

在Form2窗口里有一个Panel控件,在Form2的OnCanResize事件里:
Panel1.Width:=For2.Width-100;

我执行程序: 在MainFrm 里创建了两个Form2子窗口,当我改变了最后创建的子窗口后,而前面所创建的窗口也跟着变...天啊,有什么办法解决? 怎样创建窗口可以独立,脱离主窗口...这些方法都不行:
Application.CreateForm(TForm1,Form1);
Form1.show

Form1:=TForm1.Create(Application);
Form1.show
如果可以解决以上问题,再加100分

...全文
113 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenzhenhui 2004-09-08
  • 打赏
  • 举报
回复
我做出来了,把Panel1.Width:=Form2.Width-100; 改成 Panel1.Width:=Self.Width-100;
就不会变.....
但是又一个问题:如果我在Form2的窗口再调用 OpenDialog控件或ShowModal一个新窗口,那原来的主界面MainFrm又跟着Form2一样,不能活动,直到把OpenDialog或ShowModal的窗口关掉才可以活动,难道真是要Form2是一个独立窗口,但是我又不想这要做....暂时先给分,我这个问题真是有点难死我了
webstorm 2004-09-07
  • 打赏
  • 举报
回复
Form2应当为一独立窗口,否则会出现异常!
webstorm 2004-09-07
  • 打赏
  • 举报
回复
Project ----> Options 设置Form2为available forms;
Unit1中:
use Unit2;

procedure TForm1.Button1Click(....)
var
myForm : TForm2;
begin
myForm := TForm2.Create(nil);
myForm.Show;
end;
speedman2000 2004-09-07
  • 打赏
  • 举报
回复
去掉你的程序中的FORM2的自动创建
在FORM1中使用FORM2。
var a:TForm2;
begin
a:=TForm2.Create(self);
a.show;
end;

var b:TForm2;
begin
b:=TForm2.Create(self);
b.show;
end;

在form2的onclose事件中添家action:=cafree;
wilowind 2004-09-07
  • 打赏
  • 举报
回复
当我改变了最后创建的子窗口后,而前面所创建的窗口也跟着变.....

怎么改变,什么跟着变?
playboy1012 2004-09-07
  • 打赏
  • 举报
回复
呵呵 我好像不会哦!但先帮你顶一下,以免被淹了!! 嘻嘻

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧