Entwickler-Ecke
Internet / Netzwerk - Indy IdTCPClient OnWork geht nicht
Timbo - Mo 03.07.06 19:27
Titel: Indy IdTCPClient OnWork geht nicht
Hallo,
ich kannmit dem Client wunderbar Dateien übertragen, wollte nun noch einen Progressbar bauen.
OnWorkBegin wird ausgelöst, aber OnWork wird nicht ausgelöst, woran kann das liegen?
Vielen Dank.
Tim.
alleinherrscher - Mo 03.07.06 20:00
Welches OnWork benutzt du denn?
Wenn du das IdTCPClient.OnWork benutzt, nimm das IdTCPClient.Socket.OnWork, das müsste funktionieren
Timbo - Mi 05.07.06 02:12
Danke für die Antwort...
Diese Funktion gibt es, aber wo finde ich die denn im OI?
Nützt ja nichts, wenn ich die Funktion aufrufe... muss ja vom Programm aufgerufen werden. Oder hab ich da was falsch verstanden?
alleinherrscher - Mi 05.07.06 10:43
Timbo hat folgendes geschrieben: |
Danke für die Antwort...
Diese Funktion gibt es, aber wo finde ich die denn im OI?
Nützt ja nichts, wenn ich die Funktion aufrufe... muss ja vom Programm aufgerufen werden. Oder hab ich da was falsch verstanden? |
Das ist keine Funktion, sondern ein Event ;) Du musst es vorher definieren, also z.B. bei Form.Create
IdTCPClient1.socket.onwork:=MyOnWorkProcedure(ASender:TObject;AWorkMode:TWorkMode;AWorkCount:Integer);
MyOnWorkProcedure muss natürlich ganz normal per private oder public deklariert werden.
Hoffe, dass es klappt! *DAUMEN HOCH*
Timbo - Mi 05.07.06 11:01
hier mal zum verständnis ein bißchen Quellcode.
Benutze die IdTcpClient Komponente.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| with IdTCPClient1 do begin Connect; ftmpStream := TFileStream.Create('C:\StreamTest.Datei',fmOpenRead + fmShareDenyNone); OpenWriteBuffer; WriteStream(ftmpStream); CloseWriteBuffer; FreeAndNil(fTmpStream); Disconnect; end;
procedure TFArtikel.IdTCPClient1WorkBegin(Sender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer); begin Label1.Caption:= IntToStr(AWorkCountMax); end;
procedure TFArtikel.IdTCPClient1Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer); begin Label2.Caption:= IntToStr(AWorkCount); end;
end. |
WorkBegin wird ausgeführt, aber Work nicht...
Gibt es noch eine andere Möglichkeit den Übertragungsfortschritt heraus zu bekommen?
Timbo - Mi 05.07.06 11:33
@alleinherrscher:
das event heißt wohl doWork, onWork gibt es nicht...
Delphi-Quelltext
1:
| IdTCPClient1.socket.dowork:=MyOnWorkProcedure; |
dann sagt der Compiler, bei DoWork:
Not enough actual Parameter
alleinherrscher - So 09.07.06 21:03
Timbo hat folgendes geschrieben: |
@alleinherrscher:
das event heißt wohl doWork, onWork gibt es nicht...
Delphi-Quelltext 1:
| IdTCPClient1.socket.dowork:=MyOnWorkProcedure; |
dann sagt der Compiler, bei DoWork:
Not enough actual Parameter |
Was hast du denn für ne Version? Also in Indy10 geht das ;)
DoWork ist (auch in älteren Indy Versionen) kein Event!!!! Das ist also absolut das falsche... von DoWork solltest du (glaube ich) besser die Finger lassen ;)
Grüße
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!