AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy-Event per Code zuweisen - "Parameter unterschiedlich"
Thema durchsuchen
Ansicht
Themen-Optionen

Indy-Event per Code zuweisen - "Parameter unterschiedlich"

Ein Thema von S - tefano · begonnen am 30. Mai 2005 · letzter Beitrag vom 2. Jun 2005
 
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#1

Indy-Event per Code zuweisen - "Parameter unterschiedli

  Alt 30. Mai 2005, 15:21
Hallihallo,

nach einiger Abstinenz und zwischenzeitlicher Umsattelung von Delphi7 auf Delphi2005 will ich nun versuchen mein schon länger einstaubendes FTP-Client-Projekt in der neuen Entwicklungsumgebung nochmal anzugehen und weiter zu bringen.
Die noch fehlenden Packages für irgendwelche Komponenten sind alle nachinstalliert, die Indies sind auch alle da, die Grundvoraussetzungen für einen ersten Build-Versuch sind gelegt.

Aus lauter Jux und Dollerei habe ich vor ein paar Monaten mal versucht, Dateitransfers über Threads zu erledigen, um mal zu schauen wie das wohl läuft wenn man mehrere Dateien gleichzeitig transportiert. So habe ich dann eine TThread-erbende Klasse erzeugt, die u.a. eine idFTP-Instanz besitzt. Damit sie "über ihren Status" bzw den des Transfers bescheid weiß, gibt es in ihr Prozeduren die die Indy-Ereignisse OnWork, OnWorkBegin, OnWorkEnd und OnAfterClientLogin behandeln sollen.

Im Execute des Threads (ob das nun richtig oder falsch ist, sei mal dahingestellt) erzeuge ich dann halt eine idFTP-Instanz und weise sie der Variable FidFTP zu. Danach setze ich bei FidFTP die für mich wichtigen Werte und weise den vier oben erwähnten Events meine vier enstprechenden Prozeduren zu.
Diese sind so deklariert:

Delphi-Quellcode:
procedure Work(Sender: TObject; AWorkMode: TWorkMode;
    const AWorkCount: Integer);
procedure WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
    const AWorkCountMax: Integer);
procedure WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
procedure LoggedOn(Sender: TObject);
Die Zuweisungen sehen dann so aus:

Delphi-Quellcode:
self.FidFTP.OnWork:= self.Work; //Dies ist eine Markierung
self.FidFTP.OnWorkBegin:= self.WorkBegin; //und direkt noch eine
self.FidFTP.OnWorkEnd:= self.WorkEnd;
self.FidFTP.OnAfterClientLogin:= self.LoggedOn;
Unter D7 hat das ganz vorzüglich kompiliert und lief auch - jedenfalls der Teil mit den Zuweisungen. Beim Buildversuch unter D2k5 kriege ich allerdings für die im obigen Codeblock markierten Zeilen jeweils diese Fehlermeldung:

Zitat von Delphi-Compiler:
E2009 Inkompatible Typen: 'Liste der Parameter ist unterschiedlich'
Jetzt hatte ich schon den Verdacht, dass die bei den Indies mit dem Versionssprung vielleicht ein "A" vor den Sender geschrieben haben oder sowas, da hab ich dann halt ein wenig mit Anfangsbuchstaben rumgespielt, aber keinen Erfolg gehabt. Merkwürdigerweise akzeptiert der Compiler aber die Zeilen für WorkEnd und LoggedOn, obwohl es da von den Übereinstimmungen her genauso aussieht wie bei den anderen beiden Zeilen.
Auf TForm1 habe ich auch noch einen idFTP liegen, da gibt es auch diese Ereignisbehandlungen. Die werden der Komponente aber vom Objektsinspektor zugewiesen, da funktioniert es auch.
Der einzige Unterschied, den mir HelpInsight (wenn es denn so heißt, jedenfalls dieser InformationsHint, wenn man auf bspw einen Methodennamen zeigt) zwischen dem FidFTP.OnWorkBegin und self.WorkBegin zeigt, ist dass es sich bei dem von idFTP um ein Event handelt, und bei meiner Version um eine Methode. Ist ja auch logisch. Sonst ist es aber genau gleich, was mir die Compilermeldung umso schleierhafter erscheinen lässt.

Evtl. habe ich nur nach den falschen Stichworten gesucht, jedenfalls habe ich bislang nichts Vergleichbares vor D2k5-Hintergrund finden können.

Ratschläge sind daher gern willkommen

bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
 


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 17:38 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