Q&A

  • 쓰레드내에서 개체생성에 대해서...
한가지 질문이 있어서여...

다른게 아니라. 쓰레드를 이용해서 프로그래밍을 하고 있는데..

쓰레드내에 객체를 동적으로 생성할려고 하면.. 에러가 생기더라구여...

소스는.. 아래와 같습니다...

procedure TTestthr.Execute;

var

Memo1: TMemo ;

begin

{ Place thread code here }

Memo1 := TMemo.Create(self) ;

end;

이를 컴파일하면.. 다음과 같은 에러가 생깁니다..

==> [Error] Unit2.pas(37): Incompatible types: 'TComponent' and 'TTestthr'

왜 이런 에러가 생기는줄 모르겠네요...

쓰레드내에선 동적으로 객체생성이 안되는건지.. 되는걸루 알구 있는데...

상위클래스와 타입이 불일치하여 생기는거... 같은.. 왜 이런 에러가 생기는줄 잘 모르겠습니다.. 혹시. 아시는 분 있으면. 부탁드립니다....

그럼 추운데 고생이 많치만.. 부탁드립니다...

2  COMMENTS
  • Profile
    몰러 2000.12.21 17:23
    Memo1 := TMemo.Create(nil)로 해보세요



    심종현 wrote:

    > 한가지 질문이 있어서여...

    > 다른게 아니라. 쓰레드를 이용해서 프로그래밍을 하고 있는데..

    > 쓰레드내에 객체를 동적으로 생성할려고 하면.. 에러가 생기더라구여...

    > 소스는.. 아래와 같습니다...

    > procedure TTestthr.Execute;

    > var

    > Memo1: TMemo ;

    > begin

    > { Place thread code here }

    > Memo1 := TMemo.Create(self) ;

    > end;

    > 이를 컴파일하면.. 다음과 같은 에러가 생깁니다..

    > ==> [Error] Unit2.pas(37): Incompatible types: 'TComponent' and 'TTestthr'

    > 왜 이런 에러가 생기는줄 모르겠네요...

    > 쓰레드내에선 동적으로 객체생성이 안되는건지.. 되는걸루 알구 있는데...

    > 상위클래스와 타입이 불일치하여 생기는거... 같은.. 왜 이런 에러가 생기는줄 잘 모르겠습니다.. 혹시. 아시는 분 있으면. 부탁드립니다....

    > 그럼 추운데 고생이 많치만.. 부탁드립니다...

  • Profile
    이경문 2000.12.21 08:55
    Memo1 := TMemo.Create(Self)에서 Self는 무엇일까요?

    Memo의 Owner는 Form이나 Panel같은 클래스가 되어야지

    TTestthr 클래스가 Owner가 되지는 못하져.

    그리고 Thread안에서 VCL 컴포넌트를 생성하는 것은 안전하지 않습니다.

    Memo를 TTestthr내의 멤버로 선언하고

    Synchronize를 사용해서 생성하시기 바랍니다.



    심종현 wrote:

    > 한가지 질문이 있어서여...

    > 다른게 아니라. 쓰레드를 이용해서 프로그래밍을 하고 있는데..

    > 쓰레드내에 객체를 동적으로 생성할려고 하면.. 에러가 생기더라구여...

    > 소스는.. 아래와 같습니다...

    > procedure TTestthr.Execute;

    > var

    > Memo1: TMemo ;

    > begin

    > { Place thread code here }

    > Memo1 := TMemo.Create(self) ;

    > end;

    > 이를 컴파일하면.. 다음과 같은 에러가 생깁니다..

    > ==> [Error] Unit2.pas(37): Incompatible types: 'TComponent' and 'TTestthr'

    > 왜 이런 에러가 생기는줄 모르겠네요...

    > 쓰레드내에선 동적으로 객체생성이 안되는건지.. 되는걸루 알구 있는데...

    > 상위클래스와 타입이 불일치하여 생기는거... 같은.. 왜 이런 에러가 생기는줄 잘 모르겠습니다.. 혹시. 아시는 분 있으면. 부탁드립니다....

    > 그럼 추운데 고생이 많치만.. 부탁드립니다...