Idftp1 Problem (Bug?)
Idftp1 Problem (Bug?)
Ich bräuchte das Ereignis getafterput im idftp1
Nur wenn ich dieses anklicke bringt er mir sofort einen Fehler das ich das nicht auswählen kann
Und Fehler in der idglobal
Kann das jemand nachvollziehen?
Und wie kann ich das getafterput irgendwie nutzen?
Danke
Reiter
Nur wenn ich dieses anklicke bringt er mir sofort einen Fehler das ich das nicht auswählen kann
Und Fehler in der idglobal
Kann das jemand nachvollziehen?
Und wie kann ich das getafterput irgendwie nutzen?
Danke
Reiter
-
- Beiträge: 2119
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Idftp1 Problem (Bug?)
Setz das Event einfach im Code
Dann mit dem textcursor auf EventHandlerFunktion gehen und Strg+Shift+C drücken und Lazarus erstellt den eventhandler für dich (oder du schreibst die Funktion selbst)
Den fehle in der idglobal behebst du indem du Indy neu kompilierst (Package öffnen und kompilieren drücken) das muss man ab und an mal machen, keine Ahnung warum.
Der aktuelle Trunk von Indy ist aber sowieso etwas kaputt für Lazarus, ich musste als ich es demletzt neu installiert hab 2 Zeilen per Hand fixen (eine typdefinition und ein ifdef deprecated)
Code: Alles auswählen
DeinControl.EventName := @EventHandleFunktion;
Den fehle in der idglobal behebst du indem du Indy neu kompilierst (Package öffnen und kompilieren drücken) das muss man ab und an mal machen, keine Ahnung warum.
Der aktuelle Trunk von Indy ist aber sowieso etwas kaputt für Lazarus, ich musste als ich es demletzt neu installiert hab 2 Zeilen per Hand fixen (eine typdefinition und ein ifdef deprecated)
Re: Idftp1 Problem (Bug?)
Werde das indy mal neu compilieren... Mal sehen
Aber was mich viel mehr interessiert
Kannst mir das mit dem Event bitte etwas näher erklären?
Wäre ich dir sehr dankbar drüber
Eventhandlerfunktion usw
Wie würde die Syntax dazu aussehen
Aber was mich viel mehr interessiert
Kannst mir das mit dem Event bitte etwas näher erklären?
Wäre ich dir sehr dankbar drüber
Eventhandlerfunktion usw
Wie würde die Syntax dazu aussehen
-
- Beiträge: 2119
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Idftp1 Problem (Bug?)
Ein Event ist ein funktionspointer, z.b. Ein OnClick Event ist vom Typ TNotifyEvent
Das heißt der eventhandler muss eine Methode (also die Funktion einer Klasse sein) die 1 argument annimmt das vom Typ TObject sein.
Ohne das of object würde es eine normalen procedure und keine Methode sein
Geht natürlich auch mit Funktionen:
Den funktionspointer einer Funktion bekommst du über @:
Schau dir einfach die Definition der property an und Bau die Methode selbst
Code: Alles auswählen
type
TNotifyEvent = procedure (Sender:TObject) of object;
Ohne das of object würde es eine normalen procedure und keine Methode sein
Geht natürlich auch mit Funktionen:
Code: Alles auswählen
TTestFunc = function (AIndex: Integer): Boolean; // eine Funktion, keine Methode, die einen Boolean zurückgibt und einen Integer als Argument nimmt
Code: Alles auswählen
function test(AIndex: Integer): Boolean;
Begin
Result := AIndex > 0;
End;
...
Var t: TTestFunc;
...
t := @test;
If t(42) then ...
Re: Idftp1 Problem (Bug?)
danke...
im grunde muss die funktion nur eine andere form aufrufen was nach dem upload auf den ftp passieren sollte weil in der anderen form ein telnet befehl ausgelöst wird..
darum wollte ich die methode afterput verwenden weil woher soll den telnet wissen wann die datei vollständig hochgeladen wurde
oder kann man das anders und einfacher lösen?
danke
im grunde muss die funktion nur eine andere form aufrufen was nach dem upload auf den ftp passieren sollte weil in der anderen form ein telnet befehl ausgelöst wird..
darum wollte ich die methode afterput verwenden weil woher soll den telnet wissen wann die datei vollständig hochgeladen wurde
oder kann man das anders und einfacher lösen?
kannst mir das dann nochmal erläutern ?Dann mit dem textcursor auf EventHandlerFunktion gehen und Strg+Shift+C drücken und Lazarus erstellt den eventhandler für dich (oder du schreibst die Funktion selbst)
danke
-
- Beiträge: 2119
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Idftp1 Problem (Bug?)
Strg+Shift+C ist der Lazarus Shortcuts um Code automatisch zu erzeugen. Z.B. Wenn du einen eventhandler zuweist der noch nicht existiert kann Lazarus die Funktion damit automatisier erzeugen. Dafür muss der textcoursor (der blinkende strich) nur irgendwo auf dem Unbekannten bezeichnet liegen.
Andere Anwendungsmöglichkeiten ist das erstellen von properties oder das erzeugen lokaler Variablen.
Z.b. Bei i:=5; erzeugt Lazarus wenn man bei i Strg+Shift +C drückt die lokale Variable i als Integer (echt praktisch da man dann nicht extra zum Funktionsumfang scrollen muss) funktioniert auch für For Zähler Variablen
Andere Anwendungsmöglichkeiten ist das erstellen von properties oder das erzeugen lokaler Variablen.
Z.b. Bei i:=5; erzeugt Lazarus wenn man bei i Strg+Shift +C drückt die lokale Variable i als Integer (echt praktisch da man dann nicht extra zum Funktionsumfang scrollen muss) funktioniert auch für For Zähler Variablen
Re: Idftp1 Problem (Bug?)
Vielen Dank für die Erklärung...
Werde ich mal probieren
Gruß
Reiter
Werde ich mal probieren
Gruß
Reiter
Re: Idftp1 Problem (Bug?)
um nochmal auf den fehler in der idglobal zu kommen
kann mir da vielleicht mal jemand helfen oder umschreiben? hab ich vergessen was hinzuzufügen?
da ich auf den mac und linux das mache
wenn ich auf ereignisse afterput klicke steigt er hier in der idglobal aus
// For linux the user needs to set this variable to be accurate where used (mail, etc)
GOffsetFromUTC: TDateTime = 0{$IFDEF HAS_DEPRECATED}{$IFDEF USE_SEMICOLON_BEFORE_DEPRECATED};{$ENDIF} deprecated{$ENDIF};
fehlermeldung
IdGlobal.pas(1889,105) Error: ; erwartet aber deprecated gefunden
hab auch versucht mich hier einzulesen.. TNotifyEvent
da steig ich aber noch nicht durch
obwohl das eigentlich besser wäre weil man da unabhängig eine methode erstellen kann
bzw vielleicht könnte mir hier jemand mit einer methode helfen?
was ich mit afterput auslösen wollte ist eine form2.show zu erreichen also wenn die datei fertig auf den ftp geladen ist,soll er form2 aufrufen
danke schon mal
kann mir da vielleicht mal jemand helfen oder umschreiben? hab ich vergessen was hinzuzufügen?
da ich auf den mac und linux das mache
wenn ich auf ereignisse afterput klicke steigt er hier in der idglobal aus
// For linux the user needs to set this variable to be accurate where used (mail, etc)
GOffsetFromUTC: TDateTime = 0{$IFDEF HAS_DEPRECATED}{$IFDEF USE_SEMICOLON_BEFORE_DEPRECATED};{$ENDIF} deprecated{$ENDIF};
fehlermeldung
IdGlobal.pas(1889,105) Error: ; erwartet aber deprecated gefunden
hab auch versucht mich hier einzulesen.. TNotifyEvent
da steig ich aber noch nicht durch
obwohl das eigentlich besser wäre weil man da unabhängig eine methode erstellen kann
bzw vielleicht könnte mir hier jemand mit einer methode helfen?
was ich mit afterput auslösen wollte ist eine form2.show zu erreichen also wenn die datei fertig auf den ftp geladen ist,soll er form2 aufrufen
danke schon mal
-
- Beiträge: 2119
- Registriert: Di 23. Sep 2014, 17:46
- OS, Lazarus, FPC: Win10 | Linux
- CPU-Target: x86_64
Re: Idftp1 Problem (Bug?)
Quick and dirty: Ersetz den ganzen Ausdruck hinter der 0 einfach mit ;
Richtig: definiere das Use_semicolon_before_deprecated (oder wie das heißt) in den Package Einstellungen
Richtig: definiere das Use_semicolon_before_deprecated (oder wie das heißt) in den Package Einstellungen
Re: Idftp1 Problem (Bug?)
vielen dank..
jetzt bringt die idglobal keinen fehler mehr
jetzt bringt die idglobal keinen fehler mehr