Показать сообщение отдельно
  #1  
Старый 14.03.2013, 08:18
Аватар для BBBCat
BBBCat BBBCat вне форума
Новичок
 
Регистрация: 10.03.2013
Сообщения: 73
Репутация: 10
По умолчанию Проблема с SetString

Никак не могу врубиться, а почему если оставить 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.
Ответить с цитированием