printers unit의 내용을 확인해 보시면 아시겠지만, 재미 있는 방법으로 Class를 사용합니다.
Function과 Iniinitialization,Finalization 를 적절히 이용합니다.
결론은 클래스를 리턴하는 함수를 만들고 그함수안에서 클래스가 생성되어 있지 않으면 생성하는 방식입니다.
Finalization은 만들어진 Class를 프로그램이 종료될때 해제 하는방식이고요.
꽤 오래전부터 델파이 Printer를 사용하셨던 분들은 잘 아시는 방법이라 하겠습니다.
구현방법 1
unit Class_Public;
interface
uses Dialogs;
type
TMyClass2 = class
public
procedure a;
end;
Function MyClass2 : TMyClass2;
var
FMyClass2 : TMyClass2;
implementation
Function MyClass2 : TMyClass2;
begin
if FMyClass2 = nil then
FMyClass2 := TMyClass2.Create;
Result := FMyClass2;
end;
{ TMyClass }
procedure TMyClass2.a;
begin
showmessage('aaa');
end;
initialization
FMyClass2 := TMyClass2.Create;
finalization
FMyClass2.Free;
end.
구현방법 2
unit Class_Public;
interface
uses Dialogs;
type
TMyClass2 = class
public
procedure a;
end;
Function MyClass2 : TMyClass2;
var
FMyClass2 : TMyClass2;
implementation
Function MyClass2 : TMyClass2;
begin
if FMyClass2 = nil then
FMyClass2 := TMyClass2.Create;
Result := FMyClass2;
end;
{ TMyClass }
procedure TMyClass2.a;
begin
showmessage('aaa');
end;
initialization
finalization
FMyClass2.Free;
end.
사용예제
MyClass2.A; 또는 fMyClass2.A;
너무 간단하여서 설명이 필요 없을것 같습니다.

최신 댓글