Fórum Preciso de uma Solução para o Erro: Invalid Pointer #320189

28/04/2006

0

Pessoal bom dia...
[b:54874ff983]Primeiramente se o título do tópico estiver parecendo apelativo, pesso que algum miderador mude, pois, foi o que achei mais conveniente...[/b:54874ff983]
Estou tentando desenvolver um sistema para lan-house usando componentes da paleta Indy idTCPServer e idTCPClient, o sistema está funcionando quase que perfeitamente, porém vez por outra ele me retorna esse erro quando clico no nome do micro conectado ao servidor, ele funciona mais ou menos assim:
Quando um terminal é iniciado ele e se conecta ao servidor, o servidor guarda em uma lista o nome dessa estação e outras informações como hora da conexão, tempo de uso, Ponteiro e outros...
para enviar algum comando do servidor para o cliente eu simplesmente seleciono a estação com um clique na lista de estações conectadas (listbox pra ser exato) funciona perfeitamente, porém algumas vezes ele me retorna esse erro que mecionei no título (Invalid Pointer) que se não me engano é o endereço da memória no qual a thread está armazenada... minha principal dúvida hoje é: Tem como enviar um comando para a estação usando essa instrução de outra forma?
 
var
  Msg : String;
  SelClient : PClient;
  begin
   if lbClients.ItemIndex <> -1 then
     begin
      try
      SelClient := PClient(Clients.LockList.Items[lbClients.ItemIndex]);
      if SelClient.Ligado then
      TIdPeerThread(SelClient.Thread).Connection.WriteLn(Msg);
      finally
      Clients.UnlockList;
      end;


alguém com esperiência nesse tipo de sistema poderia me dizer como eu faço para enviar um comando para o terminal selecionado o IP ou nome desse terminal, pq nesse caso eu já possuo um cadastro de todos os terminais da lan, e seria só selecionar esse terminal e enviar o comando para esse tipo:
with QyEstacoes do
 begin
  idTcpServer.UmaFormaDeEnviar.NomeDaEstacao.WeriteLn(´Comando´);
 end;

grato a todos pela atenção!


Paullsoftware

Paullsoftware

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar