Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-01-2010
Gean Gean is offline
Miembro
 
Registrado: nov 2009
Posts: 33
Poder: 0
Gean Va por buen camino
No, si eso lo he visto, pero te explico, el componente IdIRC no tiene ese procedimiento, o yo por lo menos no lo veo, como tendria que llamarlo? con RAW?
Responder Con Cita
  #2  
Antiguo 31-01-2010
Avatar de DriverOp
DriverOp DriverOp is offline
Miembro
 
Registrado: ago 2007
Posts: 93
Poder: 17
DriverOp Va por buen camino
Cita:
Empezado por Gean Ver Mensaje
No, si eso lo he visto, pero te explico, el componente IdIRC no tiene ese procedimiento, o yo por lo menos no lo veo, como tendria que llamarlo? con RAW?
Bueno!, vamos progresando, primera vez que mencionas que estás usando un idIRC. Veamos...

Leo la ayuda del componente en cuestión y encuentro un método llamado ListChannelNicknames y un evento llamado OnNicknamesListReceived y me pregunto si tendrá algo que ver con tu problema .
Responder Con Cita
  #3  
Antiguo 31-01-2010
Gean Gean is offline
Miembro
 
Registrado: nov 2009
Posts: 33
Poder: 0
Gean Va por buen camino
sii, tengo puesto esto:
Código Delphi [-]
procedure TForm2.IdIRC1NicknamesListReceived(ASender: TIdContext;
  const AChannel: string; ANicknameList: TStrings);
var
  i:integer;
begin
Usuarios.Items.Add('Nicknames in Channel: '+AChannel);
for i:= 0 to ANicknameList.Count-1 do begin
Usuarios.Items.add(ANicknameList.Strings[i]);
end;
end;
pero lo que me devuelve esto asi:
minick
minick = nombredelcanal: minick nick1 nick2...

como podria listar solamente minick en una linea
nick1 en otra linea
nick2 en otra linea...
es eso lo k kiero, si no puede ser en un listbox, en un memo
Responder Con Cita
  #4  
Antiguo 31-01-2010
Avatar de DriverOp
DriverOp DriverOp is offline
Miembro
 
Registrado: ago 2007
Posts: 93
Poder: 17
DriverOp Va por buen camino
Hombre... La lista ya está en un TStrings, entonces si la quieres en un TMemo basta con hacer:

Código Delphi [-]
Memo1.Lines.AddStrings(ANicknameList);

y listo .
Responder Con Cita
  #5  
Antiguo 31-01-2010
Gean Gean is offline
Miembro
 
Registrado: nov 2009
Posts: 33
Poder: 0
Gean Va por buen camino
claro, pero con ese codigo me devuelve lo que te he puesto en el mensaje anterior, lo que me gustaria es que se quedasen en lineas distintas en un memo, o preferiblemente en items diferentes en un list Box
Responder Con Cita
  #6  
Antiguo 31-01-2010
Avatar de DriverOp
DriverOp DriverOp is offline
Miembro
 
Registrado: ago 2007
Posts: 93
Poder: 17
DriverOp Va por buen camino
Cita:
Empezado por Gean Ver Mensaje
claro, pero con ese codigo me devuelve lo que te he puesto en el mensaje anterior, lo que me gustaria es que se quedasen en lineas distintas en un memo, o preferiblemente en items diferentes en un list Box
Ah, comprendo, parece que ANicknameList devuelve todos los nicks de un canal en una línea y en la siguiente línea los de otro canal y así sucesivamente.

Pues habrá que parsear el string donde están los nicks que te interesan, digo yo. Me parece extraño pero no tengo Indy10 para probar lo que dices. Como sea, este código te puede ayudar a parsear la cadena que tiene los nicks:

Código Delphi [-]
function GetToken(Cadena:string; Separador:char; Token:integer):string;
var
   Posicion:integer;
begin
     while Token > 1 do begin
       Delete(Cadena,1,Pos(Separador,Cadena));
       Dec(Token);
     end;
     Posicion:=Pos(Separador,Cadena);
     if Posicion=0 then
       Result:=cadena
     else
       Result:=Copy(Cadena,1,Posicion-Length(Separador));
end;

function GetTokenCount(Cadena:string; Separador:char):integer;
var
   Posicion:integer;
begin
  Posicion:=Pos(Separador,Cadena);
  Result:=1;
  if Cadena <> '' then
    begin
      if Posicion <> 0 then
        begin
        while Posicion <> 0 do
          begin
            Delete(Cadena,1,Posicion);
            Posicion:=Pos(Separador,Cadena);
            Inc(Result);
          end; // while
      end; // if
  end // if
    else Result:=0;
end;

procedure TForm2.IdIRC1NicknamesListReceived(ASender: TIdContext;
  const AChannel: string; ANicknameList: TStrings);
var
  Str: string;
  n: integer;
begin
  Str:=ANicknameList.Strings[1]; { Según el código es el string en la posición 1 el que te interesa }
  for n:=1 to GetTokenCount(Str,' ') do
    Memo1.Lines.Append(GetToken(Str,' ',n));
end;
En el TMemo obtendrás algo más que los nicks pero supongo que sabrás qué hacer con el resto.
Responder Con Cita
  #7  
Antiguo 31-01-2010
Gean Gean is offline
Miembro
 
Registrado: nov 2009
Posts: 33
Poder: 0
Gean Va por buen camino
=( muxas gracias por la paciencia k tienes conmigo, pero probando con ese codigo solo me sale mi nick... dejalo ya si kieres, haber si encuentro algo yo... :S
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema FTP Server con Indy jusnjosesch Internet 1 24-07-2008 03:05:02
Problema con indy y cadena con & sabato48 Internet 0 14-12-2007 00:00:33
Problema con indy 10 JULIPO Internet 0 04-11-2006 08:49:46
Problema con Thread e Indy diegofhernando Varios 3 30-03-2005 22:20:24
Que problema con las INDY!!!!! diegofhernando Internet 6 13-11-2003 20:13:37


La franja horaria es GMT +2. Ahora son las 21:57:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi