Dieser Artikel kann veraltet sein: Aktuelle Dokumentation online (Englisch)

Initialisierung von array's


In Delphi können array's sehr einfach initialisiert werden. Die Initialisierung eines array's aus TStyleRecord's:

TStyleRecord = record
  Name    : string;
  Style   : TFontStyles;
end;

könnte z.B. folgendermaßen aussehen:


DefaultStyles : TStylesArray = (
 (Name : 'tnone';    Style :  []),
 (Name : 'tstring';  Style :  []),
 (Name : 'tcomment'; Style :  [fsItalic])
);

In den früheren Versionen von Delphi2Cpp wurde dies übersetzt als:


TStylesArray DefaultStyles = { 
     { "tnone" /*Name*/, arrays__0 /*Style*/ },
     { "tstring" /*Name*/, arrays__1 /*Style*/ },
     { "tcomment" /*Name*/, arrays__2 /*Style*/ } 
    };

Das Problem hierbei ist, dass Initialisierungen in dieser Form in C++ nur möglich sind, wenn es sich bei den Elementen um Grundtypen von C handelt. Eine Initialisierung von Elementen des Typs TFontStyle ist so nicht zulässig.
Ab Version 1.2.4 generiert Delphi2Cpp deshalb Initialisierungsfunktionen, die innerhalb der Initialisierungsroutine der entsprechenden Unit (s.o.) aufgerufen werden.


void DefaultStylesInit( )
{
  DefaultStyles[0].Name = "tnone";
  DefaultStyles[0].Style = arrays__0;
  DefaultStyles[1].Name = "tstring";
  DefaultStyles[1].Style = arrays__1;
  DefaultStyles[2].Name = "tcomment";
  DefaultStyles[2].Style = arrays__2;
}


   english english

 
Letzte Neuigkeiten
30.01.12
Delphi2Cpp 1.6.3 Bessere KonstruKtion von Objekten [mehr...]

05.01.12
Delphi2Cpp 1.6.2 Resource-Strings und mehr [mehr...]



[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




Diese Homepage ist aus einfachen Texten mit [Minimal Website ]generiert.

Minimal Website
Minimal Website ist mit Hilfe des TextTransformers hergestellt.

TextTransformer
Der TextTransformer ist gemacht mit dem Borland CBuilder

  borland