AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi indy ftp: dazugehörige idFTP-Komponente aus OnWork ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

indy ftp: dazugehörige idFTP-Komponente aus OnWork ermitteln

Ein Thema von Nogge · begonnen am 14. Mai 2005 · letzter Beitrag vom 15. Mai 2005
Antwort Antwort
Seite 1 von 2  1 2      
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#1

indy ftp: dazugehörige idFTP-Komponente aus OnWork ermitteln

  Alt 14. Mai 2005, 11:28
Hallo Community,
Ich erstelle mehrere idFTP-Komponente zur Laufzeit, verbinde aber all diese mit den selben (OnWorkBegin, OnWork, OnWorkEnd)-Procedures. Ich habe nämlich die idFTP-Komponente ein wenig für meine Zwecke überarbeitet, weil ich für jede Komponente auch ein Panel und ein Label benötige. Daher möchte ich irgendwie herausfinden, welche Komponente gerade das Event ausführt.
Delphi-Quellcode:
type
  TidFTP_Thread = class(TidFTP)
    private
      { Private declarations }
      Filename : String;
      Target : String;
      P_Thread : TPanel;
      L_Thread : TLabel;
    end;
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

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

Re: indy ftp: dazugehörige idFTP-Komponente aus OnWork ermit

  Alt 14. Mai 2005, 11:55
Also meine IdFtp-Komonenten haben alle im OnWork etc,. den Parameter Sender, mit dem du auf die Ftp-Kompo zugreifen kannst, die dieses Ereignis ausgelöst hat.
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#3

Re: indy ftp: dazugehörige idFTP-Komponente aus OnWork ermit

  Alt 14. Mai 2005, 12:05
Der Sender ist aber vom Typ idTCPConnection und nicht vom Typ idFTP.
(Sender as TidTCPConnection).Irgendetwas Wenn ich den Typ verändere, erhalte ich eine AV.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

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

Re: indy ftp: dazugehörige idFTP-Komponente aus OnWork ermit

  Alt 14. Mai 2005, 12:13


Versuch mal, sie über(Sender as TidTCPConnection).Name zu unterscheiden
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#5

Re: indy ftp: dazugehörige idFTP-Komponente aus OnWork ermit

  Alt 14. Mai 2005, 12:19
So müsste ich alle idFTP-Komponenten durchgehen und prüfen, ob das der best. ist. Diese Methode gefällt mir nicht^^
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

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

Re: indy ftp: dazugehörige idFTP-Komponente aus OnWork ermit

  Alt 14. Mai 2005, 12:27
Schreib' dir eine kleine Funktion, die deine IdFtps durchgeht, und den richtigen zurückliefert ...

In etwa:
Delphi-Quellcode:
function GetIdFtp (const Vorfahr: TObject): TIdFtp;
begin
for <Alle IdFtps> do
  if <IdFtp>.Name = Vorfahr.Name then
  begin
    Result := <IdFtp>;
    Break;
  end;
end;
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#7

Re: indy ftp: dazugehörige idFTP-Komponente aus OnWork ermit

  Alt 14. Mai 2005, 14:15
Das Problem ist, dass ich die ganzen idFTPs lokal erstellt habe und nicht global daraufzugreifen kann. Das beste wäre, wenn ich dem OnWork usw. Event einen weiteren Parameter übertragen könnte. Ich weiß aber nicht, ob das erstens geht und zweitens wenn es gehen würde, wie.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

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

Re: indy ftp: dazugehörige idFTP-Komponente aus OnWork ermit

  Alt 14. Mai 2005, 14:18
Du könntest natürlich auch eine neue TIdFtp-Komo ableiten, die im Parameter Sender sich selbst einträgt, statt TIdTCPConnection
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#9

Re: indy ftp: dazugehörige idFTP-Komponente aus OnWork ermit

  Alt 14. Mai 2005, 14:24
Würde ich ja gern, nur wie geht das?^^
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

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

Re: indy ftp: dazugehörige idFTP-Komponente aus OnWork ermit

  Alt 14. Mai 2005, 14:56
Für das OnWork-Event müsste das so gehen:
Delphi-Quellcode:
  TMyFtp = class (TIdFtp)
    procedure DoWork(AWorkMode: TWorkMode; const ACount: Integer); override;
  end;

implementation

{ TMyFtp }

procedure TMyFtp.DoWork(AWorkMode: TWorkMode; const ACount: Integer);
begin
  if FWorkInfos[AWorkMode].Level > 0 then begin
    Inc(FWorkInfos[AWorkMode].Current, ACount);
    if assigned(OnWork) then begin
      OnWork(Self, AWorkMode, FWorkInfos[AWorkMode].Current);
    end;
  end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:33 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