formunit.pas

来自「通常情况下, 用Delphi开发的程序, dfm是作为资源嵌入可执行文件的, 这」· PAS 代码 · 共 64 行

PAS
64
字号
unit FormUnit;

interface

uses
  Windows, SysUtils, Classes, Controls, Forms, Dialogs, StdCtrls;

type
  TDemoForm = class(TForm)
    ToDefBtn: TButton;
    PathEdit: TEdit;
    constructor Create(AOwner: TComponent); override;
    procedure FormCreate(Sender: TObject);
    procedure ToDefBtnClick(Sender: TObject);
  end;

var
  DemoForm: TDemoForm;

implementation

//{$R *.dfm}

uses InitUnit, DataUnit, ConvUnit;

constructor TDemoForm.Create(AOwner: TComponent);
begin
  GlobalNameSpace.BeginWrite;
  try
    CreateNew(AOwner);
    if (ClassType <> TForm) and not (csDesigning in ComponentState) then
    begin
      Include(FFormState, fsCreating);
      try
        if (Mz_InitInheritedComponent(Self, TForm, DemoDfm) = False) then // **
          ShowMessage('注意, 初始化界面失败, 请检查DataUnit.DfmData, :~)');
      finally
        Exclude(FFormState, fsCreating);
      end;
      if OldCreateOrder then DoCreate;
    end;
  finally
    GlobalNameSpace.EndWrite;
  end;
end;

procedure TDemoForm.FormCreate(Sender: TObject);
begin
  if (FindResource(HInstance, 'TDemoForm', RT_RCDATA) <> 0) then
    ShowMessage('注意, 发现dfm资源, 建议注释"{$R *.dfm}"后重新编译!!');

  PathEdit.Text := ExtractFilePath(Application.ExeName) + 'FormUnit.dfm';
end;

procedure TDemoForm.ToDefBtnClick(Sender: TObject);
begin
  if DfmFileToDefFile(PathEdit.Text, PathEdit.Text + '.txt') then
    ShowMessage('转换成功, :-)')
  else
    ShowMessage('转换失败, :-(');
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?