R royalo Unregistered / Unconfirmed GUEST, unregistred user! 2009-02-22 #1 线程中需要重画BITMAP,出现下面错误:‘canvas does not allow drawing’,请问如何解决,谢谢!
Z znxia Unregistered / Unconfirmed GUEST, unregistred user! 2009-02-22 #2 多线程中,好像不可以直接对控件的属性函数进行操作,如有需要,请先增加一个函数来实现这些功能,假设名称为函数A,然后在原本该调用函数A的地方,通过多线程的Synchronize函数来调用 函数A。有不明白的,请先看一下关于Synchronize的帮助。
多线程中,好像不可以直接对控件的属性函数进行操作,如有需要,请先增加一个函数来实现这些功能,假设名称为函数A,然后在原本该调用函数A的地方,通过多线程的Synchronize函数来调用 函数A。有不明白的,请先看一下关于Synchronize的帮助。
S smlabc Unregistered / Unconfirmed GUEST, unregistred user! 2009-02-23 #3 使用线程画完全没有问题rocedure DrawDeskTop;var Canvas: TCanvas;begin Canvas := TCanvas.Create; Canvas.Handle := GetDC(0); Canvas.Pen.Color := clRed; Canvas.MoveTo(100, 100); Canvas.LineTo(200, 200); ReleaseDC(0, Canvas.Handle); Canvas.Free;end;procedure TForm1.btn1Click(Sender: TObject);var THID: DWORD;begin CreateThread(nil, 0, @DrawDeskTop, nil, 0, THID);end;很显然,你的问题是画只读属性的Canvas
使用线程画完全没有问题rocedure DrawDeskTop;var Canvas: TCanvas;begin Canvas := TCanvas.Create; Canvas.Handle := GetDC(0); Canvas.Pen.Color := clRed; Canvas.MoveTo(100, 100); Canvas.LineTo(200, 200); ReleaseDC(0, Canvas.Handle); Canvas.Free;end;procedure TForm1.btn1Click(Sender: TObject);var THID: DWORD;begin CreateThread(nil, 0, @DrawDeskTop, nil, 0, THID);end;很显然,你的问题是画只读属性的Canvas
A apiao Unregistered / Unconfirmed GUEST, unregistred user! 2009-02-26 #6 就是线程问题。检查你的lock, unlock的位置是否合适。
R royalo Unregistered / Unconfirmed GUEST, unregistred user! 2009-03-02 #7 大富翁这两天连不上,是这样子的我准备将内存中的图像流写入bitmap,然后通过bitmap.canvas 去进行录制,但是出错