Никак не могу врубиться, а почему если оставить
FillChar(P^, SizeOf(TData), 0) закомментированным, то выдаёт любимый Access Violation?
Код:
unit TestDataUnit;
interface
uses Forms;
type
TForm1 = class(TForm)
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; // TForm1 = class(TForm)
TData = packed record
FText: String;
end; // TData = packed record
var
Form1: TForm1;
P: Pointer;
implementation
{$R *.dfm}
procedure TForm1.FormShow(Sender: TObject);
begin
P := GetMemory(SizeOf(TData)) ;
// FillChar(P^, SizeOf(TData), 0);
with TData(P^) do
SetString(FText, PChar(nil), 30);
end; // procedure TForm1.FormShow(Sender: TObject)
end.