首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Delphi中批量实现form to frame -transformation?

如何在Delphi中批量实现form to frame -transformation?
EN

Stack Overflow用户
提问于 2011-01-27 17:43:01
回答 3查看 3.3K关注 0票数 5

我有一个带有aprox的表单,上面有200个可视组件,上面分配了很多事件,我现在需要将它更改为框架,我没有足够的时间复制所有组件,重新排列所有可视组件,重新分配所有事件,对齐等。所以,我复制了pas和dfm,打开并开始在文本编辑器中编辑它们(将TForm更改为Tframe等),但似乎没有得到预期的结果。

有谁有办法解决这个问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-27 19:08:20

观察项目中窗体和框架的区别。

首先是project.dpr源代码:

代码语言:javascript
复制
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit3 in 'Unit3.pas' {Frame3: TFrame};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

差异:

  1. Frame作为一个更详细的注释,告诉集成开发环境它应该使用哪个设计器
  2. 窗体可以自动创建

Dfm文件:

代码语言:javascript
复制
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 348
  ClientWidth = 643
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
end

代码语言:javascript
复制
object Frame3: TFrame3
  Left = 0
  Top = 0
  Width = 320
  Height = 240
  TabOrder = 0
end

Frame没有这些属性:

  • Caption
  • ClientHeight
  • ClientWidth
  • Color
  • Font.Charset
  • Font.Color
  • Font.Height
  • Font.Name
  • Font.Style
  • OldCreateOrder
  • PixelsPerInch
  • TextHeight

Sidenote: Frame没有这些事件:

  • OnCreate
  • OnDestroy

框架没有这样的全局变量:

代码语言:javascript
复制
var
  Form1: TForm1;

框架来自TFrame,而form来自TForm

注意:使用Frame/Form继承,您的步骤会变得有点长。

--jeroen

票数 9
EN

Stack Overflow用户

发布于 2011-01-27 18:02:44

TForm将具有TFrame没有的其他属性和事件。您需要手动删除这些属性和事件才能更改为form to frame。

一定要遵循这些步骤;

  1. 将基类类型更改为框架,即,将窗体更改为框架,右键单击并选择View as Text选项。
  2. 删除TFrame不具有的属性和事件,然后选择View as Form选项。
  3. 现在您应该能够以框架形式查看窗体。<代码>H212<代码>G213
票数 2
EN

Stack Overflow用户

发布于 2012-01-13 21:16:59

如果没有任何开箱即用的工作(专有的/开源的),那么花时间一次性开发一个执行批量操作的IDE expert,然后你就完成了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4814748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档