Delphi TForm 转 TFrame

Delphi TForm 转 TFrame

    Delphi之前的代码,特别是复杂VCL窗口,转为Frame时,有时需要,从头做进,操作繁杂。

本人通过,找到快速将TForm轩为TFrame的办法:

    1、新建 一个目录,将窗口文本复制进该目录。

    2、为新建TFrame,取名对象名TMyFrame,Frame名MyFrame,单元名uMyFrame

    3、将文件单元名修改:uMyFrame.pas,将*.dfm文件,改名uMyFrame.dfm

    4、使用文本编辑软件,打开uMyFrame.pas文件:

(1)修改Pas中

type
  TIn8Frm = class(TForm)

type
  TMyFrame = class(TFrame)

(2)修改Pos中首行

unit uMyFrame;

(3)修改Pos中var

var
  In8Frame: TIn8Frame;

var
  MyFrame: TMyFrame;

  (4)Pas中,全部In8Frm为MyFrame

  (5)Uses 删除无关单元

  (6)将OnCreat和OnShow事件中代码合并,建立一个新的TMyFrqme下的过程

FrameShow(Sender: TObject)。

    如本单元定义的参数 OutList:TListSttring,在原OnCreate事件创建,就要在本过程中,创建

    OutList:=TStringList.Create; 

   (7)删除OnCreat、OnShow、FormClose、FormDestroy事件。

   (8)删除FormOnResize事件,将相应控件尺寸及位置参数,全部按最大化定义。

5、pas文件中,加入类似OnShow的事件

  (1)在private段加入事件

  private
    { Private declarations }
    procedure CMShowingChanged(var M: TMessage); message CM_SHOWINGCHANGED;
  public
    { Public declarations }
  end;

     (2)在implementation段,加入事件的响应实体代码 

implementation
uses uDataModuleClient, uMy_COM, uMy_COM1, uMy_COM2, uGrfFrm;
 
{$R *.dfm}
 
procedure TFrame_1.CMShowingChanged(var M: TMessage);
var i:Integer;
begin
  inherited;
 
  if Showing then
  begin
// 原Form OnCreat事件代码  
// 原Form OnShow事件代码  
    FrameShow(Self); 
  end
end;

  6、使用文本编辑软件,打开uMyFrame.dfm文件,全部代替操作

将In8Frm全部改为MyFrame

    最在工程项目中,加入MyFrame,再进一步细化即可。 

    由于批量转换,本人编写一个小程序,实现一健转换:

     小程序,可以实现TForm To TFrame修改,标准控件转换第三方控件,方便实用。有效提高工效。

注意:

      Pas文件中,控件的修改需要对控件的(控件对象名,控件实体名)二个名称的修改。

      Dfm文件中,控件的修改需要对控件的实体名进行修改。

     二者的修改名称上要保持一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值