FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
argumentos FormCreate
|
#2
|
||||
|
||||
Para que la asignación de la segunda sentencia que presentás sea válida, la primera debiera tener un constructor y no un método cualquiera. Por ejemplo:
Esto sería perfectamente válido, solamente tener cuidado de en el constructor de la clase debe llamarse a algún constructor de la clase padre, para que la creación e inicialización de, en este caso, la forma se realice correctamente. También tener en cuenta que el constructor create declarado en este caso no sustituye al constructor create de la clase TForm, aun cuando tenga el mismo nombre, por lo que por ejemplo, una llamada a Application.CreateForm, seguirá usando el constructor create de TForm y no el create de TFor. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
||||
|
||||
Aunque no es fundamental, para que el compilador no nos grite con sus advertencias, yo usaría la directiva reintroduce:
Por cierto, con For, esto no va a compilar // Saludos |
#4
|
||||
|
||||
Cita:
Probemos... c/For/AFor Ok. ahora compilará.. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
||||
|
||||
Cita:
// Saludos |
#6
|
||||
|
||||
ups... :s lo siento:
[alt][s] [r] For [tab] AFor [alt][a] [Intro] Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#7
|
|||
|
|||
Muchas gracias jachguate creo q con tu ejemplo servirá.
Última edición por senda fecha: 28-09-2006 a las 10:31:48. |
#8
|
|||
|
|||
Cita:
|
#9
|
|||
|
|||
He cambiado todas las operaciones que tenía en la operación FormCreate a la nueva operación (q he introducido) Create. El resultado no ha sido el esperado. Se cuelga al ejecutar la operación ShowModal tras crear el formulario.
Cita:
|
#10
|
||||
|
||||
Cita:
Tenemos el método virtual Procedimiento, el cual es heredado por las dos clases derivadas. Una de ellas la implementa de nuevo (OVERRIDE) mientras que la otra la "reintroduce" de forma que tiene dos métodos con el nombre "Procedimiento". No es lo mismo que OVERLOAD, ojo. La cosa está en lo siguiente:
En la primera línea llamamos al procedimiento virtual de la clase TBASE, que en tiempo de ejecución puede ser tanto la definida para TBASE como la definida para TDERIVADA1. En la segunda línea llamamos al procedimiento "reintroducido" por la clase TDERIVADA2. Espero que haya aclarado las cosas en lugar de liarlas más. Última edición por Ñuño Martínez fecha: 28-09-2006 a las 12:14:03. |
#11
|
||||
|
||||
Cita:
Para demostrar que es posible, he preparado un pequeño ejemplo, espero te sea de utilidad.
El evento OnClick de ambos botones está relacionado al método Button1Click. Creo que el dfm puede deducirse fácilmente de los .pas. ¿no? Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#12
|
|||
|
|||
Muchas gracias. He conseguido ejecutar tu ejemplo perfectamente, pero no consigo arreglar mi programa. Exactamente me escupe:
Cita:
|
#13
|
||||
|
||||
Creo que el mensaje es claro: Tu ventana ya está visible cuando llamas a ShowModal, y pues esto no tendría sentido.
Evidentemente, es tu propio código el que hace que esta ventana sea visible. Iniciá revisando que el estilo de la forma sea fsNormal, y si es así, pues dar una revisión general de las rutinas que se invocan entre el Create y el ShowModal. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#14
|
|||
|
|||
No se, me parece q lo voy a tirar todo y empezaré de nuevo, xq el estilo es 'fsnormal' y entre el 'create' y el 'showmodal' no hay ninguna operación (se ejecuta el showmodal inmediatamente despues del create). Muchas gasias de todos modos.
PD: Si omito el 'showmodal' no se muestra el formulario y si lo incluyo peta la ejecución, toy apañao. |
#15
|
|||
|
|||
Antes de "tirar" todo, verifica la propiedad Visible de tu formulario, si tu ventana no es MDIChild, esta debe tener el valor False.
Saludos... |
#16
|
||||
|
||||
Si el formulario es MDIChild, no tendría sentido mostrarlo con ShowModal. La propiedad Style del formulario debiera tener fsNormal.
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#17
|
|||
|
|||
Si, pero si por algún motivo cambias la propiedad FormStyle a fsMDIChild, la propiedad Visible cambia a True, pero si regresas la propiedad FormStyle a fsNormal, Visible no cambia su valor...
Así que no está de más que verifique lo que comento... Saludos... |
#18
|
|||
|
|||
La propiedad visible sta a False.
|
#19
|
||||
|
||||
He leido rapidamente por encima tu mensaje y creo que tu problema radica en que tienes declarada la form como "autocreada" en la proyecto de delphi. Pulsa CTRL+Mays+F11 y verifica si en el apartado de Auto-create Forms esta este formulario. Si es asi... pasalo al apartado de "available Forms" para que no se cree automaticamente. Doy por sentado que es tu codigo el que crea la form y la muestra modal no ???
|
#20
|
|||
|
|||
Cita:
Al final lo he conseguido resolver haciendo una función auxiliar que inicializase los parámetros antes de llamar a Create y he restaurado la operación Create sin parametros que tenia en un primer momento funcionando. Muchas gracias por todas las respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Duda con argumentos por consola | friendspark | OOP | 2 | 14-11-2005 17:57:30 |
Udf y argumentos | rastafarey | Firebird e Interbase | 2 | 29-07-2005 21:12:44 |
Error en FormCreate | darkerbyte | OOP | 5 | 29-03-2005 17:42:43 |
¿Como recuperar los argumentos de un ejecutable? | dim | Varios | 2 | 20-05-2004 11:58:17 |
Argumentos en procedimientos | Carlitos | Firebird e Interbase | 3 | 06-03-2004 11:34:19 |
|