Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
24. Mär 2014
Ups.
Grund: Früher war der Integer mal ein "dynamischer" Type, welcher mit dem System mitgewachsen ist.
In Windows 3.1 (16 Bit) war er 16 Bit groß, also 2 Byte.
In den 32-Bit-Windows-Versionen ist er 32 Bit groß, also 4 Byte.
Und theoretisch hätte er dann im 64-Bit-Bindows dann 64 Bit sien müssen, aber die große Firmen (wie Intel) entschieden sich den Einzufrieren und erfanden dafür einen...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
24. Mär 2014
Format('%p = %p', ) oder inkl. der Delphi-Signatur "$" Format('$%p = $%p', )
SysUtils.Format
Zur Konvertierung in einen "Integer", sollte man vielleicht besser z.B. IntPtr für's Casten verwenden.
z.B. bei Win64 würde eingefrorene/kaputtgemachte Integer ja einen Fehler bringen und die Hälfte abschneiden, aber hoffentlich merkt der Compiler den Fehler und stoppt mit einem Compilerfehler,...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
23. Mär 2014
Das ist auch fast so.
In der Variable versteckt sich ein Zeiger, welcher auf den "eigentlichen" Objektspeicher zeigt,
welchen man sich wie einen Record vorstellen kann, wo ein Zeiger auf seinen Typ und auf die eigenen Variablen Felder enthalten sind.
Nur daß man hier den Zeiger nicht manuell dereferenzieren muß, weil das automatisch geschieht.
Man kann das mit den Arrays vergleichen.
-...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
23. Mär 2014
Ja, ein "Objekt" (z.B. TComponent) hat Zugriff auf seinen Namen.
TComponent.Name
Es gibt aber keine Möglichkeit den Namen der Variable rauszubekommen,
abgesehn davon, daß der Name nicht in der EXE gespeichert ist, da er für das Programm vollkommen unrelevant ist.
Namen von Variablen sind quasi nur ein "Alias" für den Programmierer und später macht der Compiler daraus eine Speicheradresse....