123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- {
- This file is part of the Free Pascal run time library.
- Copyright (c) 2011 by Jonas Maebe
- member of the Free Pascal development team.
- This file implements the helper routines for TObject
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- **********************************************************************
- }
- type
- TObject = class(JLObject)
- strict private
- DestructorCalled: Boolean;
- public
- procedure Free;
- destructor Destroy; virtual;
- procedure finalize; override;
- end;
- TClass = class of TObject;
- TJClass = class of jlobject;
- const
- vtInteger = 0;
- vtBoolean = 1;
- vtChar = 2;
- {$ifndef FPUNONE}
- vtExtended = 3;
- {$endif}
- vtString = 4;
- vtPointer = 5;
- vtPChar = 6;
- vtObject = 7;
- vtClass = 8;
- vtWideChar = 9;
- vtPWideChar = 10;
- vtAnsiString = 11;
- vtCurrency = 12;
- vtVariant = 13;
- vtInterface = 14;
- vtWideString = 15;
- vtInt64 = 16;
- vtQWord = 17;
- vtUnicodeString = 18;
- type
- TVarRec = record
- VType: sizeint;
- Value: JLObject;
- procedure init(l: longint);
- procedure init(b: boolean);
- procedure init(c: ansichar);
- procedure init(w: widechar);
- procedure init(d: extended);
- procedure init(const s: shortstring);
- // pointer = object -> use constref to get different signature
- procedure init(constref p: pointer);
- procedure init(p: pchar);
- procedure init(p: JLObject);
- procedure init(c: TJClass);
- procedure init(p: pwidechar);
- procedure init(const a: ansistring);
- // currency = int64 -> use constref to get different signature
- procedure init(constref c: currency);
- // procedure init(const v: variant);
- // interface = object
- procedure init(const w: widestring);
- procedure init(i: int64);
- // unicodestring = widestring
- // qword = int64 -> extra parameter to solve signature problem
- procedure init(q: qword; unsigned: boolean = true);
- function VInteger: longint;
- function VBoolean: boolean;
- function VChar: ansichar;
- function VWideChar: widechar;
- function VExtended: PExtended;
- function VDouble: double;
- function VString: PShortString;
- function VPointer: pointer;
- function VPChar: PChar;
- function VObject: JLObject;
- function VClass: TJClass;
- function VPWideChar: PWideChar;
- function VAnsiString: Pointer;
- function VCurrency: PCurrency;
- // function VVariant: PVariant;
- function VInterface: JLObject;
- function VWideString: Pointer;
- function VInt64: PInt64;
- function VUnicodeString: Pointer;
- function VQWord: PQWord;
- end;
|