FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Asociar un procedimiento a un objeto TForm???
Hola!!
miren, tengo este code que lo arme, la idea es cojer un formulario X que tenga el procedimiento "OnRead" y ejecutarlo, pero la cosa es que cuando intendo correr el soft me salta error "Operator not applicable to this operand type" en la linea "//Esta Linea" justo en "OnRead". Supongo yo que es por que TForm pos no tiene ese prosedimiento, pero no se como arreglarle, quiero enviarle cualquier Form y me lo acepte. Como lo Resuelvo?
|
#2
|
||||
|
||||
El problema es que si TForm no posee el procedimiento OnRead no va a funcionar hagas lo que hagas.
Parece que lo que tienes almacenados en la lista de Objects son objetos de tipo TForm o TSockets. Estás haciendo el CAST (operador AS) como TForm, pero luego intentas ejecutar un método que pertenece a la clase TCustomSocket. Eso no cuadra. Si realmente son sockets debería ser algo similar a esto. Y si son TForm, no tiene sentido ejecutar el OnRead.
__________________
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. |
#4
|
|||
|
|||
Cita:
Ahora, no hay forma de que Delphi me asocie ese "OnRead" al form que yo le pase sin que me de error? |
#5
|
|||
|
|||
Hola...
¿Si leiste mi mensaje? Ahí te doy una pista del por que tu error... Saludos... |
#6
|
|||
|
|||
mira, realmente no se mucho de esto, solo arme el code comoestaba, pero se que:
(ListItem.SubItems.Objects[ID_Obj] as ObjForm).ProcedimientoNormal funciona perfecto para un procedimiento normal de la clase TForm, pero quiero es saber como hacer para procedimientos agregados. |
#7
|
|||
|
|||
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:
O también cambiar la línea problemática a algo como:
Donde TMyFormType es la clase que contiene el método OnRead definido. Saludos... |
#8
|
|||
|
|||
la cosa es que nesesito que sea algo generico en terminos de Form, por que lo usare en muchos Form.
Ahora: el codigo que me sujeriste me sigue sin funcionar |
#9
|
||||
|
||||
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): 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.
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.
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. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
asociar un Query al Qrep | megaredoxk | Impresión | 2 | 19-12-2007 17:33:38 |
relacionar un procedimiento con un evento de un objeto | aranel | OOP | 3 | 20-10-2005 21:50:36 |
Propiedad tipo Objeto (TForm) | buildero_d | C++ Builder | 1 | 15-09-2005 09:31:16 |
Asociar teclas F | ramonibk | Varios | 3 | 26-11-2004 18:03:53 |
Asociar Icono a un RES | craven | Gráficos | 2 | 17-09-2003 23:44:03 |
|