Funcion generica para crear varios forms
Tengo varios forms creados y quiero abrirlos con una funcion generica ubicada en una unit que cree para colocar todos los procedimientos genericos que utilizan los forms en mi aplicacion pero por alguna razon que desconosco la funcion me da un error cuando la ejecuto desde la unit que cree pero si la inserto en un form funciona perfectamente.
Cual puede ser el problema?
Este es el error: Undeclared identifier: 'Self' Uso Delphi 7 Muchas gracias |
|
Cita:
Hola jcarteagaf... disculpa mi ignorancia... pero para que sirve esta función (no me digas que es para crear un formulario..... ).... digo tecnicamente que puedo mejorar si lo aplico en un sistema... Salu2:p:D |
Pues a mi me evita el tener que escribir:
Simplemente digo MostrarForma(Tfrmventas); Y si necesito saber si el usuario presiono Ok o Cancelar le digo
Imaginate cuantas lineas me ahorro en una aplicación con muchas formas. Tambien tengo este otro procedimiento que me sirve para aplicaciones MDI:
Crea la forma y la muestra, y si ya existe y permito multiples instancias, la muestra. Saludos. |
Gracias jcarteagaf tu ejemplo me funciona muy bien pero tengo la duda por que de la manera que yo lo hago no funciona?
|
Hola Carlos Arevalo,
No tengo Delphi a mano, pero creo que el error está aquí:
Creo que debería ser así:
Ahora yo me pregunto ¿Y para que el parámetro sender?:confused: No tengo Delphi a mano... pero que va. Saludos, |
Cita:
Este procedimiento no pertenece a ninguna clase, por lo tanto no puedes llamar a Self. No se si me expliqué bien... |
Gracias Neftali.
Me podrias orientar como declarar la clase para poder utilizar el Self. Yo trate colocando:
Pero no me funciono, no tengo muy claro como debo hacer para declararla.
|
Función genérica para crear forms usando TAction
Yo lo hago por medio de un TAction que al agregarlo en el ActionList le pongo el mismo nombre de la forma con prefijo act por ejemplo actMiForma, además en la forma al final del código le agrego
Aunque esto ya lo automatice por medio de un wizard, si te interesa puedes bajar mi demás código de http://sourceforge.net/projects/delfib
|
Cita:
En este caso lo normal para pasarle al parámetro no es Self, sino nil o Application, dependiendo de quieen quieres que sea el "propietario". Tu formulario ya es una clase. Si quieres hacer un "visualizador genérico" no necesitas otra. Basta con crear una función similar a la que has hecho tú. (1º) Como ya te he dicho, olvídate del Self. no lo necesitas. (2º) Si vas a crear tu formulario en ese procedimiento, necesitas pasar como parámetro la clase del constructor, para poder crearlo correctamente; Alguien más arriba ya te ha dado la pista (TfrmClass: TFormClass). A partir de esa clase ya puedes hacer un:
|
La franja horaria es GMT +2. Ahora son las 20:40:22. |
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