Wie DieDolly schon fragt: Wie wird die Datei denn transferiert?
Ganz 'normal':
Delphi-Quellcode:
Function LoadAnsiText(FileName:
String):Ansistring;
var fs:TFilestream;
begin
result:= '
';
fs := TFileStream.Create(FileName, fmOpenRead
or fmShareDenyWrite);
try
try
SetLength(result, fs.Size);
fs.ReadBuffer(result[1], Length(result));
except
On E:
Exception do
messageDlg(Format('
Datei ''
%s''
konnte nicht geöffnet werden.'#13#10#13#10 +
'
(%s:''
%s''
)',[fn,E.ClassName,E.
Message]),
mtError,[mbOK],0);
end;
finally
fs.free;
end;
Ob sich ein paralleler Thread 'abschießen' läßt, wage ich zu bezweifeln. Das Programm ließ sich ja nicht einmal per Taskmanager beenden.
Eine Idee für einen Workaround: Die Datei mit SHFileOperation zunächst auf die lokale Platte kopieren. Dabei erscheint ja ein Fensterchen mit Fortschrittsbalken und einem 'Abbrechen' - Button. Damit kann man das Kopieren einer Datei abbrechen, was auch bei Netzwerk-Zugriffen zu funktionieren scheint.
Vielleicht hat ja noch jemand eine bessere Idee?