Cómo reemplazar la declaración implícita con la variable declarado

Seleccione idioma Seleccione idioma
Id. de artículo: 147665 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

Resumen

Declaración implícita de Visual Basic de una variable de formulario con el mismo nombre que cada clase de formulario permite que el formulario código de la manipulación escribirse sin crear explícitamente una instancia de cada clase de formulario. Esto es cómodo, pero también puede producir confusión, especialmente cuando de código es crear y manipular varias instancias de la misma clase de formulario. Reemplazando la declaración implícita de Visual Basic con una declaración explícita, se puede evitar esta confusión.

Más información

En lugar de pensar en cada formulario enumerados en la ventana proyecto como una entidad uno puede pensar en un formulario tiene una plantilla o la clase de formulario, que se puede utilizar para crear instancias concretas. Con la capacidad para declarar variables públicas, funciones y procedimientos en formularios en Visual Basic, esta analogía pasa a ser incluso más sólida. Las variables públicas son sólo propiedades del formulario, mientras funciones públicas y procedimientos se convierten en métodos del formulario.

Con esta idea en mente, puede crear y mostrar dos instancias de una clase de formulario existente con código como éste:
   Dim MyFormObject1 As Form1
   Dim MyFormObject2 As Form2

   Set MyFormObject1 = New Form1
   Set MyFormObject2 = New Form2
   MyFormObject1.Show
   MyFormObject2.Show
				
mientras este estilo de codificación tiene muchas ventajas, Visual Basic también hace algún trabajo en segundo plano para permitir la manipulación de un formulario sin anteriormente declarar una variable para contener la referencia a ese formulario. Visual Basic realiza el equivalente de automáticamente la declaración de una variable de objeto con el mismo nombre que cada clase de formulario. Cuando inicia un programa con un formulario de inicio o la primera vez se llama a una propiedad o método de una clase de formulario, Visual Basic crea un objeto de formulario a partir de la clase de formulario y lo asigna a la referencia implícitamente declarada. En el ejemplo siguiente, la propiedad de título que se establece es de la variable de Form2 declarada automáticamente y crea automáticamente el objeto de tipo Form2. A causa del declaración implícita y creación del formulario de Visual Basic, este código funciona correctamente.
   Private Sub Form_Load()
      Form2.Caption = "Hello VB World"
   End Sub
				
personas familiarizadas con el uso de servidores OLE desde Visual Basic es posible que haya oído la instrucción que ' la primera vez que se hace referencia a una propiedad o método de una clase de [], Visual Basic crea [objeto] de [clase].' Esto le suena sospechosos comportamiento de Visual Basic cuando una variable de objeto como se ha declarado 'As New'. Con este tipo de declaración, Visual Basic creará automáticamente un objeto cuando se hace referencia a una propiedad o método, si un objeto ya no existe (consulte páginas 200 201 de la Guía del programador para obtener más información). Declaración implícita Visual Basic de variables de formulario puede considerarse como este tipo de instrucción equivalente de Visual Basic:
   Public MyForm As New MyForm
				
si uno decide siguen la convención formulario todos los objetos debe crear y destruir explícitamente, es fácil accidentalmente hace referencia a propiedad o método del formulario cuando el objeto de formulario no existe (porque no ha creado explícitamente o porque se ha destruido anteriormente). De forma predeterminada, debido de la declaración implícita anterior, Visual Basic Afortunadamente se cree una nueva instancia de la clase de formulario dada y permitir que el código continuar unheeded. Esto fácilmente puede conducir a errores lógicos que pueden ser difíciles de encontrar. Para evitar este problema, uno puede reemplazar la declaración implícita con su propia declaración explícita. Hacerlo así hará que Visual Basic correctamente raise error 91, "variable de objeto no establecida," Si se hace referencia a una propiedad o método de un formulario no existente.

Una declaración debe colocarse en un módulo para cada formulario en el proyecto, por ejemplo:
   Public MyForm As MyForm
   Public MySecondForm as MySecondForm
				
después estas declaraciones, cada formulario debe crearse con una instrucción Set antes de utilizarse, por ejemplo:
   Sub Main()
      Set MyForm = New MyForm
      MyForm.Show
   End Sub
				

Propiedades

Id. de artículo: 147665 - Última revisión: sábado, 22 de febrero de 2014 - Versión: 2.1
La información de este artículo se refiere a:
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 6.0 Edición de aprendizaje
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
Palabras clave: 
kbnosurvey kbarchive kbmt kbhowto KB147665 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 147665

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com