Hallo,
kann mir jemand folgendes Phänomen erklären?
Code:
unit Unit2;
interface
uses
SysUtils, Classes, Dialogs;
type
TXY = class(TObject)
public
constructor Create;
end;
implementation
constructor TXY.Create;
var
f : integer;
b : PChar;
begin
inherited Create;
f := FileOpen('D:\x.txt',fmOpenReadWrite);
FileSeek(f,0,soFromBeginning);
b := StrAlloc(3);
FileRead(f,b^,3);
ShowMessage(StrPas(b)+'!');
FileClose(f);
end;
end.
Der Inhalt von 'x.txt' ist '123'.
Wenn ich eine Instanz dieser Klasse aus meinem Programm heraus erstelle, sollte doch eigentlich
eine MessageBox mit dem Inhalt '123!' erscheinen.
Wenn ich die Instanz bei einem ButtonClick erstelle passiert dies auch.
Wenn ich es aber in der FormCreate mache, erhalte ich '123S____'.
Ich verstehe nicht, wo der Unterschied ist.
Der Sinn des Programmes spielt dabei keine Rolle. Ist nur eine Prinzipsache, die ich nicht verstehe.
Wäre nett,wenn mir das jemand erklären könnte.