Class-like records |
Top Previous Next |
New features since Delphi 7 > Class-like records Since Delphi 7 the abilities of records have been expanded to more class-like structures with properties, methods and nested types. Here an example from
http://docwiki.embarcadero.com/RADStudio/Rio/en/Structured_Types_(Delphi)#Records_.28advanced.29
type TMyRecord = record type TInnerColorType = Integer; var Red: Integer; class var Blue: Integer; procedure printRed(); constructor Create(val: Integer); property RedProperty: TInnerColorType read Red write Red; class property BlueProp: TInnerColorType read Blue write Blue; end;
implementation
constructor TMyRecord.Create(val: Integer); begin Red := val; end;
procedure TMyRecord.printRed; begin Writeln('Red: ', Red); end;
Delphi2Cpp II converts these new features for C++Builder to:
struct TMyRecord { typedef int TInnerColorType; int Red; static int Blue; void __fastcall printRed(); __fastcall TMyRecord(int val); __property TInnerColorType RedProperty = { read = Red, write = Red }; /*static */__property TInnerColorType BlueProp = { read = Blue, write = Blue };
TMyRecord() {} };
---------------
int TMyRecord::Blue = 0;
__fastcall TMyRecord::TMyRecord(int val) : Red(val) { }
void __fastcall TMyRecord::printRed() { { Write(L"Red: "); WriteLn(Red); }; }
And for other compilers it becomes:
struct TMyRecord { typedef int TInnerColorType; int Red; static int Blue; void printRed(); TMyRecord(int val); /*property RedProperty : TInnerColorType read Red write Red;*/ TInnerColorType ReadPropertyRedProperty() { return Red;} void WritePropertyRedProperty(int Value){Red = Value;} /*property BlueProp : TInnerColorType read Blue write Blue;*/ static TInnerColorType ReadPropertyBlueProp() { return Blue;} static void WritePropertyBlueProp(int Value){Blue = Value;} void InitMembers(){Red = 0;}
TMyRecord() {InitMembers();} };
---------------------
int TMyRecord::Blue = 0;
TMyRecord::TMyRecord(int val) : Red(val) { }
void TMyRecord::printRed() { { Write(L"Red: "); WriteLn(Red); }; }
|
This page belongs to the DelphiXE2Cpp11 Documentation |
DelphiXE2Cpp11 home Content |