2011-02-01 21 views
6

Tengo un formulario llamado MyForm almacenado en una unidad llamada Unit UnitMyFrom. Por supuesto, Delphi agregó automáticamente este código:¿Es seguro eliminar la variable de formulario creada por IDE?

TYPE 
    TMyForm = class(TForm) 
    private 
    public 
end; 

var MyForm: TMyForm; 

pero eliminé la declaración var de esa unidad. Alguien dijo que esto podría causar problemas con el IDE. ¿Es verdad? ¿El IDE requiere esa variable?


EDIT:

El MiFormulario no se crea automáticamente. El usuario crea ese formulario en tiempo de ejecución.

Respuesta

13

no uso de auto-crear y nunca utilizar variables globales que contienen referencias de formulario. Funciona bien.

+0

Gracias por la confirmación. Yo hago lo mismo. +1 – Ampere

+1

+1. Desearía que hubiera una opción para ** no ** agregar nuevos formularios automáticamente a la lista de creación automática. Desearía que hubiera una opción para ** no ** crear esa molesta "var". Oh, bueno ... –

+0

@Cosmin Hay una opción. Se llama "Creación automática de formularios y módulos de datos". ¡Simplemente no parece tener ningún efecto! Obviamente no lo estoy haciendo bien, o entendiendo mal la documentación. –

3

Yo diría que sí cuando quiera crear el formulario automáticamente, porque necesita pasar esta variable al método TApplication.CreateForm.

+3

O más exactamente, eso es lo que _IDE_ desea hacer cuando agrega un formulario a los formularios autocreados. Si quieres hacerlo tú mismo, puedes poner la variable donde quieras. No debes abusar de la autocreación de todos modos. –

+0

por favor vea mi edición – Ampere

+0

Gracias por la confirmación. +1 – Ampere

7

Elimine la línea Application.CreateForm(TMyForm, MyForm); en el archivo .dpr del proyecto y no tendrá ningún problema.

Si no crear el formulario automáticamente, entonces usted no tendrá ningún problema

+0

Consulte mi actualización. – Ampere

+1

@Altar: Entonces no habrá ningún problema – Bharat

+0

Gracias por la confirmación. +1 – Ampere

3

Vaya a Opciones de proyecto y asegúrese de que el formulario no se cree automáticamente. Luego puede eliminar de forma segura la variable de instancia del formulario. (De lo contrario, sólo obtendrá un error de compilación.)

+0

Hola. Yo no creo automáticamente esa forma. +1 – Ampere

2

Es posible que desee mantener esta línea en el uses o contains cláusula en el DPR-archivo:

Unit1 in 'Unit1.pas' {Form1}; 

Si usted (o el IDE) borra el comentario {Form1}, luego su formulario no aparecerá en la lista Shift+F12 - solo en la lista Ctrl+F12.

+0

+1; He visto tantos proyectos arruinando esto (porque la gente cree que son dueños del.dpr; usted no: el IDE posee el DPR, usted posee las unidades. La gente pega todos sus códigos y convenciones especiales en una "MainUnit"). –

+4

@Jeroen Bueno, no estoy de acuerdo. El IDE lo estropea. Deseo la inclusión condicional de unidades en mi proyecto (por ejemplo, cambiar entre diferentes administradores de memoria, admitir diferentes versiones de Delphi). IDE lo estropea. Necesito un mejor control sobre la creación y destrucción de formularios que IDE hizo que dpr permita, y también necesito solucionar algunos errores de VCL relacionados con eso. –

+0

Sí, todavía tengo esa línea en el archivo DPR. – Ampere

1

los elimino & han funcionado de esa manera por bastante tiempo (no autocrear o usar la variable para la mayoría de las formas).

Cuestiones relacionadas