Hola Richy08,
Pues sí, alguna te puedo dar.
Este código puede ser un poco más complicado de seguir al principio, pero creo que el más cómo, una vez lo tengas claro.
1.- Te Creas una nueva clase, para manejar tus componentes:
Código Delphi
[-]type
tmisComponentes=Class(tPersistent)
private
fConexion:TSQLConnection;
fQuery:TDataSet;
Public
destructor Destroy;
property Conexion:TSQLConnection read fConexion write fConexion;
property Query:TDataSet read fQuery write fQuery;
end;
Cambia el tipo de componetes que quieras crear.
2.- Al recibir la conexión en el tcpServer Creamos los componentes:
Código Delphi
[-]procedure TForm1.IdTCPServer1Connect(AThread: TIdPeerThread);
var
MisComponentes:tmisComponentes;
begin
MisComponentes := tmisComponentes.Create;
MisComponentes.Conexion := TSQLConnection.Create(self);
MisComponentes.Query := TDataSet.Create(Self);
AThread.Data := @MisComponentes;
end;
3.- ¿Cómo usarlos?
Código Delphi
[-]procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
MisComponentes:tmisComponentes;
begin
MisComponentes := tmisComponentes(AThread.Data);
MisComponentes.Query ....
end;
4.- Como destruirlos:
Código Delphi
[-]procedure TForm1.IdTCPServer1Disconnect(AThread: TIdPeerThread);
var
MisComponentes:tmisComponentes;
begin
MisComponentes := tmisComponentes(AThread.Data);
MisComponentes.Conexion.Free;
MisComponentes.Query.Free;
...
end;
Básicamente, lo que se haces es "recordar" la dirección de memoria donde están localizados los componentes, utilizando para ello un "puntero" que tiene cada conexión (.data).
Lo he hecho de cabeza y sin compilarlo. Puede ser que me haya equivocado en algo, pero básicamente lo puedes hacer así.
Si encuentra alguna duda, consulta sin problemas.
Un saludo.