请问如何将一个窗口form在另一个form 中显示???(50分)

  • 主题发起人 主题发起人 pie
  • 开始时间 开始时间
P

pie

Unregistered / Unconfirmed
GUEST, unregistred user!
在《Delphi 4 编程技术内幕》(机械工业出版社Charlie Calvert 著)一书中:P404例子 Music程序
我的源程序盘丢失: 无法看懂!! 望 各位帮助!!!!!!!!
方法是:
unit UnitChild;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TFormChild = class(TForm)
private
{ Private declarations }
procedure loaded;
override;
procedure CreateParams(var Params: TCreateParams);
override;
public
{ Public declarations }
end;

var
FormChild: TFormChild;
implementation
{$R *.DFM}
procedure TFormChild.loaded;
begin
inherited loaded;
Visible:= false;
Position:=poDefault;
BorderIcons :=[];
BorderStyle :=bsNone;
HandleNeeded;
SetBounds(0,0,Width,Height);
end;

procedure TFormChild.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
// Params.WndParent:=(Owner as TForm).Handle;
Params.Style:=WS_CHILD or WS_CLIPSIBLINGS;
Params.X:=0;
Params.Y:=0;
end;
end.

然后建立Form1 = class(TFormChild)
在 FormMain中:
procedure TFormMian.FormCreate(Sender: TObject);
begin
Form1 := TFormReturnBook.Create (Self);
Forms1.show;
end;

然后在Botton.Click中:
Form1.bringToFront;
// A
Caption:='????????'+Form1.Caption;
// B
但是!!!!!!!!!!!:
A 语句执行不成功
B 语句执行成功!
如何解决!!!

 
我真是要吐血!!!
也许得重新刻一张了!!!!!!有谁能帮忙??
 
A 语句执行不成功
什么意思?
 
3.14换名了???
 
你可以将子form的parent=ParentForm,就可以了
 
wrench:我指不能显示出form上的内容!
 
我的可以成功,如果你需要,我发给你
 
我有源盘,要不要例子?
 
你应该去SAMS公司的Ftp站点去看看,通常配书的源码有下载。
 
我想问问问题的关键是什么????怎么没人能解决???
 
A语句怎么错误?
你的全部代码copy到我的机上执行,结果很正常。
// Params.WndParent:=(Owner as TForm).Handle;
这行很关键,为什么把它去掉了?
 
是否有了那行程序启动时报错误?
如果是那样,在 project/options 里面把 form1 从 auto-create forms 去掉就可以了
 
PIpi! 非常感谢!!!遵照您的帮助解决了!!!正如您说的一样!!!!!!
 
后退
顶部