Verwenden von XE8. Devex TcxGrid mit einer Spalte, die Blobdaten mit PopupEditProperties und PopupControl = einem TOleContainer-Steuerelement darstellt. Diese Spalte stellt ein Datenbankfeld (BlobType) für verschiedene Datentypen (Bilder, PDF, Word, Excel, mpg, avi, mp3, ppt, etc.)Blob-Inhalt in OleContainer Delphi anzeigen
Wenn OnInitPopup Ereignis von PopupEditProperties Feuer ich dies möchte tun:
var
MS: TMemoryStream;
OC: TOleContainer;
begin
if not Query1.FieldByName('data').isNull then begin
OC := TcxPopupEditProperties(cxGrid1DBTableView1Data.Properties).PopupControl as TOleContainer;
//Size of Container
with OC do begin
Parent := TcxPopupEdit(Sender).PopupWindow;
Left := 5;
Top := 5;
Width := cxGrid1DBTableView1.Controller.FocusedColumn.Width;
Height := 300;
end;
MS := TMemoryStream.Create;
try
TBlobField(Query1.FieldByName('data')).SaveToStream(MS);
// I Want show the content with appropiate application
OC.LoadFromStream(MS); // here crashes
finally
MS.Free;
end;
end;
end;
Ungültige Stream-Format Nachricht wird ausgelöst. Welches ist das beste Thema dafür?
Ich unbekannte den Dateityp, alles muss hinzugefügt werden: Videos, Dokumente, XLS, PDFs, Bilder aus einer Datei oder Einfügen aus der Zwischenablage ... Ich testete "LoadAsDocument" als Beispiel sagt, aber ein EOleSysError löst "% 1 ist bereits vorhanden“... :( – NizamUlMulk
' OleCheck (StgOpenStorageOnILockBytes (FLockBytes, nil, STGM_READWRITE oder STGM_SHARE_EXCLUSIVE, null, 0, FStorage)); ' Hier wirft – NizamUlMulk
Sie sind richtig ich die Lösung ist, ohne es genau angenommen zu testen. . – kobik