![]() |
Cómo prescindir del "casting" de tipos
function tform1.obja(cep:string):tobject;
begin obja:=tobject(findcomponent(cep)); end; pero lo que quiero es que la salida de la funcion sea de diferentes tipos por ejemplo topendialog.create(self).name:='xx'; ó tedit.create(self).name:='xx'; que se pueda hacer esto --->obja('xx').filename o estoo obja('xx').text y no esto (obja('xx') as topendialog).filename ó (obja('xx') as tedit).text si me podiran ayudarr porfaaaa!!! como le muevo a la funcion para que haga eso de salidas de difrenetes tiposs:confused::confused::confused: |
Hola, bienvenido, creo que deberías leer la guía de estilo del clubdelphi:)
|
Yo no veo posible hacer lo que pides ya que no puedes devolver un componente específico como resultado cuando entran en juego otros componentes de distinto tipo. Hagas lo que hagas tendrás que utilizar ese método. Otra forma más enrevesada sería realizar diferentes funciones que fuesen específicas a cada tipo de componente, en ese caso sí podrías, pero tendrías que decidir tu que función usar en cada caso.
De todas formas si tanto te urge, porque no explicas el caso desde un punto de vista más anterior, como por ejemplo, el porqué necesitas evitar usar ese método. |
Hola, puedes modificar la funcion usando las TPersistentClass (link). No se bien bien como se haria, pero me da que puede hacerse. Por otra banda, no le encuentro mucho la utilidad :confused:, esto es, con el typecast al tobject te iria de perlas...
|
Tal cual lo tienes, yo también creo que no se puede hacer, aunque tampoco entiendo muy bien a dónde quieres ir a parar.
Utiliza tags cuando añadas código delphi a los mensajes. Un saludo. |
La unica via que veo es usar Generic y/o incorporar un lenguaje de script y evaluar dinamicamente.
Aunque el estilo por si mismo tiene su uso, tanto que en lenguajes dinamicos es la norma, igual que los otros me pregunto que es lo que buscas. |
rectifico, creo que no puede hacerse, a no ser que hagas un monton de overloads y pases antes que clase es como un parametro. O bien que uses olevariants, pues el compilador no revisa sus metodos, aunque ya te puedes imaginar que ese esfuerzo no valdria la pena :rolleyes: saludos.
|
mmm okk graxx ps solo lo keria para simplificar mi codigo =D pero si ya veo ke asi se va a complicarr mass =D ok grax detodos modos
|
No sé, pero si no son muchas clases, con los overloads podrías hacerlo, o ya puesto con funciones:
o hacer una clase que lo englobe todo:
|
| La franja horaria es GMT +2. Ahora son las 15:00:09. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi