쓰레드에서 생성자 오버로드설정시 에러가 나네요!
안되는 건가요 ? 답변 부탁드립니다... 꾸벅 -__-; (그리고 폼(Form1)에서 생성자 소멸자 따로 만들수 잇나여?
type
TThread1 = class(TThread)
private
procedure SetName;
protected
procedure Execute; override;
public
ClientConnected : Boolean;
nData : Integer;
constructor Create(AOwner: TComponent); override; // 쓰레드에서는 override
destructor Destroy; override;
end;
// 에러메시지....
[Error] Unit1_Thread_Socket.pas(27): Cannot override a static method
[Fatal Error] XCLIENT.dpr(8): Could not compile used unit 'pas\Unit1_Thread_Socket.pas'
TThread는 TObject에서 상속받았고, TObject.Create는 virtual method가 아닙니다. 당연히 override할려면 에러가나죠...
상속받은 Create는 Static method이니까 override를 빼세요...
폼(Form1)에서 생성자 소멸자를 따로 만들 수 있습니다.
TForm은 Create/Destory 둘다 virtual method이니까 override하셔야 맞습니다. 파라매터를 바꾸실려면 재정의 하셔야 하구요...
<!--CodeS-->
그냥 상속
TForm1 = class(...)
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
.....
end;
재정의
TForm1 = class(...)
constructor Create(const ID, Password: string); reintroduce; virtual;
destructor Destroy(ReturnValue: Integer); reintroduce; virtual;
end;
<!--CodeE-->
^^ 항상 즐코하세요...