Einzelnen Beitrag anzeigen

Maekkelrajter

Registriert seit: 8. Mär 2017
Ort: Köln
118 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Datei-Ladevorgang abbrechen

  Alt 19. Okt 2018, 10:36
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?
  Mit Zitat antworten Zitat