====== Хранить packed record в TForm.Tag ====== Ещё один хороший пример работы с указателями. Создать объект packed record и хранить его вместе с формой. ... TSolidData = packed record name: string[100]; // помним что Pointer должен быть фиксированного размера. value: Integer; end; PSolidData = ^TSolidData; var fmMain: TfmMain; implementation procedure TfmMain.FormCreate(Sender: TObject); var PS: PSolidData; begin PS := AllocMem(SizeOf(TSolidData)); Tag := Integer(PS); PS.name := 'EugeneX'; PS.value := 1; end; procedure TfmMain.Button1Click(Sender: TObject); begin Caption := Format('%s, %d', [ PSolidData(Tag).name, PSolidData(Tag).value ]); PSolidData(Tag).value := PSolidData(Tag).value + 1; end; procedure TfmMain.FormDestroy(Sender: TObject); begin FreeMemory(PSolidData(Tag)); end; end.