Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: TIdFTPServer: Meldung, wenn Datei übertragen ist???

  Alt 13. Jul 2006, 23:30
so ginge es zum Beispiel -

Anstelle von TFileStream nutze TMyFileStream (selbst schreiben)
Delphi-Quellcode:
type
  TMyFileStream = class(TFileStream)
  private
    fOnDestroy: TNotifyEvent;
  public
    destructor Destroy; override;

    property OnDestroy: TNotifyEvent read fOnDestroy write fOnDestroy;
  end;
[...]
destructor TMyFileStream.Destroy;
begin
  if Assigned(fOnDestroy) then
    fOnDestroy(Self);
  inherited Destroy;
end;
anschließend könnte dein Ereignis so aussehen:
Delphi-Quellcode:
procedure TForm1.FileStreamClosed(Sender: TObject)
begin
  //In Log schreiben: DateiStream wurde freigegeben=> Vorgang beendet
end;

procedure TForm1.IdFTPServer1RetrieveFile(ASender: TIdFTPServerThread; const AFileName: String; var VStream: TStream);
begin
  VStream := TMyFileStream.create(translatepath(AFilename, ASender.HomeDir), fmopenread or fmShareDenyWrite)
  TMyFileStream(VStream).OnDestroy := FileStreamClosed;
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat