-1
我在窗體上有一個TDBImage控件。如何判斷TDBImage是否已被刪除/清空?
用戶可以CTRL - V圖像進入它。他們還可以在控制中清除圖像,並在屏幕上顯示CTRL - X。
當我以後嘗試將TDBImage的內容保存到我的數據庫時,我得到內存訪問衝突,特別是當我生成內存流時。
當然,我的第一個傾向是在我執行此操作之前(並清除數據庫字段我自己),看看TDBImage是否有些空虛。但我似乎無法找到一種方法來檢測控件是否由用戶編輯了CTRL - X'。
下面是我現有代碼看起來像是有幫助的一個非常簡潔的版本。
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控件?
'TGraphic'也有一個'Empty'屬性,如果你想跳過分配和分配但除此之外,沒有數據的圖像: 'if(DBImage1.Picture.Graphic <> nil)和(不是DBImage1.Picture.Graphic.Empty)然後...' –