我有一个带aprox的表单,上面有200个可视组件,分配了很多事件,我现在需要将它更改为一个框架。我没有足够的时间复制所有组件,重新安排所有可视组件并重新分配所有事件,对齐等等。所以,我复制了pas和dfm,打开并开始在文本编辑器中编辑它们(将TForm更改为Tframe等)但似乎这没有得到预期的结果。
有没有人知道如何解决这个问题?
答案 0 :(得分:9)
观察项目中表格和框架的差异。
首先是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没有这些属性:
旁注:框架没有这些事件:
Frame没有像这样的全局变量:
var
Form1: TForm1;
一个框架来自TFrame
,而一个框架来自TForm
。
注意:使用Frame / Form继承,您的步骤会变得更长。
- 的Jeroen
答案 1 :(得分:2)
TForm将拥有TFrame不具备的其他属性和事件。您需要手动删除这些属性和事件,以便将其更改为框架。
请务必遵循以下步骤;
TForm1 = class(TForm)
更改为TForm1 = class(TFrame)
。View as Text
选项。View as Form
选项。答案 2 :(得分:0)
如果没有任何开箱即用(专有/开源)并且你已经完成了,那么花点时间一次性开发IDE expert
进行批量操作。