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 상속을 받는데...
위에건 어떤 의미가 있는지, 위와같이 했을경우 어떤 결과가 나오는지 궁금해서 입니다.
초보는 힘들어... ^^;;
뭐 결과는 같습니다. 하는일이 똑같으니... 단지 클래스 형만 틀릴뿐이죠...
이런식으로 하는 이유는 의미있는 이름을 부여해서 보다 명확하게 코드를 파악할 수 있도록 하는거죠...
대표적인 예가 델파이의 예외클래스들입니다.
EListError = class(Exception);
EBitsError = class(Exception);
EStringListError = class(Exception);
EComponentError = class(Exception);
그냥 Exception클래스를 써도 똑같지만... 위에서 보는것처럼 나름대로 의미있는 이름을 부여하여 사용하면
발생되는 상황이 훨씬 더 명확해지죠...
EListError <== 이름만 봐도 List에서 발생되는 에러에 관련된 예외라는것을 알 수 있죠...
^^ 항상 즐코하세요...