AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi IndyFTP Fortschritt bei Upload
Thema durchsuchen
Ansicht
Themen-Optionen

IndyFTP Fortschritt bei Upload

Ein Thema von meg91 · begonnen am 11. Okt 2009 · letzter Beitrag vom 11. Okt 2009
Antwort Antwort
Benutzerbild von meg91
meg91

Registriert seit: 25. Apr 2006
131 Beiträge
 
Turbo Delphi für Win32
 
#1

IndyFTP Fortschritt bei Upload

  Alt 11. Okt 2009, 18:49
Hallo Community,
es geht um folgendes: Ich möchte eine Datei per FTP auf einen Server laden. Der einzige Lösungsansatz, welchen ich bisher zum Funktionieren überzeugen konnte, ist die Indy-Variante. Da ich leider nur eine Turbo-Delphi Version habe, bleibt es mir verwehrt die Komponenten einfach auf der Form zu platzieren.
So habe ich alles schön erstellt, nur bei der Zuweisung der Prozeduren für eine Fortschrittsanzeige scheitere ich kläglich, es gibt immer Fehlermeldungen mit Parametern, auch im Forum habe ich bislang noch keine Lösung gefunden, um non-VLC erstellten Indy-Komponenten Prozeduren zuzuweisen.
Wo liegt hier der Fehler? Der FTP-Upload an sich funktioniert, nur möchte auch gerne sehen was voran geht...

Gruß Markus

Delphi-Quellcode:
var
  indy_FTPClient: TIdFTP;

procedure Tfo_uploader.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
begin
  ProgressBar1.Position := AWorkCount;
  Application.ProcessMessages;
end;

procedure Tfo_uploader.IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCountMax: Integer);
begin
  ProgressBar1.Max := AWorkCountMax;
end;

procedure Tfo_uploader.IdFTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
ProgressBar1.Position := 0;
end;

procedure Tfo_uploader.FormCreate(Sender: TObject);
begin
  indy_FTPClient := TIdFTP.Create;

  indy_FTPClient.OnStatus := IdFTP1Status;

  indy_FTPClient.OnWorkBegin := IdFTP1WorkBegin(indy_FTPClient, wmRead, 100); // es geht um diese Parameter
  indy_FTPClient.OnWorkEnd := IdFTP1WorkEnd;
  indy_FTPClient.OnWork := IdFTP1Work;
end;
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: IndyFTP Fortschritt bei Upload

  Alt 11. Okt 2009, 18:55
Eigentlich sollte es so funktionieren:
Delphi-Quellcode:
var
  indy_FTPClient: TIdFTP;

procedure Tfo_uploader.IdFTP1Work(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
begin
  ProgressBar1.Position := AWorkCount;
  Application.ProcessMessages;
end;

procedure Tfo_uploader.IdFTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCountMax: Integer);
begin
  ProgressBar1.Max := AWorkCountMax;
end;

procedure Tfo_uploader.IdFTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
ProgressBar1.Position := 0;
end;

procedure Tfo_uploader.FormCreate(Sender: TObject);
begin
  indy_FTPClient := TIdFTP.Create;

  indy_FTPClient.OnStatus := IdFTP1Status;

  indy_FTPClient.OnWorkBegin := IdFTP1WorkBegin; // genauso wie die anderen beiden
  indy_FTPClient.OnWorkEnd := IdFTP1WorkEnd;
  indy_FTPClient.OnWork := IdFTP1Work;
end;
Aber das hast du bestimmt schon ausprobiert und verworfen (da du die Zuweisung bei den anderen beiden ja schon so machst) - oder?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: IndyFTP Fortschritt bei Upload

  Alt 11. Okt 2009, 18:55
Dein Fehler ist das du dort einen Funktionsaufruf hast (du übergibst Parameter). Richtig ist es jedoch wie in der Zeile darunter - einfach nur der Funktionsname (genauer gesagt Methodenanme) ohne Klammern.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von meg91
meg91

Registriert seit: 25. Apr 2006
131 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: IndyFTP Fortschritt bei Upload

  Alt 11. Okt 2009, 18:58
hätte ich ohne Parameter keine Fehlermeldung bekommen, wäre ich ja gar nicht auf die Idee gekommen etwas hin zu schreiben...

Mit folgendem Code
Delphi-Quellcode:
  indy_FTPClient.OnStatus := IdFTP1Status;
  indy_FTPClient.OnWorkBegin := IdFTP1WorkBegin;
  indy_FTPClient.OnWorkEnd := IdFTP1WorkEnd;
  indy_FTPClient.OnWork := IdFTP1Work;
bekomme ich diese Fehlermeldung:
[Pascal Fehler] u_uploader.pas(218): E2009 Inkompatible Typen: 'Liste der Parameter ist unterschiedlich'

Der Compiler will ja anscheinend irgendwas in Klammern dahinter haben....
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#5

Re: IndyFTP Fortschritt bei Upload

  Alt 11. Okt 2009, 19:02
Erstmal danke für die Fehlermeldung

Er will keine Klammern, sondern er will eher dass die prozedur, die du zuweist auch dieselben Parameter hat wie erwartet
  Mit Zitat antworten Zitat
Benutzerbild von meg91
meg91

Registriert seit: 25. Apr 2006
131 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: IndyFTP Fortschritt bei Upload

  Alt 11. Okt 2009, 19:05
wie würde das den konkret aussehen? Ich habe leider keine Vorstellung, was ich an dem Code verändern muss, damit da endlich mal was funktioniert...

Die Fehlermeldung bezieht sich auf folgende beiden Zeilen
Delphi-Quellcode:
  indy_FTPClient.OnWorkBegin := IdFTP1WorkBegin;
indy_FTPClient.OnWork := IdFTP1Work;
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: IndyFTP Fortschritt bei Upload

  Alt 11. Okt 2009, 21:22
Ich hab mal die Suche für dich bemüht (OnWorkBegin) und folgendes gefunden:
Delphi-Quellcode:
procedure FTPWork(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Integer);
procedure FTPWorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Integer);
vorgehensweise ist übrigens folgende. Man schaut von welchem Typ das Event ist und sucht dann die Declaration davon.

Bei einem Button zum Beispiel ist das OnClick vom Typ TNotifyEvent. Und wenn man die Declaration von TNotifyEvent sucht findet man wie die Methode aussehen muss.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von meg91
meg91

Registriert seit: 25. Apr 2006
131 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: IndyFTP Fortschritt bei Upload

  Alt 11. Okt 2009, 21:37
super vielen Dank
Kann es sein, dass meine Prozeduren aus einer anderen Indy-Versionen waren? Naja auf jeden Fall geht es jetzt.

Gruß Markus
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz