Q&A

  • 쓰레드에서 폼 동적생성에서 에러가 나요..
안녕하세욥..



TThread객체를 이용해서 폼을 동적생성하는데 에러가.. 헉!

아래는 에러 메시지고요..



... class EInvalidOperation with message 'Canvas does not allow

drawing.' ...



캔버스가 제대로 그려질수없다는군요.. 이런.. 동적생성되서 그런것같은데..

아래는 TMyThread 클래스의 Execute 메소드입니당..



procedure TMyThread.Execute;

begin

BgoundForm := TForm.Create(nil);

BgoundForm.left := 0;

BgoundForm.Top := 0;

BgoundForm.Width :=100;

BgoundForm.Height := 100;

BgoundForm.Visible := TRUE;

end;



BgoundForm은 전역변수이고요.. 어떻게 처리해야 하는지요.. 한번 깜박하면서

보인후 위의 에러 메시지 다이얼로그가 뜹니당..

1  COMMENTS
  • Profile
    강호규 2000.09.30 04:20
    쓰레드 내에서 델파이 VCL을 콘트롤 하면 되지 않습니다.



    TForm도 VCL이니 에러가 나겠죠?



    그래서 쓰래드내에서 폼에 있는 VCL에 어떤 변화를 가할 때는



    Synchronize()를 이용합니다.



    폼에 있는 Label 1개를 바꾸더라도 Synchronize()를 사용해야 합니다.



    "Synchronize"로 검색해 보시면 관련 자료가 많이 있을 겁니다.