А можно использовать не структуру, а класс без методов, тогда будет меньше геморроя с выделением и освобождением памяти. Типа так:
| Код | unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls;
type TForm1 = class(TForm) TV: TTreeView; Button1: TButton; Label1: TLabel; Label2: TLabel; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
TClass=class(TObject) public F1:Integer; F2:Integer; constructor Create; end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin TV.Items[0].Data:=TClass.Create;//всего одна строка end;
procedure TForm1.Button2Click(Sender: TObject); var cl:TClass; begin cl:=TClass(TV.Items[0].Data); //и ^ не нужен. Label1.Caption:=IntToStr(cl.F1); Label2.Caption:=IntToStr(cl.F2); end;
{ TClass }
constructor TClass.Create; begin F1:=1; F2:=2; end;
end.
|
|