谁能解释这段代码为什么不行(代码完整,直接可粘贴到Delphi中测试,花不了高手太多时间的)

MakeEverydayProgres 2003-10-20 06:46:57
请给出原因和解答

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
Tfrm = class(TForm)
private
FParentRect: TRect;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property ParentRect: TRect read FParentRect write FParentRect;
end;

TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
Ffrm: Tfrm;

implementation

{$R *.dfm}

constructor Tfrm.Create(AOwner: TComponent);
begin
inherited;
end;

destructor Tfrm.Destroy;
begin
inherited;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if not Assigned(Ffrm) then
begin
Ffrm := Tfrm.Create(self);
Ffrm.Parent := self;
end;
Ffrm.Show;
end;

end.
...全文
41 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
966126 2003-10-20
  • 打赏
  • 举报
回复
同意,而且这样做也没有任何意义

还有,即使是试验也不能不考虑逻辑上的问题,一个连逻辑上都无法通过的想法如何能够实现
大地精灵 2003-10-20
  • 打赏
  • 举报
回复
你既然是测试例子,那这样就可以,你自己想想
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

Tfrm = class(TForm1)
private
FParentRect: TRect;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property ParentRect: TRect read FParentRect write FParentRect;
end;


var
Form1: TForm1;

implementation

{$R *.dfm}

constructor Tfrm.Create(AOwner: TComponent);
begin
inherited;
end;

destructor Tfrm.Destroy;
begin
inherited;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
Ffrm: Tfrm;
begin
Ffrm := Tfrm.Create(nil);
Ffrm.Left := 100;
Ffrm.Top := 100;
Ffrm.Parent := self;
Ffrm.Show;
end;

end.
大地精灵 2003-10-20
  • 打赏
  • 举报
回复
因为你的窗体文件没有dfm文件,所以就不行啦,呵呵
hthunter 2003-10-20
  • 打赏
  • 举报
回复
怎么在同一个单元里面定义了两个窗口类,没听说过可以这样做的
你把Tfrm和TForm1的定义分别放在单独的一个单元里面,然后在TForm1所在的Unit里面uses Tfrm所在的Unit。
aiirii 2003-10-20
  • 打赏
  • 举报
回复
maozefa(之源) 說得對!
阿发伯 2003-10-20
  • 打赏
  • 举报
回复
Delphi的窗体控件是和编译器结合在一起的,必须要有资源文件,即.dfm文件,你的Unit1.dfm文件中只有TForm1的资源,所以出错,而且不能把2个窗体控件定义在1个单元文件中,必须分开定义,然后调用。
  • 打赏
  • 举报
回复

你不要考虑逻辑上的功能,这只是一个测试程序
hmily1688 2003-10-20
  • 打赏
  • 举报
回复
你一个单元中放两个窗体,没有这么用过,帮你顶
btk308 2003-10-20
  • 打赏
  • 举报
回复
程序有點問題.
  • 打赏
  • 举报
回复
错误提示:
Resource Tfrm not found.
不需要开发,0行代码写接口服务,sql编程,只要会sql就会写接口服务,让后端变得更简单,简单4步短短5分钟,立马上手,java小白也可以写接口。订阅课程后可以免费获取发布版进行使用和测试。 0行代码写服务的需要来源案例一,当时有个项目,有400张表,都是管理系统,单表维护的内容较多,当时的项目团队是13人,前后端都写,那时候还没有springboot,用的是ssm,mybatis刚出来,有了替代hibernate的趋势,ifelse写了一堆又一堆,实体类也是,当时的后端分了7层☒,天天加班干这活,复制粘贴,很容易犯错,实体类多人引用修改,真的是废了很大的劲……案例二,也是一个比较大的项目,两千万多万那种,当时为了拿项目,需要快速实现原型给客户看,要求比较高,虽说是原型但是数据全部需要实时,这时候就需要大量编写数据接口,同样编写接口这件事难度倒是不大,但是量大,编写过程手写很容易出错……案例三,以前管理的团队主要做移动端开发,里面的项目会涉及到推送,管理系统,数据采集与同步,总之很多内容,需要前后端通吃,我不仅需要出方案,设计原型,设计数据库,出报价,沟通需求,还要写后端框架,数据接口与数据采集,开发前端(web端),移动端,管理所有项目,但是那时候招的人只会写移动端,实在是忙不过来,我就想能不能有个框架让不会写java的人能写接口,因为写移动端sqlite总是会用的,也就是说写sql不是难点……基于以上三点需求的积累,我利用业余时间写了一个后端框架,完成了这样的需求,刚开始是需要写三行代码完成一个接口,经过后面优化,现在不写代码也可以实现……  本框架涉及的知识点比较多,目前提供最基础版供大家学习和使用,后期逐步推出框架具体的教程和功能内容,下期我们讲如何在实际项目通过部署版如何完成所需要的接口编写,欢迎大家订阅。

5,388

社区成员

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

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