Q&A

  • 그냥 또 궁금한게... ^^;;;
unit Form1  <- 메인 폼입니다.

interface

uses
....

type
  TMyButton = TButton; <- 요기를 주목 해 주세요.

  TForm = Class(TForm)
....




그리고 서브 폼에서

unit Form2

interface

uses
...

type
...

implementation

uses Form1; <- 메인폼을 여기에 올리고...

{$R *.DFM}

var
  Test1: TMyButton; <- 요기도 주목

procedure TForm2.Create(Sender: TObject);
begin
  Test1 := TMyButton.Create(Self);
end;



뭐 이런 식으로 선언해서 사용하면요...


  Test1 := TMyButton.Create(Self);

이렇게 선언한고 하고

  Test1 := TButton.Create(Self);

이렇게 선언한게 같은 결과를 가져오는 건가요?

제가 알고싶은건

TMyButton = class(TButton);

뭐 이런식으로 해서 class 상속을 받는데...

위에건 어떤 의미가 있는지, 위와같이 했을경우 어떤 결과가 나오는지 궁금해서 입니다.

초보는 힘들어... ^^;;
1  COMMENTS
  • Profile
    최용일 2005.01.27 03:26
    안녕하세요. 최용일입니다.

    뭐 결과는 같습니다. 하는일이 똑같으니... 단지 클래스 형만 틀릴뿐이죠...

    이런식으로 하는 이유는 의미있는 이름을 부여해서 보다 명확하게 코드를 파악할 수 있도록 하는거죠...

    대표적인 예가 델파이의 예외클래스들입니다.

      EListError = class(Exception);
      EBitsError = class(Exception);
      EStringListError = class(Exception);
      EComponentError = class(Exception);

    그냥 Exception클래스를 써도 똑같지만... 위에서 보는것처럼 나름대로 의미있는 이름을 부여하여 사용하면
    발생되는 상황이 훨씬 더 명확해지죠...

    EListError <== 이름만 봐도 List에서 발생되는 에러에 관련된 예외라는것을 알 수 있죠...

    ^^ 항상 즐코하세요...