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

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-05-2012
orlando9427 orlando9427 is offline
Registrado
NULL
 
Registrado: nov 2010
Posts: 8
Poder: 0
orlando9427 Va por buen camino
Socket, ListItem y Pointer

Estaba haciendo un server para actualización de archivos para un grupo de trabajo, tengo el server y el cliente.
Las conexiones se listan en un ListView dentro de la propiedad Data del Socket guardo un puntero a el Item agregado y viceversa (en la variable Data de ListItem guardo el puntero al Socket), mi problema surge cuando necesito borrar el item de la lista. Les dejo el codigo.

Código:
procedure TfrmMain.sockMainClientError(Sender: TObject;
    Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
    var ErrorCode: Integer);
begin
    TListItem(Socket.Data).Delete;
    lvConnection.Update;
    ErrorCode := 0;
    //TListItem(Socket.Data).Update;
end;

procedure TfrmMain.sockMainClientRead(Sender: TObject; Socket: TCustomWinSocket);
var sTemp: String;
    asSplit: AString;
        liSubItem: TListItem;
begin
sTemp := Socket.ReceiveText;
asSplit := uFunction.Split(sTemp, '|');
if asSplit[0] = 'START' then begin
    liSubItem := lvConnection.Items.Add;
    Socket.Data := @liSubItem;
    liSubItem.Data := @Socket;
end;
end;
Cuando se obtiene un error o se desconecta lo debería eliminar de la lista pero no lo hace, estuve buscando pero no encontre mucho, intente con el operador "^" y nada incluso con Destroy y Free, pero me devuelve un EAccess Violation

Saludos!
Responder Con Cita
  #2  
Antiguo 08-05-2012
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 18
juanlaplata Va por buen camino
Mira, estoy en algo parecido, pero nada implementado, por ahora solo investigando.
Y por lo q voy viendo, "entendiendo" la lista de "conectados" estaria en sockMain.Connections .
De esta manera solo te quedaria traducir quien es quien.
Pero, como dije antes, estoy entrando en el tema, asi q mejor seguir buscando y ademas esperar la ayuda de los q saben.
Saludos
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
QR - Invalid Pointer Operation alapaco OOP 6 07-06-2006 23:43:31
NMFTP :Error 10038 Socket operation on non socket judit Internet 2 25-05-2006 10:06:33
Invalid pointer con DLL brandolin Varios 2 07-06-2005 05:53:14
ADOTable y Record Pointer Carlex Conexión con bases de datos 3 19-08-2004 10:37:03
¿Cómo usar un Pointer? fjolivares Varios 4 31-03-2004 19:13:57


La franja horaria es GMT +2. Ahora son las 01:10:39.


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