생성자 Create의 인자는 AOwner : TComponent 입니다...
화면에 보이는 컨트롤의 Parent 속성을 설정하려면...
그 조상은 반드시 TWinControl에서 상속받은 놈이어야 하는데....
보다시피...Create 생성자의 인자는 TComponent 타입니다...
이것을 Type Casting해야 하는데...
2가지로 해 봤습니다....
1. Parent := AOwner as TWinControl;
2. Parent := TWinControl(AOwner);
둘 다 아무 메시지 없이 잘 되더군요...
이 둘 사이의 차이점이 뭡니까? 도움말을 읽어 봐도 와닿지를 않네요...^^
The as operator performs checked typecasts
즉 형이 변환가능한지 점검하고 casting합니다.
따라서 변환하고자 하는 class가 실제 그 클래스를 상속 받은
경우하면 캐스팅이 되지만 아니면 에러가 발생합니다.
Parent := TWinControl(AOwner);
는 강제 캐스팅입니다. 따라서 실제 AOwner가 TWincontrol의
클래스를 상속 받은 것이 아니라도 무조건 캐스팅합니다.
C++빌더 책에 형변환부분을 보시면 잘 설명 되어있습니다.
dynamic_cast와 뭐 하나더 인데 기억이 안나는군요.