isave:integer=0;
var
p:^integer;
obj:tsingleton;
begin
p:=@isave;
obj:=nil;
case value of
0:
begin
if (isave<>0) then
begin
result:=isave;
obj:=pointer(isave);
end;
if not assigned(obj) then
begin
obj:=tsingleton.create;
p^:=integer(obj);
result:=isave;
end
end;
1:
begin
p^:=0;
end;
end;
end;
procedure tsingleton.setusername(const value: string);
begin
fusername := value;
end;
procedure tform1.button3click(sender: tobject);
var
singleton:tsingleton;
begin
singleton:=tsingleton.getinstance;
singleton.username:=edit1.text;
end;
procedure tform1.button4click(sender: tobject);
var
singleton:tsingleton;
begin
singleton:=tsingleton.getinstance;
edit2.text:=singleton.username;
end;
procedure tform1.button5click(sender: tobject);
var
singleton:tsingleton;
begin
singleton:=tsingleton.getinstance;
singleton.free;