特
特尔斐
Unregistered / Unconfirmed
GUEST, unregistred user!
to andin:
>虽然 Delphi 已经创建了Canvas 对象,但是,还没有创建内存设备句柄,如果一个
>Canvas 对象不拥有内存设备句柄,这个 Canvas 对象毫无用处的,Delphi 的解决办法
>是:需要时(例如调用Canvas.TextOut),创建内存设备句柄
这是对的。
>虽然你的程序没有错误,但是执行效率很低,原因就在:内存设备句柄反复的创建、释
>放、创建、释放。。。,
呵呵,好象不太对,Canvas对象在调用实际的GDI函数时,会检查设备句柄是否可用,如不可用则会创建一个,但并不会反复的创建、释放的。
if csHandleValid in NeededState then
begin
CreateHandle; //即使不包含FCurrentBitmap.Canvas.Handle这里也只会进来一次
>虽然 Delphi 已经创建了Canvas 对象,但是,还没有创建内存设备句柄,如果一个
>Canvas 对象不拥有内存设备句柄,这个 Canvas 对象毫无用处的,Delphi 的解决办法
>是:需要时(例如调用Canvas.TextOut),创建内存设备句柄
这是对的。
>虽然你的程序没有错误,但是执行效率很低,原因就在:内存设备句柄反复的创建、释
>放、创建、释放。。。,
呵呵,好象不太对,Canvas对象在调用实际的GDI函数时,会检查设备句柄是否可用,如不可用则会创建一个,但并不会反复的创建、释放的。
if csHandleValid in NeededState then
begin
CreateHandle; //即使不包含FCurrentBitmap.Canvas.Handle这里也只会进来一次