CLIENT IRC (TEST) UTILISANT LE COMPOSANT IRC

LefortLudovic Messages postés 7 Date d'inscription dimanche 9 juin 2002 Statut Membre Dernière intervention 9 décembre 2005 - 14 août 2002 à 19:48
makxim Messages postés 5 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 2 septembre 2011 - 2 sept. 2011 à 20:09
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/12046-client-irc-test-utilisant-le-composant-irc

makxim Messages postés 5 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 2 septembre 2011
2 sept. 2011 à 20:09
comment installer le composant TIRC ? je ne sais pas il provient de quelle librairie ! pouvez vous me dire qu'elle installer ?
Globox60 Messages postés 17 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 10 février 2007
15 juin 2006 à 18:17
Bonjour, j ai vu que les composant Indy sont directement sur builder 6.Mais le pb est que je trouve bien le composant serveur IRC mais pas le client. Comment est ce que je pe faire ???
Merci d avance
Globox60 Messages postés 17 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 10 février 2007
15 juin 2006 à 18:17
Bonjour, j ai vu que les composant Indy sont directement sur builder 6.Mais le pb est que je trouve bien le composant serveur IRC mais pas le client. Comment est ce que je pe faire ???
Merci d avance
Globox60 Messages postés 17 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 10 février 2007
15 juin 2006 à 18:17
Bonjour, j ai vu que les composant Indy sont directement sur builder 6.Mais le pb est que je trouve bien le composant serveur IRC mais pas le client. Comment est ce que je pe faire ???
Merci d avance
coussimac Messages postés 38 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 4 juillet 2017
1 déc. 2005 à 00:44
up
coussimac Messages postés 38 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 4 juillet 2017
24 nov. 2005 à 18:38
oui tu a raison je vais le faire de suite ...
je compte sur toi pour me suivre dans le new topic :)
taye78 Messages postés 106 Date d'inscription mardi 18 juin 2002 Statut Membre Dernière intervention 13 janvier 2007
24 nov. 2005 à 11:58
On déborde du sujet. Tes questions devraient être posées sur le forum dans un nouveau topic et non pas dans le code source d'un composant IRC concurrent. Qu'en penses-tu
coussimac Messages postés 38 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 4 juillet 2017
24 nov. 2005 à 05:38
c'est pas possible d'éditer nos post ? :/
je m'étais mal exprimé plus haut

en faite ce que je veux c'est récupérer le texte que me renvois une personne du chan

l'évènement onmessage récupère le texte du général et aussi celui des conversations privés

or j'aimerais récupérer le texte du général dans une variable et le texte des message privé dans une autre (selon le pseudo)

une question que je risque de posé plustard donc autant posé mainetant c'est récupérer la liste des utilisateurs présents sur le chan
coussimac Messages postés 38 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 4 juillet 2017
24 nov. 2005 à 05:04
g trouvé merci :)
coussimac Messages postés 38 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 4 juillet 2017
23 nov. 2005 à 20:51
nikel aussi ça marche ! merci beaucoup !

une dernière chose : j'aimerais faire comme sur msn plus, c'est à dire quand je suis pas là, lorsque quelqu'un tape mon pseudo (dans le général du chan) et bien un message apparait pour dire "je suis abs"

genre si mon pseudo c'est "moi", si "moi" est tapé dans le général, automatiquement je répondrais "je suis abs"

merci encore :)
taye78 Messages postés 106 Date d'inscription mardi 18 juin 2002 Statut Membre Dernière intervention 13 janvier 2007
23 nov. 2005 à 18:36
pas oblige de mettre le pass dans Chan quand tu passes la variable Chan à idIRC1.Say vu que tu t'es déjà identifiés a l'entrée du salon en passant le pass en argument dans le JOIN
coussimac Messages postés 38 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 4 juillet 2017
23 nov. 2005 à 18:31
Sylvainlefou tu n'as pas compris ma question, le chan j'y suis déjà grace au code d'auto join que tu m'a filé, biensur ma variable chan contient le chan + le pass du genre '#delphi pass'

le problème est maintenant comment parler ... sur un chan sans pass je parle grace à : idIRC1.Say(chan,edit1.text); // biensur la variable chan = à '#delphi'

mais lorsqu'il y a un pass, quand je parle le pass s'affiche dnas mon message :s
biensur la variable chan contient '#delphi pass'

donc il me faut réussir à parler sans afficher le pass du chan à chaque phrase que je tape :s
Sylvainlefou Messages postés 43 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 15 février 2006
23 nov. 2005 à 11:52
IdIRC1.Join('#delphi', pass); ou IdIRC1.Join('#delphi ' + pass);
Sinon tu ne join pas le chan.
coussimac Messages postés 38 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 4 juillet 2017
22 nov. 2005 à 23:19
ha ça fonctionne thx !!!

autre chose : pour parler je fait :

idIRC1.Say(chan,edit1.text);

chan est la variable qui contient le chan ou je me trouve et edit1.text est la zone de saisie du texte que j'envois

