【发布时间】:2019-06-30 12:30:22
【问题描述】:
您好,我有以下代码:
procedure TformInvoiceDetails.ReadWebImage(imgAddress: string);
var
memStream: TMemoryStream;
begin
memStream := TMemoryStream.Create;
try
IdHTTP1.Get (imgAddress,memStream);
//sleep(5000);
except
imageContProduct.Visible := false;
ShowMessage('Image not found at:'+imgAddress);
memStream.Free;
exit;
end;
try
memStream.Position := 0;
imageContProduct.Visible := true;
imageContProduct.Bitmap.LoadFromStream(memStream);
finally
memStream.Free;
end;
end;
大多数情况下它都可以正常工作,但我不断收到异常错误,有时会出现“找不到图像”(尽管图像确实存在)。
如果我设置 sleep(5000) 一切正常。
所以我假设在我尝试添加到 TImage 之前图像尚未被接收。
有没有更好的使用方法?
【问题讨论】:
-
嗯,你把异常中的诊断信息扔掉了,所以,.......
-
在地址 01014323 的访问冲突...读取地址 00000030
-
您在问题“图片未找到...”中报告的错误是您自己的错误消息。正如所指出的,您的异常处理程序完全忽略了实际的异常,只是假设找不到您的图像,而实际上,它可能是其他东西。现在您提到访问冲突。那是您实际在这里捕获的异常吗?那就是调试时断点停止的地方吗?
-
我的建议是花一些时间提高你的调试技能
-
@Frank "读取地址 00000030" - 访问接近 0 的地址通常意味着在某处使用了 nil 指针
标签: delphi