Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Probleme beim Ableiten von TIdIRC (https://www.delphipraxis.net/24025-probleme-beim-ableiten-von-tidirc.html)

Jörn 14. Jun 2004 13:37


Probleme beim Ableiten von TIdIRC
 
Ich habe folgenden Code (klar quick'n'dirty, kein Fehlerhandling usw):

Delphi-Quellcode:
unit u_ircbot;

interface

uses Classes, IdIRC;

type
  TIdIRCBot = class(TIdIRC)
  private
    procedure Test(Sender: TObject; AUser: TIdIRCUser;
      AChannel: TIdIRCChannel; Content: String);
  public
    constructor create(AOwner: TComponent); override;
  end;

implementation

constructor TIdIRCBot.create(AOwner: TComponent);
begin
  inherited;
  @Self.OnMessage := @Test(Sender, AUser, AChannel, Content); //hier gibt es Fehler, s. u.
  Self.Nick := 'Bot';
  Self.Name := 'Bot';
  Self.Host := 'irc.euirc.net';
  Self.Connect();
  Self.Join('#test_bot');

end;

procedure TIdIRCBot.Test(Sender: TObject; AUser: TIdIRCUser;
  AChannel: TIdIRCChannel; Content: String);
begin
  Self.Say(AUser.Nick, 'Hallo, ' + AUser.Nick);
end;

end.
Die Fehler sind:
[Error] u_idircbot.pas(21): Undeclared identifier: 'Sender'
[Error] u_idircbot.pas(21): Undeclared identifier: 'AChannel'
[Error] u_idircbot.pas(21): Variable required

Könnt ihr mir da helfen? Vielen Dank schon mal!

EDIT: Unit-Namen richtiggestellt...

Die Muhkuh 14. Jun 2004 14:07

Re: Probleme beim Ableiten von TIdIRC
 
Hi Jörn,

ich denke nicht das es an diese Unit liegt die du uns da zeigst. Die Unit heißt ja u_ircbot, aber die Fehler tauchen in Unit 2 auf. Vielleicht solltest du dort nach den Fehlern suchen :zwinker:


*MFG*

Jörn 14. Jun 2004 14:09

Re: Probleme beim Ableiten von TIdIRC
 
Hiess ursprünglich auch unit2, hatte zwischendurch abgespeichert... sorry.

Smokey 14. Jun 2004 14:29

Re: Probleme beim Ableiten von TIdIRC
 
grmbl, diese Fehler mit Undeclared Identifier könnten mich jedesmal aufregen.
Liegt bei 99% der Fälle daran, das Copy&Paste benutzt wird, aber man keine Ahnung hat was da passiert.

Aber muss ja bei dir nicht so sein. Der fehler liegt daran, dass die Parameter die du übergibst in der Funktion

Code:
@Self.OnMessage := @Test(Sender, AUser, AChannel, Content);
nirgendwo deklariert sind. Und Delphi ist leider noch nicht soweit, dass es richtige Variablen erfindet die man so braucht, wenn sie nicht deklariert sind 8)

Die Muhkuh 14. Jun 2004 14:29

Re: Probleme beim Ableiten von TIdIRC
 
Hi Jörn,

ich hab jetzt mal nachgebildet was du das aufgebaut hast und bei mir kam kein Fehler. Welche Indyversion / Delphiversion verwendest du? Ich habs getestet mit Indy 9 und D7 Pro.

Jörn 14. Jun 2004 14:52

Re: Probleme beim Ableiten von TIdIRC
 
Indy 9.0.14 und Delphi 6 PE verwende ich. Die Parameter an sich sollten passen. :grübel:
Genau die werden beim OnMessage in der VCL angegeben.

Jörn 16. Jun 2004 16:47

Re: Probleme beim Ableiten von TIdIRC
 
Kann mir den keiner helfen *zweifel*
Ich muss ja nur einen Weg finden, den Inhalt der Variablen von OnMessage zu bekommen, um damit meine Prozedur aufzurufen. Hat jemand zumindest einen Ansatz der über meinen hinaus geht?

shmia 16. Jun 2004 17:02

Re: Probleme beim Ableiten von TIdIRC
 
Zitat:

Zitat von Jörn
Ich habe folgenden Code (klar quick'n'dirty, kein Fehlerhandling usw):

Delphi-Quellcode:
constructor TIdIRCBot.create(AOwner: TComponent);
begin
  inherited;
  @Self.OnMessage := @Test(Sender, AUser, AChannel, Content); //hier gibt es Fehler, s. u.

So ist's richtig (Eigentlich total easy :stupid: ):
Delphi-Quellcode:
  Self.OnMessage := Test; // Eventhandler wird zur Laufzeit zugewiesen
Die Parameter deiner Methode Test müssen natürlich exaktamente mit dem Parametern von
TIdIRC.OnMessage übereinstimmen.

Jörn 16. Jun 2004 18:03

Re: Probleme beim Ableiten von TIdIRC
 
Tatsache! Ich fass es nicht. Vielen Dank!!

mr. Eof 5. Sep 2006 17:48

Re: Probleme beim Ableiten von TIdIRC
 
Hello!

I'm sorry, I do not understand Dutch language, but this question is VERY important for me..
Can anybody tell me, what is result? What was wrong at Sprache's code???
What is a true code of the IRC Client (using TidIRC) ???

Thank you!


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:01 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