ça fonctionne quand le chan n'a pas de mot de passe, mais lorsqu'il est protégé par mot de pass il y a un prob : le passe s'affiche dnas mon message (au début) :s

comment empécher celà ?
Sylvainlefou Messages postés 43 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 15 février 2006
22 nov. 2005 à 07:47
procedure TForm1.IdIRC1System(Sender: TObject; AUser: TIdIRCUser;
ACmdCode: Integer; ACommand, AContent: String);
begin
if ACmdCode= 1 then IdIRC1.Join('#delphi');
end;

Les seules variables qu'il faut analyser sont AUser, ACmdCode, ACommand et AContent qui contiennent les informations propres a chaque appel de la fonction 'IdIRC1System'.
Le lien vers les protocols fonctionne toujours.
Attention aux noms des channels, ils commencent par un #, en regle générale.
coussimac Messages postés 38 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 4 juillet 2017
21 nov. 2005 à 23:28
up ?
coussimac Messages postés 38 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 4 juillet 2017
21 nov. 2005 à 02:30
tu penses que je n'ai pas bien expliqué ? relit mes 1er postes, tu as du les zapper
taye78 Messages postés 106 Date d'inscription mardi 18 juin 2002 Statut Membre Dernière intervention 13 janvier 2007
20 nov. 2005 à 18:12
peut-être que si t'expliquais clairement ton problème on pourrait t'aider
coussimac Messages postés 38 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 4 juillet 2017
19 nov. 2005 à 21:01
alors personne ?
coussimac Messages postés 38 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 4 juillet 2017
19 nov. 2005 à 05:47
jai essayé tout les évènement et ça n'a pas l'air de focntionner :/
de plus le lien est down on dirait :s

procedure TForm1.IdIRC1System(Sender: TObject; AUser: TIdIRCUser;
ACmdCode: Integer; ACommand, AContent: String);
var
numero : integer;
begin
if numero = 1 then IdIRC1.Join('delphi');
end;
Sylvainlefou Messages postés 43 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 15 février 2006
1 nov. 2005 à 14:31
Le protocole IRC est basé sur une liste de numéros, ayant chacun une signifiquation, voici une liste : http://www.alien.net.au/irc/irc2numerics.html

Le composant IdIRC les gere trés bien et ils sont récuperables dans l'evenement OnSystem (ou un truc dans le genre).

Par exemple, pour auto-join un chan, tu le fait lors de l'evenement n° 1 ("welcome").

if numero = 1 then IdIRC.Join(chan);
Ici, un "case" est plus approprié
coussimac Messages postés 38 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 4 juillet 2017
1 nov. 2005 à 01:08
jai réussis à joindre un chan, j'avais jsute oublier le #

mais j'arrive à le joindre qu'en clickant sur un boutton
jaimerais bien le joindre à la conexion au server

1/ comment joindre un chan à la conexion au server ?

procedure TForm1.IdIRC1Connect(Sender: TObject);
begin
idIRC1.Join(chan);
end;


ne fonctionne pas


mais si je met le code dans un boutton ça fonctionne, c'est trop bizard

procedure TForm1.Button2Click(Sender: TObject);
begin
idIRC1.Join(chan);
end;


je suis sur d'être connecté car dans le même évènement onconect j'ai mis un messagebox pour tester et je le recevait

donc question : pourquoi suije obliger de clicker sur le boutton ? (même en simulant le clik, ça ne fonctionne pas; je suis obliger de clicker avec ma souris)
coussimac Messages postés 38 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 4 juillet 2017
31 oct. 2005 à 23:31
j'ai trouvé merci, ais j'aimerais un coup de main pour déjà me conecter à un chan

ou alors s'il y a une source qui utilise ce compo ce serait génial

je ne comprends pas, ça devrait fonctionner :

IdIRC1.Nick := 'testtttst';
IdIRC1.Host := 'irc.betas-online.com';
IdIRC1.Port := 6667;
IdIRC1.Connect(-1);
IdIRC1.Join('delphi');

procedure TForm1.IdIRC1Connected(Sender: TObject);
begin
showmessage('conected');
IdIRC1.Join('delphi');
end;

jai bien le message conected mais le client ne joint jamais le chan delphi :/
Sylvainlefou Messages postés 43 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 15 février 2006
31 oct. 2005 à 19:01
Sur certaines versions de Delphi7 (toutes peutetre), les composants indy (version 8 je croi) sont installés d'origine, dont le client IRC (Onglet "Indy Clients" > "IdIrc").
Sinon vas faire un tour sur www.developpez.com, il y a des tutoriaux qui expliquent comment installer des commposants, et peutetre méme specifiquement ceux d' Indy.
Bonne prog à tous !
coussimac Messages postés 38 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 4 juillet 2017
31 oct. 2005 à 18:29
le compo indy se trouve dans quel onglet ? :/ parce que je n'ai pas trouvé, il s'appel idirc non ?

