Ver Mensaje Individual
  #7  
Antiguo 19-05-2010
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Reputación: 24
maeyanes Va por buen camino
Hola...

Dudo mucho que ese código que escribiste funcione como comentas, a menos que ObjForm sea del tipo TFormClass.

Ahora, para que te sirva tu código podrías hacer algo como:

Código Delphi [-]
procedure Sent_DataSocket_Form(CSocket: TCustomWinSocket; ListView:TListView; ID_Obj: Integer;
  DataSocket: string; FormClass: TFormClass);
var
  ID_Item: integer;
  ListItem: TListItem; //Como la X en VB

begin
  ID_Item := GetID_Item_CSocket(CSocket, ListView);
  if ID_Item >= 0 then
  begin
    ListItem := ListView.Items[ID_Item];
    if ListItem.SubItems.Objects[ID_Obj] <> nil then
    begin
      (ListItem.SubItems.Objects[ID_Obj] as FormClass).OnRead(CSocket, taSocket);
      Exit
    end
  end
end;

// Para llamar el procedimiento
Sent_DataSocket_Form(CSocket, ListView, ID_Obj, 'DataSocket', TMyForm);

O también cambiar la línea problemática a algo como:

Código Delphi [-]
if ListItem.SubItems.Objects[ID_Obj] is TMyFormType then
  TMyFormType(ListItem.SubItems.Objects[ID_Obj]).OnRead(CSokcet, DataSocket);

Donde TMyFormType es la clase que contiene el método OnRead definido.


Saludos...
Responder Con Cita