Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi "variable" pointer -ist das möglich? (https://www.delphipraxis.net/44628-variable-pointer-ist-das-moeglich.html)

Robert_G 21. Apr 2005 21:09

Re: "variable" pointer -ist das möglich?
 
hmmm... :gruebel: Siehst du da auch nur ein Feld? Ich nicht. :P
Delphi-Quellcode:
  TObject = class
    constructor Create;
    procedure Free;
    class function InitInstance(Instance: Pointer): TObject;
    procedure CleanupInstance;
    function ClassType: TClass;
    class function ClassName: ShortString;
    class function ClassNameIs(const Name: string): Boolean;
    class function ClassParent: TClass;
    class function ClassInfo: Pointer;
    class function InstanceSize: Longint;
    class function InheritsFrom(AClass: TClass): Boolean;
    class function MethodAddress(const Name: ShortString): Pointer;
    class function MethodName(Address: Pointer): ShortString;
    function FieldAddress(const Name: ShortString): Pointer;
    function GetInterface(const IID: TGUID; out Obj): Boolean;
    class function GetInterfaceEntry(const IID: TGUID): PInterfaceEntry;
    class function GetInterfaceTable: PInterfaceTable;
    function SafeCallException(ExceptObject: TObject;
      ExceptAddr: Pointer): HResult; virtual;
    procedure AfterConstruction; virtual;
    procedure BeforeDestruction; virtual;
    procedure Dispatch(var Message); virtual;
    procedure DefaultHandler(var Message); virtual;
    class function NewInstance: TObject; virtual;
    procedure FreeInstance; virtual;
    destructor Destroy; virtual;
  end;
... und Methoden kosten dich doch nur den Zeiger auf die VMT.
Auch wenn es hier nicht um's Für & Wider geht: Das Argument ist einfach nicht richtig. ;)
Eine Klasseninstanz kostet dich genau 4Byte mehr als ein record, der die gleichen Informationen halten soll.
Das ist IMHO ein mehr als faires Geschäft. ;)

Das soll jetzt auch nicht ausarten... Ich wollte ihm nur den Tip geben, schließlich wollte er seinen Code aufräumen. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz