Seit Delphi 7 wurden die Fähigkeite von Record's erweitert zu mehr klassenähnlichen Strukturen mit Properties, Methoden und verschachtelten Typen. Zum Beispiel:
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;
Für den C++Builder konvertiert Delphi2Cpp 2.x dies zu:
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); }; }
Für andere Compiler als dem C++Builder wird der Code folgendermaßen übersetzt:
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); };
}
english
Letzte Neuigkeiten |
28.10.24
Delphi2Cpp 2.5: in Groß- und Kleinschreibung mit Deklarationen übereinstimmende Symbolnamen [more...] |
08/26/24
Delphi2Cpp 2.4: Aktualisiert auf RAD Studio 12.1 Athen [more...] |
[aus Fallstudie...] "Eine Meisterleistung -- Delphi2Cpp hat alle meine Erwartungen weit übertroffen." Tony Hürlimann
virtual-optima
29.08.2011
|
"Ich muss mich nochmal für deinen Einsatz und die Qualität deiner Arbeit bedanken, das ist absolut überdurchschnittlich ..." Gerald Ebner
Significant Software
22.01.2010
|
Diese Homepage ist aus einfachen Texten mit [Minimal Website ]generiert.
|
Minimal Website ist mit Hilfe des TextTransformers hergestellt.
|
Der TextTransformer ist gemacht mit dem Borland
CBuilder
|