FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Un formulario que no abre!!
Hola a todos el código que me da dolores de cabeza hoy es el siguiente:
bien el tema es el siguiente en teoria pretendo crear un instancia de la clases TFDatosGenerales que es un formulario como tal, ahora cuando se ejecuta la primera linea salta al final y código y no hace nada. ahora si cambio en el código y queda así
Funciona bien, luego pense que el formulario se estaba autocreando, lo cual descarte al ver la opciones del proyecto. Entonces la pregunta es que estoy haciendo mal. gertorresm Colombia |
#2
|
||||
|
||||
Cita:
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
||||
|
||||
El problema surge que FDatosGenerales es una variable global definida en la misma unit que la clase TDatosGenerales. Por defecto esas variables se inicializan por compilador en nil.
Por el otro lado tu variable FDatosGenerales_local no esta inicializada, por lo que su valor inaccesible al momento de hacer la comparación. Si agregas antes del if: FDatosGenerales_local := nil; la comparación no te daría problemas
__________________
[Crandel] Última edición por Crandel fecha: 03-01-2010 a las 21:15:36. |
#4
|
||||
|
||||
Gracias por el consejo
Muchas por tu repuesta, sin pretender demeritar las demás me parace que la tuya tiene una fundamentación técnica muy clara.
muchas gracías gertorresm colombia |
#5
|
||||
|
||||
Primero, tienes que comprender que la comparación " if FDatosGenerales_local = nil then ... " no es recomendada. En su lugar debes usar: " if assigned(FDatosGenerales_local) then ... "
El hecho de que el formulario no se abra puede ser que este ocurriendo un problema al momento de la creación del mismo ( Procedure OnCreate ). Tienes que revisar este lugar que es el que pueda dar el problema. Intenta comentar las líneas "Try ... finally ... end; " y fíjate si salta una excepción. Por otro lado, cuando estoy tratando con clases formualario y no estoy trabajando con la variable global y en lugar se ésta con una varible local u de otro aspecto, no uso este típico código, como el que tu tienes: En su lugar usaría este código:
Personalmente creo que este estilo de codificación ayuda al entendimiento del código. Ya que hace una diferencia entre los formalarios que estarán visibles por un considerable tiempo y los formularios que sólo serán mostrados durante un corto momento. Saludos |
#6
|
||||
|
||||
Version de trabajo
Gracias Chris por tu comentario:
En orden de ideas mi código quedo de la siguiente forma
su tienes alguna sugerencia adicional me encantaria poder leerla gertorresm Colombia |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿Por qué no se me abre el DIALOGBOX? | MON___ | C++ Builder | 4 | 30-07-2008 21:54:35 |
No abre Kylix | ahkimpech | Lazarus, FreePascal, Kylix, etc. | 8 | 30-07-2005 06:07:53 |
win98se no abre *.hlp | lemon-club | Varios | 0 | 29-12-2003 13:51:57 |
Se abre el telon | aom | Humor | 3 | 09-11-2003 09:36:58 |
No abre las tablas en XP ... | ingel | SQL | 0 | 13-06-2003 18:12:06 |
|