en même temps s'il y a une source ça m'interesse :)
Sylvainlefou Messages postés 43 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 15 février 2006
31 oct. 2005 à 17:37
Indy propose également un trés bon composant client IRC, pratique et gratuit : http://www.indyproject.org/ il fait partie des composants Indy.Sockets et existe en versions multiples (Delphi, Borland C++ ....)
C'est un compasant à essayer si vous cherchez un client IRC !
taye78 Messages postés 106 Date d'inscription mardi 18 juin 2002 Statut Membre Dernière intervention 13 janvier 2007
31 oct. 2005 à 15:45
coussimac regarde dans les sources de ZED, il est l'auteur d'un composant IRC très interessant.
coussimac Messages postés 38 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 4 juillet 2017
31 oct. 2005 à 06:09
salut

je lis "utilisant le composant IRC qui apparait sur cette page même" mais je n'ai pas trouvé de compo irc ici, qqun peut me donner un lien svp ?

j'ai testé avant d'arriver ici plusieurs compo irc mais aucun ne semble être compatible avec mon delphi 7

en lisant le fichier pas d'un d'entre eux j'ai trouvé un qui était bon, mais compatible a delphi 3 et 4 seulement :(
taye78 Messages postés 106 Date d'inscription mardi 18 juin 2002 Statut Membre Dernière intervention 13 janvier 2007
28 nov. 2004 à 18:28
Sylvainlefou: irc1.raw('WHOIS ' + pseudo);
Sylvainlefou Messages postés 43 Date d'inscription vendredi 27 décembre 2002 Statut Membre Dernière intervention 15 février 2006
14 oct. 2004 à 21:15
Super cette source !
Just un ptite question : comment fair un whois ?!?
Merci bonne prog
cs_alde Messages postés 2 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 28 mars 2004
28 mars 2004 à 17:30
Composant interressant :) Je pense que c'est le plus abouti que j'ai trouvé sur le web :)

Cependant il manque un petit truc... Si le nick est deja utilisé il n'a pas été prevu de altnick dans ton projet. J'ai rectifié cela.

Voici le code ajouté :

ajout
constante ERR_NICKNAMEINUSE = '433';
variable FAltNick: String;
procedure SetAltNick(const Value: String);
property AltNick: String read FAltNick write SetAltNick;


procedure TIRC.SetAltNick(const Value: String);
begin
FAltNick := Value;
end;


puis dans la procedure generateevents ajout d'un test

if IsNum(P[2]) then
begin
if SameText(FNick, P[3]) then
if P[2] = '302' then if P[4] <> '' then FIRCAddress := GetIRCAddr(P[4]);
if P[2] = ERR_NICKNAMEINUSE then SetNick(FAltNick); <== ICI

Alde.
cs_alde Messages postés 2 Date d'inscription jeudi 23 octobre 2003 Statut Membre Dernière intervention 28 mars 2004
28 mars 2004 à 17:30
Composant interressant :) Je pense que c'est le plus abouti que j'ai trouvé sur le web :)

Cependant il manque un petit truc... Si le nick est deja utilisé il n'a pas été prevu de altnick dans ton projet. J'ai rectifié cela.

Voici le code ajouté :

ajout
constante ERR_NICKNAMEINUSE = '433';
variable FAltNick: String;
procedure SetAltNick(const Value: String);
property AltNick: String read FAltNick write SetAltNick;


procedure TIRC.SetAltNick(const Value: String);
begin
FAltNick := Value;
end;


puis dans la procedure generateevents ajout d'un test

if IsNum(P[2]) then
begin
if SameText(FNick, P[3]) then
if P[2] = '302' then if P[4] <> '' then FIRCAddress := GetIRCAddr(P[4]);
if P[2] = ERR_NICKNAMEINUSE then SetNick(FAltNick); <== ICI

Alde.
condor33 Messages postés 1 Date d'inscription dimanche 29 septembre 2002 Statut Membre Dernière intervention 16 novembre 2002
16 nov. 2002 à 17:42
Merci pour faire partager vos source. Ils m'ont bien aidé pour réaliser un client Chat.
Petite question tout de même, le protocol utilisé pour les DCC est le FTP ? et un composent classique ftp ferait l'affaire?

Amicalement
cs_ZED Messages postés 57 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 16 décembre 2005
26 août 2002 à 02:30
Le MOTD est recuperable ds l'evennement RAW.
il correspond au numeric 372. la fin du motd correspond au numerique 376.
pour les autres numeriques il faut chercher la page officielle des serveurs Undernet, DALnet, EFnet. Il y a plein de choses à voir.
Bonne programmation !
LefortLudovic Messages postés 7 Date d'inscription dimanche 9 juin 2002 Statut Membre Dernière intervention 9 décembre 2005
14 août 2002 à 19:48
Dommage que ton code n'est pas expliqué ...
Quelques remarques aurait été apprecié par les débutant ...

Peut eu en quelque mot me donné les ligne utile a se connecté a un serveur et a récuperer le MOTD

Merci d'avance +++
cs_ZED Messages postés 57 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 16 décembre 2005
17 juil. 2002 à 23:17
Mtn Ya ! lol
fabiin Messages postés 329 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 8 décembre 2009 6
16 juil. 2002 à 12:01
sauf ke y'a pas de zip :)
Rejoignez-nous