bcb6hack.pas

来自「Delphi快速开发Web Server」· PAS 代码 · 共 60 行

PAS
60
字号
{ @exclude 
  BCB 6 Hack to enable editing of Delphi Forms. }
unit bcb6Hack;

{$INCLUDE rtcDefs.inc}

interface

procedure Register;

implementation

{$ifdef VER140}
uses
  Windows, SysUtils;

const
  PackageName = 'coreide60.bpl';
  AllowFormEditsName = '@Pasmgr@AllowFormEdits';

var
  PackageHandle: HModule = 0;
  AllowFormEdits: PBoolean = nil;

procedure EnableFormEditing;

  procedure ConnectToPackageExport(var ProcVar; const ProcName: PChar);
  begin
    @TProcedure(ProcVar) := GetProcAddress(PackageHandle, ProcName);
    if not Assigned(TProcedure(ProcVar)) then
      raise Exception.CreateFmt('Cannot locate exported symbol %s', [ProcName]);
  end;

begin
  if PackageHandle = 0 then
  begin
    PackageHandle := GetModuleHandle(PackageName);
    if PackageHandle = 0 then
      raise Exception.CreateFmt('Unable to locate %s package in memory', [PackageName]);
    ConnectToPackageExport(AllowFormEdits, AllowFormEditsName);
  end;
  AllowFormEdits^ := True;
end;

procedure Register;
begin
  EnableFormEditing
end;

{$else}

procedure Register;
  begin
  // This Hack is only for BCB 6.0 to enable editing of Delphi forms
  end;

{$endif}

end.

⌨️ 快捷键说明

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