Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Dynamische TIdFTP kann keine Events ansteuern (https://www.delphipraxis.net/128518-dynamische-tidftp-kann-keine-events-ansteuern.html)

vlees91 31. Jan 2009 11:32


Dynamische TIdFTP kann keine Events ansteuern
 
Delphi-Quellcode:
  FTPCon.OnWorkBegin := OnFTPConWorkBegin;

Delphi-Quellcode:
  private
    { Private declarations }
    FTPCon: TIdFTP;
    procedure OnFTPConWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCountMax: Integer);
Delphi-Quellcode:
procedure TMainForm.OnFTPConWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCountMax: Integer);
begin
  //kommt irgendwann mal was rein
end;
also der oberste code wird im OnCreate des Forms aufgerufen aber es laesst sich nciht kompilieren, da die ParamtererListe nicht gleich ist an der Definition. Ist schon lange her das ich sowas gemacht hab also wahrscheinlich ist der Fehler einfach nur dumm, aber ich find ihn jetzt nicht (und ich kann da oben natuerlich nicht alle Parameter wie Sender und so schon eingeben da diese ja dynamisch sind und ich kann mich erinnern dass es frueher so einfach ging)

Assertor 31. Jan 2009 11:44

Re: Dynamische TIdFTP kann keine Events ansteuern
 
Hi,

probier mal

Zitat:

Zitat von vlees91
Delphi-Quellcode:
  private
    { Private declarations }
    FTPCon: TIdFTP;
    procedure OnFTPConWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
      AWorkCountMax: Integer); // const weg
Delphi-Quellcode:
procedure TMainForm.OnFTPConWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Integer); // const weg
begin
  //kommt irgendwann mal was rein
end;

Wenn Du eine neuere Indy Version verwendest (nicht die mit Turbo Delphi ausgelieferte), dann muß statt Integer bitte Int64 verwendet werden.

Zitat:

Zitat von vlees91
Delphi-Quellcode:
  private
    { Private declarations }
    FTPCon: TIdFTP;
    procedure OnFTPConWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
      AWorkCountMax: Int64); // const weg, Int64 statt Integer
Delphi-Quellcode:
procedure TMainForm.OnFTPConWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Int64); // const weg, Int64 statt Integer
begin
  //kommt irgendwann mal was rein
end;

Die jeweils gültige Typdefinition für diese Events ist übrigens in der IdComponent.pas. Wenn diese in der Unitliste steht, einfach mit der Maus einen Rechtsklick drauf, dann "Datei beim Cursor" öffnen.

In der Datei findest Du dann bei neueren Indys z.B.:
Delphi-Quellcode:
TWorkBeginEvent = procedure(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Int64) of object;
TWorkEndEvent = procedure(ASender: TObject; AWorkMode: TWorkMode) of object;
TWorkEvent = procedure(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Int64) of object;
und früher halt
Delphi-Quellcode:
TWorkBeginEvent = procedure(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Integer) of object;
TWorkEndEvent = procedure(ASender: TObject; AWorkMode: TWorkMode) of object;
TWorkEvent = procedure(ASender: TObject; AWorkMode: TWorkMode; AWorkCount: Integer) of object;
Gruß Assertor

vlees91 31. Jan 2009 11:50

Re: Dynamische TIdFTP kann keine Events ansteuern
 
Danke, hatte die Definitionen aus der Docu von indyproject.org geholt da die Turbo versionen die Pas-Dateien nicht haben und man sonst nicht daran kommt (vll hat die Delphi hilfe was dadrin)
aber Danke: Ich werds direkt ausprobieren

EDIT: scheint zu funktionieren, Danke.

Assertor 31. Jan 2009 12:06

Re: Dynamische TIdFTP kann keine Events ansteuern
 
Hi,

Zitat:

Zitat von vlees91
Danke, hatte die Definitionen aus der Docu von indyproject.org geholt da die Turbo versionen die Pas-Dateien nicht haben und man sonst nicht daran kommt (vll hat die Delphi hilfe was dadrin)
aber Danke: Ich werds direkt ausprobieren

Ok. Die IndyProject Doku ist hoffnungslos veraltet - leider. Liegt einfach an fehlenden Freiwilligen...

Zitat:

Zitat von vlees91
EDIT: scheint zu funktionieren, Danke.

Super, das freut mich!

Gruß Assertor


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:11 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