Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wer ruft die event-Procedure auf? (https://www.delphipraxis.net/76817-wer-ruft-die-event-procedure-auf.html)

mr47 10. Sep 2006 15:48


Wer ruft die event-Procedure auf?
 
Hi!

Ich machs gleich ganz praktisch: Ich hab ein Array mit mehreren Irc-Clients (TIdIrc). Beim erzeugen jedes TIdIRCs setze ich OnRaw auf meine selbst geschriebene IRCOnRaw:

Delphi-Quellcode:
procedure Twindow_main.IRCRaw(Sender: TObject; AUser: TIdIRCUser;
  ACommand, AContent: String; var Suppress: Boolean);
begin
  memo1.Lines.Add(AContent);
end;


{.......}

ircConnections[i].onRaw := IrcRaw;
Das funktioniert auch wunderbar. Nur jetzt hab ich zwei fragen:

1. Wie kann ich feststellen (in IRCRaw) wer die Procedure gerade aufgerufen hat. (Also welches Element aus dem Array, welches TIdIrc).
2. Was wenn zwei TidIRCs gleichzeitig dieses OnRaw auslösen. Gibt's dann ne AV?

danke und gruß

mr47

mkinzler 10. Sep 2006 16:00

Re: Wer ruft die event-Procedure auf?
 
Zitat:

1. Wie kann ich feststellen (in IRCRaw) wer die Procedure gerade aufgerufen hat. (Also welches Element aus dem Array, welches TIdIrc).
Das aufrufende Objekt erhälst du im Parameter Sender.
Zitat:

2. Was wenn zwei TidIRCs gleichzeitig dieses OnRaw auslösen. Gibt's dann ne AV?
Nein,, die Methode wird 2 Mal aufgerufen.

danke und gruß

mr47 10. Sep 2006 16:07

Re: Wer ruft die event-Procedure auf?
 
Zitat:

Zitat von mkinzler
Das aufrufende Objekt erhälst du im Parameter Sender.

Ja theoretisch wusste ich das auch :wink: . Aber ich kann jetzt nicht ohne weiteres die Position im Array feststellen, oder?


Zitat:

Zitat von mkinzler
Nein,, die Methode wird 2 Mal aufgerufen.

Okay, gut.

gruß und danke

mr47

mkinzler 10. Sep 2006 16:09

Re: Wer ruft die event-Procedure auf?
 
Zitat:

Ja theoretisch wusste ich das auch Wink . Aber ich kann jetzt nicht ohne weiteres die Position im Array feststellen, oder?
Du könntest den array durchlaufen und die Objekte vergleichen oder du verwendest zum Beispiel die Eigenschaft .Tag der Kompos um die Position im array darin abzulegen.

mr47 10. Sep 2006 17:00

Re: Wer ruft die event-Procedure auf?
 
Zitat:

Zitat von mkinzler
Zitat:

Ja theoretisch wusste ich das auch Wink . Aber ich kann jetzt nicht ohne weiteres die Position im Array feststellen, oder?
Du könntest den array durchlaufen und die Objekte vergleichen oder du verwendest zum Beispiel die Eigenschaft .Tag der Kompos um die Position im array darin abzulegen.

Gut danke, aber wie komme ich nachher wieder an .tag ran? Denn Sender.tag gibt es nicht.....

3_of_8 10. Sep 2006 17:01

Re: Wer ruft die event-Procedure auf?
 
Delphi-Quellcode:
(Sender as TComponent).Tag

mr47 10. Sep 2006 17:42

Re: Wer ruft die event-Procedure auf?
 
Und ich dachte immer ich beherrsche Delphi. :roll:

Super vielen Dank! :-)

gruß mr47

3_of_8 10. Sep 2006 17:42

Re: Wer ruft die event-Procedure auf?
 
Niemand beherrscht Delphi. ;)

Muetze1 10. Sep 2006 17:59

Re: Wer ruft die event-Procedure auf?
 
Zitat:

Zitat von mkinzler
Zitat:

Ja theoretisch wusste ich das auch Wink . Aber ich kann jetzt nicht ohne weiteres die Position im Array feststellen, oder?
Du könntest den array durchlaufen und die Objekte vergleichen oder du verwendest zum Beispiel die Eigenschaft .Tag der Kompos um die Position im array darin abzulegen.

Das hat aber den Nachteil, dass er alle Tags aktualisieren muss, wenn man ein Element aus dem Array entfernt oder hinzufügt.

mkinzler 10. Sep 2006 18:02

Re: Wer ruft die event-Procedure auf?
 
Zitat:

Das hat aber den Nachteil, dass er alle Tags aktualisieren muss, wenn man ein Element aus dem Array entfernt oder hinzufügt.
Ich weiß ja nicht warum die Position im array so wichtig erscheint. In diesem Fall könnte er ja nicht die Tags ändern, sondern den Array nach dem .Tag des Senders durchsuchen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz