interface 부분에서 아래의 클래스를 정의하고
type
TTestClass=class
public
procedure TestProc;
end;
implementation 부분에서 TestProc은 이렇게 만든다.
{ TTestClass }
procedure TTestClass.TestProc;
begin
ShowMessage('이게 보이나요?');
end;
뭐 정의는 이렇게 해두고, 실제로 사용할 때 재미있는 부분이 있다.
폼에 버튼을 하나 올리고, 이벤트 핸들러를 아래와 같이 작성한다.
procedure TForm1.Button1Click(Sender: TObject);
var X: TTestClass;
begin
X.TestProc;
end;
이렇게 하면 에러가 안난다!
Create 도 없는데!
우리는 생성하지 않은 객체를 참조할 때 에러를 반드시 만나곤 했다.
여기서 재미있는 점은 클래스의 Data 참조만 하지 않는다면 에러가 나지 않는다는 것이다.
클래스 메소드로 처리되는 것이다. c의 static method 처럼.
유추해 볼 수 있는 것은 클래스의 경우 create 가 없어도 함수부분은 메모리에 로드가 되고, 데이터부분만 동적으로 생성되는 것 같다는 이야기.
하지만 Warning 은 난다... 초기화가 안되어 있다고.
한번 해볼만한 재미는 있는 것 같다.
내부 데이터 없이 함수만 모아놓고 쭈룩쭈룩 쓰는 재미가..-_-;
하지만 가상함수의 경우엔 에러가 난다...
'Delphi' 카테고리의 다른 글
[Delphi] TStringList 사용에 관한 두어가지 (0) | 2009.04.18 |
---|---|
[Delphi] 파일을 바이너리 Hex 로 읽어들이기 (0) | 2009.04.18 |
[Delphi] Data Types - String (0) | 2009.04.18 |
[Delphi] 주민등록번호, 신용카드번호 유효성 검사 (0) | 2009.04.18 |
[Delphi] 어떤 클래스가 어떤 프로퍼티를 가지고 있는지 검사 (0) | 2009.04.18 |