Canvas do es not allow Drawing!!真是不明白?!! (50分)

  • 主题发起人 主题发起人 wldandan
  • 开始时间 开始时间
W

wldandan

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序现在编译时候出现这种错误
Canvas not allow Drawing.........
起初去掉showmessage()...可以用
但现在也不能用了。。。。
程序中用到了Timage..是动态生成的?
怎么解决这么错误阿!!
高人指点阿!!
 
timage 必须是BMP图象,其他的就不幸。
 
可是我用的是BMP图像啊!和showmessage有什么关系阿!
 
不可能吧!
你把代码贴上来我一定给你解决!
 
这个问题真是ft
我用单步执行,没有问题,但是运行后,就报错了!
 
这个问题是因为系统的图象句柄不够用了,你一定是在98下把,

估计是你create了很多bmp却没有free。
 
To 薄荷
我在2000下阿
也没有create 很多阿
ft,现在systemEnv.machineCount 是1的,但是还是有这种错误。。
怎么解决阿
再看看。。。
for i := 0 to systemEnv.machineCount - 1 do
begin
machineBMPArray := TImage.Create(self);
machineBMPArray.Parent := self;
machineBMPARRAY.OnDblClick:=FormMain.ImageDblClick;
with machineBMPArray do
begin
left := FirstBMPLEFT;
width := 80;
height := 100;
Stretch := false;
end;
if (i mod 5) = 0 then
begin
machineBMPArray.Left := FirstBMPLEFT;
machineBMPArray.top := incTop+20;
inc(IncTop,120);
end
 
在过程中动态创建的Image,一定别忘了在用完后free掉!

procedure TForm1.Button1Click(Sender: TObject);
var
ss: TImage;
begin
ss := TImage.Create(Self);
try
ss.visible := True;
//...
finally
ss.free;
end;
end;
 
可是这个程序试要是要求在运行时候显示机床的状态。。
我就是用Image.picture来表示的,
只有在关掉Form时才能free阿
 
你的图片很大吗?
你有没有试过用imagelist + ListView?
 
图片一点都不大
是想在上面显示几个图标
来表示当前机器的运行状态。。
是一个和串口相连的程序。。。
 
关掉单片机,程序可以运行,打开后,运行就出现
Canvas does not allow Drawing
 
怎么没有人来帮帮我啊。。大侠们!!
当F9运行时。程序就在这里出错
CommonQuery.Close;
commonQuery.SQL.Clear;
commonQuery.SQL.Add('select * from 计划任务');
commonQuery.SQL.Add(' where 日期=:currDate and 班次编号=:currWorkOrderID');
commonQuery.SQL.Add(' and 机床编号=:currMachineID');
commonQuery.ParamByName('currDate').AsDateTime := date;
commonQuery.ParamByName('currWorkOrderID').Asinteger := 10;
commonQuery.paramByName('currMachineID').AsString := 's39';
//commonQuery.ParamByName('currDate').AsDateTime := tempWorkDay;
//commonQuery.ParamByName('currWorkOrderID').Asinteger := tempByte;
//commonQuery.paramByName('currMachineID').AsString := currMachine.machineID;
try
commonQuery.Open;
except
WhenDBError;
就直接跳到WhenDBError,但是单步执行则没有错误!!
 
你程序中是不是用了Handle,而没有判断是否为空的地方,
 
没有啊,哎!!!!
 
有没有哪位大虾可以帮帮我啊!!!
 
可能是内存不足。如果报这种错误可以在这个时候打开OutLook之类的大应用程序。如果也有问题就可以证实。
 
打开outlook 时候没有出现问题阿
有没有什么解决的办法阿!!??
谢谢各位大虾!!
 
后退
顶部