Pregunta:

23/07/2003 - 17:46 por Scott | Informe spam
Hola grupo:
tengo una consulta he leido un en articulo que se debe evitar a toda costa
el uso de variables de tipo variant ya que consumen mas recursos y hacen mas
lentos los procesos y bueno yo lamentablemete en mi aplicacion utilizo este
tipo de variable lo que pasa es que yo hago lo siguiente:
creo una clase:

en (general) declaraciones de mi modulo clase
Public DeVaProv As Variant
****************
y en modulo en general declaraciones
Public ManDaProv As Variant
***************
Public Sub Cls_Proveedor()
Dim Dlg_Proveedor As New FrmProveedor2
Load Dlg_Proveedor
With Dlg_Proveedor
.Texto1(0).Text = ManDaProv(1)
.Texto1(1).Text = ManDaProv(2)
.Texto1(2).Text = ManDaProv(3)
.Texto1(3).Text = ManDaProv(4)
.Texto1(4).Text = ManDaProv(5)
.Texto1(5).Text = ManDaProv(6)
.Texto1(6).Text = ManDaProv(7)
.Texto1(7).Text = ManDaProv(8)
.Caption = ManDaProv(9)
.Show vbModal **ejecuta un formulario modalcon los text vacios
Acept = .Acept
If Acept Then ** if si llena todos los text estos datos se
devuelven
DeVaProv = Array(.Texto1(0).Text, .Texto1(1).Text,
.Texto1(2).Text, .Texto1(3).Text, .Texto1(4).Text, .Texto1(5).Text,
.Texto1(6).Text, .Texto1(7).Text)
End If
End With
Unload Dlg_Proveedor
End Sub
****************************
codigo del boton nuevode formulario:
Dim CodP As String
Dim ObjProv As New Class_Angel

ManDaProv = Array("", "", "", "", "", "", "", "", "", "Nuevo Proveedor")
With ObjProv
.Cls_Proveedor
If .Acept Then
CodP = "P" & Codigo("Select * From Proveedor", 3, "0")
SenProv = "Insert Into
Proveedor(PrvCod,PrvRaz,PrvDir,PrvPais,PrvCiu,PrvTelf,PrvCto1,PrvCto2,PrvTel
f1) Values('" & _
CodP & "','" & .DeVaProv(0) & "','" & .DeVaProv(1) &
"','" & .DeVaProv(2) & "','" & .DeVaProv(3) & "','" &
.DeVaProv(4) & "','" & .DeVaProv(5) & "','" & .DeVaProv(6) & "','" &
.DeVaProv(7) & "'
End With

Preguntas similare

Leer las respuestas

#11 Softjaen
24/07/2003 - 00:21 | Informe spam
"Scott" preguntó:

hola entonces como deberia trabajarlo creando propiedades
en un clase



En el módulo de clase o en el módulo del formulario, dependiendo donde
quieres enviar y recibir los datos.

Como bien ha puntualizado Eduardo A. Morcillo, en lugar de declarar
variables globales «Public» en un módulo estándar (*.bas), crea
procedimientos «Public Property» en el formulario modal (o en el módulo de
clase) para que de ésta manera puedas enviar y recibir datos sin problemas.

Enrique Martínez
[MS MVP - VB]
Respuesta Responder a este mensaje
#12 Softjaen
24/07/2003 - 00:27 | Informe spam
"Scott" escribió:

he leido que todo programador si se considera programador
debe empezar su codigo con (option explicit) pero dime
esto debo declararlo una sola vez en cada formulario en
declaraciones generales esto en todos los formularios




Has vuelto a leer bien. :-)

La instrucción «Option Explicit» se utiliza a nivel de módulo (en la sección
«Declaraciones»), para que de ésta forma nos obligemos a declarar
explicitamente las variables contenidas en dicho módulo y no tengamos
dolores de cabeza.

Mi recomendación es que la utilices en todos los formularios y restantes
tipos de módulos. Para que te aparezca automáticamente cada vez que crees un
nuevo módulo o formulario, selecciona el menú «Herramientas» --> «Opciones»
y señala la casilla «Requerir declaración de variables».

Enrique Martínez
[MS MVP - VB]
Respuesta Responder a este mensaje
#13 Eduardo A. Morcillo [MS MVP]
24/07/2003 - 06:30 | Informe spam
¡Jeje! ¡Calla, Eduardo! ¡Vaya a ser que te oigan! ;-)



Que? Que? He dicho algo? :)

¿Qué diferencia hay, sólo en cuanto al rendimiento general de una
aplicación, en declarar una variable «Public» en el módulo del
formulario o clase, y crear un procedimiento «Property», también de
ámbito «Public», en dicho formulario? Es decir:



Realmente no se que diferencia haya en rendimiento (no creo que mucha si es
que hay). Lo que es seguro es que declarando la variable como public vamos
en contra de las reglas de OOP, ademas de no poder hacer validaciones u
otras operaciones relacionadas con el cambio o el acceso a la propiedad (por
ejemplo hacer un Refresh cuando se cambia una propiedad). Sin embargo su uso
cuando se convierete una estructura a clase (suponiendo que solo usamos la
clase como un contenedor de los datos, sin tener operaciones) es mucho mas
comodo.

Eduardo A. Morcillo [MS MVP - VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#14 Softjaen
24/07/2003 - 09:16 | Informe spam
"Eduardo A. Morcillo [MS MVP]"

Realmente no se que diferencia haya en rendimiento (no creo que mucha si
es que hay). Lo que es seguro es que declarando la variable como public
vamos en contra de las reglas de OOP, ademas de no poder hacer
validaciones u otras operaciones relacionadas con el cambio o el acceso a
la propiedad (por ejemplo hacer un Refresh cuando se cambia una
propiedad). Sin embargo su uso cuando se convierete una estructura a
clase (suponiendo que solo usamos la clase como un contenedor de los
datos, sin tener operaciones) es mucho mas comodo.




Pues esa era mi duda que siempre me ha estado rondando por la cabeza: la
diferencia existente en cuanto al rendimiento, si es que la hay.

Comparto tu opinión referente a que va en contra de las reglas de la POO
declarar variables «Public» en la sección «Declaraciones» de cualquier
módulo estándar, de clase o de formulario, porque como he dicho en el
mensaje de respuesta a Manuel Romero, no cumple con el principio de la
«ocultación de datos», lo que nos impediría disfrutar del concepto de
encapsulamiento que nos proporciona los procedimientos de propiedad
«Property».

En cambio si no hay más remedio es cuando creo que habría que declarar
variables públicas de lectura y escritura, (que no evita que internamente
Visual Basic cree parejas de procedimientos de propiedad en los módulos de
clase), sobretodo en propiedades que son autovalidables (como pueden ser las
variables booleanas), aceptan cualquier valor del intervalo permitido por el
tipo de datos (variables Single o Double), o conocemos de antemano que no va
haber limitaciones en el tamaño o el valor de una cadena de texto (las
variables tipo String). Por el contrario, si necesitamos evaluar el dato,
donde se ponga un buen procedimiento «Property», bien implementado y
depurado, que se quiten todas las variables públicas. :-)

En fin, ésto es como todo: dependiendo de los casos unas veces será mejor
utilizar procedimientos de propiedad (que es lo recomendable), y otros casos
pues no nos quedará más remedio que utilizar variables públicas.

Bueno. Gracias por la respuesta, Eduardo.

Un saludo.

Enrique Martínez
[MS MVP - VB]
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida