Club Delphi  
    FTP   CCD     Enlaces   Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Desplegado
  #1  
Antiguo 04-05-2012
orlando9427 orlando9427 is offline
Registrado
 
Registrado: nov 2010
Posts: 8
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
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


Herramientas
Desplegado

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 22:43:31
NMFTP :Error 10038 Socket operation on non socket judit Internet 2 25-05-2006 09:06:33
Invalid pointer con DLL brandolin Varios 2 07-06-2005 04:53:14
ADOTable y Record Pointer Carlex Conexión con bases de datos 3 19-08-2004 09:37:03
¿Cómo usar un Pointer? fjolivares Varios 4 31-03-2004 18:13:57


La franja horaria es GMT +2. Ahora son las 21:00:17.


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