⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fmmain.pas

📁 多数代码可以直接在Delphi6和Delphi7环境下运行。部分涉及.NET技术内容的代码
💻 PAS
字号:
unit fmMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TFooObject = class(TObject)
  private
    aIntf : IInterface;
    A : array of Integer;
    iFileHandle: Integer;
  public
    Destructor Destroy;
    Constructor Create;
//    Destructor DTOR;
  end;

  PPTypeInfo = ^PTypeInfo;
  PTypeInfo = ^TTypeInfo;
  TTypeInfo = packed record
    Kind: Byte;
    Name: ShortString;
   {TypeData: TTypeData}
  end;

  TFieldInfo = packed record
    TypeInfo: PPTypeInfo;
    Offset: Cardinal;
  end;

  PFieldTable = ^TFieldTable;
  TFieldTable = packed record
    X: Word;
    Size: Cardinal;
    Count: Cardinal;
    Fields: array [0..0] of TFieldInfo;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  obj : TFooObject;
  InitTable: Pointer;
  FT: PFieldTable;
  aPtr : TClass;
begin
  obj := TFooObject.Create;
  try
    SetLength(obj.A, 1);
    obj.A[0] := 1;

    ShowMessage(obj.ClassName);
    ShowMessage(IntToStr(obj.A[0]));

//    aPtr := obj.ClassType;
//    InitTable := PPointer(Integer(aPtr^) + vmtInitTable)^;
//    FT := PFieldTable(Integer(InitTable) + Byte(PTypeInfo(InitTable).Name[0]));
//    ShowMessage(IntToStr(FT.Count));

  finally // wrap up
//    FreeAndNil(obj);
    obj.Free;
//    obj.DTOR;
  end;    // try/finally
end;

{ TFooObject }


destructor TFooObject.Destroy;
begin
  FileClose(iFileHandle);
  aIntf := nil;
  inherited;
end;


constructor TFooObject.Create;
begin
  iFileHandle := FileOpen('test.dat', fmCreate or fmOpenReadWrite);
end;

{
destructor TFooObject.DTOR;
begin
  FileClose(iFileHandle);
  inherited Destroy;
end;
}
end.

⌨️ 快捷键说明

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