Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
28. Nov 2009
Sooo, mußte zwar noch einen neuen "virtuellen" Typen einführen (rtSplit),
da z.B. TFileTime als UInt64 (rtWord64) angesehn werden kann, aber intern aus 2 LongWords besteht,
welches ja beim Align beachtet werden muß.
Als kann man nun eine nachfolgende Typendeplaration zwar als "großen" Typen speichern, aber für's Align aufsplitten.
Anscheinend scheint nun endlich die Behandlung "einacher"...
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
26. Nov 2009
Aktuell sieht es so aus:
TXMLSerializeRDataType wären alle unterstützten Typen und daraus müßte man eigentlich alles Andere erstellen können.
Procedure TXMLSerializeRecordInfo.CalcOffsets; wäre die entscheidende Baustelle für die Berechnung.
Sitze grad an den ShortStrings und danach werd ich mal 'nen Test machen, ob das Aktuelle so überhaupt läuft und dann müßten irgendwie die Records und...
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
25. Nov 2009
Daß es nicht so leicht ist, wie anfangs gelaubt, ist mir inzwischen klar,
aber jetzt steckt da schon soviel Arbeit drinnen, daß ich keine Lust hab aufzugeben
und das alles wieder rauszulöschen, oder Dergleichen. :?
Hab nun auch angefangen die Berechnungen aus der eigentlichen Serialisierungen in TXMLSerializeRecordInfo zu verschieben, so daß man dieses dann auch mal für andere Dinge nutzen...
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
24. Nov 2009
Also zumindestens weiß ich jetzt, daß ich die untergeordneten Arrays/Records zuerst berechnen muß
und dann scheint es so, als wenn je nach Aufbau dieses untergeordnete Array anders im übergeordneten plaziert wird.
{$align 4}
1: record
a: Byte;
{3x Byte align}
b: LongWord;
end;
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
24. Nov 2009
Bei einer Typendefinition geht der Compiler erstmal davon aus, daß der Anfang des Records ausgerichtet ist und alles andere wird dann nach gewissen Regeln und Anhand von {$ALIGN *} und {$A*} ausgerichtet ... tja und genau diese Regeln bräuchte ich.
Hab jetzt erstmal 'nen ganzen Browser voller Tabs und versuch die ganzen Informationen irgendwie zusammenzubekommen, bzw. mir daraus 'nen Satz...
Forum: Sonstige Fragen zu Delphi
Delphi
by himitsu,
23. Nov 2009
Ich dreh bald noch durch ... wie um Himmels Willen macht Delphi das nur? :wall:
Also wie entscheidet Delphi wann es wie ausrichtet?
Hier mal ein kleiner Test:
TY und TZ sind gleich groß, aber dennnoch ist es anders.
Type
{$ALIGN 1}
TYb1 = Record x: byte; y: integer; End;
{$ALIGN 4}