안녕하세욥..
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은 전역변수이고요.. 어떻게 처리해야 하는지요.. 한번 깜박하면서
보인후 위의 에러 메시지 다이얼로그가 뜹니당..
TForm도 VCL이니 에러가 나겠죠?
그래서 쓰래드내에서 폼에 있는 VCL에 어떤 변화를 가할 때는
Synchronize()를 이용합니다.
폼에 있는 Label 1개를 바꾸더라도 Synchronize()를 사용해야 합니다.
"Synchronize"로 검색해 보시면 관련 자료가 많이 있을 겁니다.