Ver Mensaje Individual
  #9  
Antiguo 20-05-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Vamos a ver...
Me da, que el problema es que no estás entendiendo lo que escribes, de ahí que tampoco entiendes lo que te digo (y lo que te dice maeyanes):

Código Delphi [-]
 (ListItem.SubItems.Objects[ID_Obj] as ObjForm).OnRead(CSokcet, DataSocket);
Analicemos esta línea por partes.

(1) Cuando colocas algo como esto:
(ListItem.SubItems.Objects[ID_Obj] as ObjForm)

Lo que estás diciendo aquí es que Delphi trate el primer objeto (ListItem.SubItems.Objects[ID_Obj]) como si fuera un objeto de la clase del segundo elemento (ObjForm).

Eso supone que lo primero es un objeto y lo segundo es una clase.
En este caso lo que falla es que tu segundo elemento debe ser una Clase (tal y como te ha dicho maeyanes) y que además el objeto almacenado debe ser del tipo de la segunda clase (de otra forma dará error).

Suponiendo que ese "CAST" (que así se llama) fuera correcto, sintácticamente debería ser equivalente a usar una variable del tipo del que estamos haciendo el CAST.

(2) En tu caso ObjForm es de la clase TForm, así que sintácticamente es equivalente a escribir esto.

Código Delphi [-]
form1.OnRead(CSokcet, DataSocket);

Esto te va a dar error, ya que la clase TForm no posee ningun método OnRead. Y no sólo por el nombre, sino por los parámetros. No hay ningun método en TForm (con ese nombre o con el nombre pepito que cuadre con esos parámetros).

Curiosamente (y por eso mi sugerencia de los sockets) sí hay un método/evento llamado OnRead y con unos parámetros similares en la clase TCustomSocket.

Código Delphi [-]
property OnRead: TSocketNotifyEvent;
type TSocketNotifyEvent = procedure (Sender: TObject; Socket: TCustomWinSocket) of object;

De ahí que supuse que esa línea estaba levantando el evento OnRead de los sockets almacenados en la lista.
Tal vez si ampliaras el código y dijeras lo que hace o de donde lo has sacado podríamos entenderlo mejor.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita