unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TEdit = class(StdCtrls.TEdit)
private
fDataTag : pointer;
procedure SetDataTag(value : pointer);
public
destructor Destroy; override;
property DataTag : pointer read fDataTag write SetDataTag default nil;
end;
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TEdit }
destructor TEdit.Destroy;
begin
SetDataTag(Nil);
inherited Destroy;
end;
procedure TEdit.SetDataTag(value: pointer);
begin
if fDataTag <> Value then
begin
if fDataTag <> nil then
Dispose(fDataTag);
fDataTag := Value;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var ptr : ^Single;
begin
New(ptr);
ptr^ := Pi;
Edit1.DataTag := ptr;
New(ptr);
ptr^ := 180/Pi;
Edit2.DataTag := ptr;
Edit1.Text := Format('%.4f',[ Single(Edit1.DataTag^) ]);
Edit2.Text := Format('%.4f',[ Single(Edit2.DataTag^) ]);
end;
end.