我有一个带有 aprox 的表单,上面有 200 个视觉组件,分配了很多事件,我现在需要将其更改为一个框架。我没有足够的时间复制所有组件,重新排列所有视觉组件并重新分配所有事件,对齐等。所以,我复制了 pas 和 dfm,打开并开始在文本编辑器中编辑它们(将 TForm 更改为 Tframe 等),但似乎这不' t 得到预期的结果。
有没有人知道如何解决这个问题?
观察项目中 Form 和 Frame 的区别。
首先是 project.dpr 源:
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.
差异:
dfm 文件:
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
和
object Frame3: TFrame3
Left = 0
Top = 0
Width = 320
Height = 240
TabOrder = 0
end
框架没有这些属性:
旁注:框架没有这些事件:
Frame 没有像这样的全局变量:
var
Form1: TForm1;
一个 Frame 来自TFrame
,而一个 form 来自TForm
。
注意:使用 Frame/Form 继承,您的步骤会变得更长一些。
——杰伦
TForm 将具有 TFrame 没有的其他属性和事件。您需要手动删除这些属性和事件以更改为窗体到框架。
请务必遵循这些步骤;
TForm1 = class(TForm)
为TForm1 = class(TFrame)
.View as Text
选项。View as Form
选项。IDE expert
如果没有任何开箱即用的工作(专有/开源)并且您完成了,请花时间一劳永逸地进行批量操作。