폼을 하나 만들구 쓰레드를 하나만들구.
버튼을 클릭하면...
쓰레드 작동시키는데요...
그 쓰레드에 비트맵을 올리고 싶은데 아무리해도 안돼서 이렇게..
구원을 요청합니다.....
버튼을 클릭하면
ZBitmap := TBitMap.Create;
ZBitmap.LoadfromFile('C:test.bmp');
ZPaint := TPaint.Create(Canvas, ZBitmap);
ZPaint.Priority := tpNormal;
이렇게 실행을 돼거든요..
당연히 쓰레도
이렇게 되어있다면...
쓰레드 내부에서는 비트맵 Bit를 사용했을때 결국 이놈은 쓰레드 자체가 가지고 있는것이 아니라 쓰레드외부에 있는놈의 포인터만 참고하는것이되져...
쓰레드를 사용할때 가장 주의 할점은 쓰레드 외부의 변수를 직접사용하지 말라는겁니다.
이유는 쓰레드에서도 그놈을 건드리도 다른놈도 그놈도 건드리다보면 한놈을 여러놈이 동시에 건드릴수가 있으므로 치명적인 오류를 발생시킬수 있습니다. 그러므로..
이런경우 쓰레드에게는 비트맵파일경로만 알려주고 쓰레드내부에서 비트맵을 생성해서 사용하도록하는것이 좋을것 같습니다. 아니면
쓰레드 내부에서 비트맵을 생성하고 외부의 비트맵에서 복사(Assign)를 하도록 하는것도 좋구요...
그럼
평안하시길~