hi,
schau mal was in deiner Hilfe zu TStream steht:
Zitat:
TStream ist der Basisklassentyp für Stream-Objekte, die von verschiedenen Speichermedien, wie Dateien auf Festplatten oder dynamischem Speicher usw., lesen oder darauf schreiben können.
Basisklasse heißt verwende für deinen Zweck eine Klasse die den Zweck erfüllt:
Delphi-Quellcode:
procedure Tfrm_task.vst_task_documentsDblClick(Sender: TObject);
var
Document : TODocuments;
curNode : PVirtualNode;
folder : string;
fileName : String;
ts : TFileStream;
ms: TMemoryStream;
begin
curNode := vst_task_documents.FocusedNode;
if not Assigned(curNode) then
begin
MessageDlg('Bitte ein Dokument auswählen.',mtInformation, [mbOK], 0);
Exit;
end;
Document := TODocuments(vst_task_documents.GetNodeData(curNode)^);
fileName := 'c:\'+Document.docFileName+Document.docExt;
ts := TFileStream.Create(fileName, fmCreate);
ts.CopyFrom(Document.doc, Document.doc.Size); // ==> hier bricht das Programm ab, siehe Anhang
ts.Free;
folder := ExtractFileDir(fileName);
ShellExecute(0, 'open', PChar(fileName), nil, PChar(folder), SW_NORMAL );
end;
Hinweis: So aus dem Kopf ohne Garantie