works:programmer:delphi:pointer-form-tag
Хранить 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.
works/programmer/delphi/pointer-form-tag.txt · Последнее изменение: 2022/10/09 02:12 — 127.0.0.1