[英]How do I tell if TDBImage my has been erased/emptied?
我的表單上有一個 TDBImage 控件。
用戶可以CTRL - V圖像進去。 他們還可以在控件中按CTRL - X來清除圖像。
當我稍后嘗試將該 TDBImage 的內容保存到我的數據庫時,我會遇到內存訪問沖突,特別是當我生成內存流時。
當然,我的第一個傾向是在我這樣做之前查看 TDBImage 是否為空(並自行清除數據庫字段)。 但我似乎無法找到一種方法來檢測控件是否已被用戶CTRL - X 'ed。
這是我現有代碼的一個非常簡潔的版本,如果有幫助的話。
var
photo: TDBImage;
photoValue: TPicture;
photoStream: TMemoryStream;
updateQuery: TOraQuery;
begin
// ....
// It gets through here without complaint
photoValue := photo.Picture;
// It fails on this line
photoValue.Graphic.SaveToStream(photoStream);
updateQuery.paramByName('picture').ParamType := ptInput;
updateQuery.paramByName('picture').AsOraBlob.LoadFromStream(photoStream);
updateQuery.ExecSQL;
// ...
end;
如何檢測空的/CTRL-Xed TDBImage 控件?
您可以檢查Graphic
屬性是否為零,就像這樣
if DBImage1.Picture.Graphic<>nil then
//do something
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.