Lo que veo un poquito raro es este codigo:
Código Delphi
[-]
Client.Thread := AThread;
En el uso normal de objetos, en realidad estas asignando punteros, no estas creando el objeto TIdPeerThread. Yo lo haría así:
Código Delphi
[-]
client.Thread := TidPeerThread.Create(AThread.Suspended);
Client.Thread.Assign(AThread);
El constructor de un objeto TidPeerThread necesita de un parametro boolean para crearse, no tengo ni idea del valor que hay que pasarle, así que le paso el valor que tenga AThread en su propiedad Suspended porque me parece intuitivo, pero ojo, no sé si es correcto.
AThread.Data := Client; le pasa exactametne lo mismo. Esto si Funciona, porque en realidad estas guardando la direccion de memoria donde se ha creado TsimpleClient, y al acceder a AThread.Data.Name, en realidad se está accediendo directamente al mismo objeto TsimpleClient.
Cita:
Empezado por Lepe
¿me he pasado 3 pueblos?
|
Puesto que utilizas la lista Clients, no es necesario añadir cada TsimpleClient al listbox.
Un saludo