Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Socket, ListItem y Pointer (https://www.clubdelphi.com/foros/showthread.php?t=78614)

orlando9427 04-05-2012 05:49:29

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!

juanlaplata 08-05-2012 19:04:32

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


La franja horaria es GMT +2. Ahora son las 13:31:41.

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