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

#6 Softjaen
23/07/2003 - 20:41 | Informe spam
"Manuel Romero" escribió:
Disculpen que me meta, pero alguna vez lei que aunque se declaren


variables
publicas en un modulo de clase para funcionar como propiedades, Visual


Basic
internamente crea los dos procedimientos de propiedad relacionados.

"Softjaen" escribió en el mensaje
news:
>
> "Eduardo A. Morcillo [MS MVP]"
> >
> > No puede ser. Voy a hacer que te quiten el titulo de MVP
> > por recomendar el uso de variables globales ;-)
> >
>
> ¡Jeje! ¡Calla, Eduardo! ¡Vaya a ser que te oigan! ;-)
>
> Por supuesto que soy consciente de que no es una práctica recomendable
> utilizar variables «Public» con ámbito global a la aplicación, y menos


si
> éstas son del tipo «Variant». Si no hay más remedio, entonces es cuando
hay
> que declararlas.
>
> > Nada de variables globales innecesarias. Declara propiedades
> > en el formulario y utilizalas antes y despues de mostrar el
> > formulario.
> >
>
> ¡Hombre! Ya que has tocado el tema, te voy hacer una pregunta donde
siempre
> he estado dudando, porque ya va siendo hora que yo haga también


preguntas.
>
> ¿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:
>
> En el formulario
> => >
> Utilizar «Public Nombre As String» o utilizar «Public Property Get


Nombre
()
> As String» y «Public Property Let Nombre».
>
> Entiendo que si estamos utilizamos procedimientos «Property» lo mejor es
> declarar una variable «Private» en el módulo de clase o formulario, a


fin
de
> que el objeto proteja y valide sus propios datos, porque si la variable


la
> declaramos «Public», ¿para qué coño vamos a crear procedimientos
«Property»?
>
> Y ya puestos, la diferencia existente también entre declarar una


variable
> «Public» en el módulo del formulario y declararla «Public» en un módulo
> general.
>
> Yo sólo quiero saber la diferencia sólo en cuanto a consumo de memoria y
> recursos si la hubiere.
>
> Eduardo, y no seas muy duro conmigo, que como decimos en mi pueblo, «a
> cualquier puta se le escapa un pedo». :-))
>
> Un saludo.
>
> Enrique Martínez
> [MS MVP - VB]
>
>
>
>
>
>


Respuesta Responder a este mensaje
#7 Manuel Romero
23/07/2003 - 20:42 | Informe spam
Disculpen que me meta, pero alguna vez lei que aunque se declaren variables
publicas en un modulo de clase para funcionar como propiedades, Visual Basic
internamente crea los dos procedimientos de propiedad relacionados.

"Softjaen" escribió en el mensaje
news:

"Eduardo A. Morcillo [MS MVP]"
>
> No puede ser. Voy a hacer que te quiten el titulo de MVP
> por recomendar el uso de variables globales ;-)
>

¡Jeje! ¡Calla, Eduardo! ¡Vaya a ser que te oigan! ;-)

Por supuesto que soy consciente de que no es una práctica recomendable
utilizar variables «Public» con ámbito global a la aplicación, y menos si
éstas son del tipo «Variant». Si no hay más remedio, entonces es cuando


hay
que declararlas.

> Nada de variables globales innecesarias. Declara propiedades
> en el formulario y utilizalas antes y despues de mostrar el
> formulario.
>

¡Hombre! Ya que has tocado el tema, te voy hacer una pregunta donde


siempre
he estado dudando, porque ya va siendo hora que yo haga también preguntas.

¿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:

En el formulario
=>
Utilizar «Public Nombre As String» o utilizar «Public Property Get Nombre


()
As String» y «Public Property Let Nombre».

Entiendo que si estamos utilizamos procedimientos «Property» lo mejor es
declarar una variable «Private» en el módulo de clase o formulario, a fin


de
que el objeto proteja y valide sus propios datos, porque si la variable la
declaramos «Public», ¿para qué coño vamos a crear procedimientos


«Property»?

Y ya puestos, la diferencia existente también entre declarar una variable
«Public» en el módulo del formulario y declararla «Public» en un módulo
general.

Yo sólo quiero saber la diferencia sólo en cuanto a consumo de memoria y
recursos si la hubiere.

Eduardo, y no seas muy duro conmigo, que como decimos en mi pueblo, «a
cualquier puta se le escapa un pedo». :-))

Un saludo.

Enrique Martínez
[MS MVP - VB]






Respuesta Responder a este mensaje
#8 Softjaen
23/07/2003 - 21:00 | Informe spam
"Manuel Romero" escribió:

Disculpen que me meta, ...



Manuel, la conversación es pública. :-))

alguna vez lei que aunque se declaren variables
publicas en un modulo de clase para funcionar
como propiedades, Visual Basic
internamente crea los dos procedimientos de
propiedad relacionados.



Efectivamente. De nada sirve declarar una variable «Public» en un módulo de
clase, porque de todas formas Visual Basic implementará las variables
públicas como parejas de procedimientos «Property».

La «ocultación de datos» se basa en proteger parte de los datos de nuestra
clase (objeto), permitiendo acceder a otros datos mediante los
procedimientos «Property».

También la ocultación no sirve para definir propiedades de sólo lectura,
cosa que no podríamos si declaramos en un módulo de clase una variable
«Public».

Y como he dicho en mi mensaje anterior, si utilizamos procedimientos
«Property» lo mejor es declarar una variable «Private» en el módulo de clase
o formulario, a fin de que el objeto proteja y valide sus propios datos,
porque si la variable la declaramos «Public», ¿podemos saber si un dato es
correcto o devuelve un valor fiable?

Si por ejemplo tenemos declarada como «Public» una variable llamada
«SaldoCuenta», la variable puede tener valores con saldo a nuestro favor o a
favor del banco, pero si en su lugar declaramos un procedimiento «Property»
para que sólo nos devuelva nuestro verdadero saldo, el procedimiento tendría
que validar el valor de la variable y devolver el valor sólo si tenemos
dinero en el banco. :-)

No sé si me he explicado bien.

Un saludo.

Enrique Martínez
[MS MVP - VB]
Respuesta Responder a este mensaje
#9 Scott
23/07/2003 - 23:04 | Informe spam
hola entonces como deberia trabajarlo creando propiedades en un clase
gracias por la ayuda
"Softjaen" escribió en el mensaje
news:

"Manuel Romero" escribió:

> Disculpen que me meta, ...

Manuel, la conversación es pública. :-))

> alguna vez lei que aunque se declaren variables
> publicas en un modulo de clase para funcionar
> como propiedades, Visual Basic
> internamente crea los dos procedimientos de
> propiedad relacionados.

Efectivamente. De nada sirve declarar una variable «Public» en un módulo


de
clase, porque de todas formas Visual Basic implementará las variables
públicas como parejas de procedimientos «Property».

La «ocultación de datos» se basa en proteger parte de los datos de nuestra
clase (objeto), permitiendo acceder a otros datos mediante los
procedimientos «Property».

También la ocultación no sirve para definir propiedades de sólo lectura,
cosa que no podríamos si declaramos en un módulo de clase una variable
«Public».

Y como he dicho en mi mensaje anterior, si utilizamos procedimientos
«Property» lo mejor es declarar una variable «Private» en el módulo de


clase
o formulario, a fin de que el objeto proteja y valide sus propios datos,
porque si la variable la declaramos «Public», ¿podemos saber si un dato es
correcto o devuelve un valor fiable?

Si por ejemplo tenemos declarada como «Public» una variable llamada
«SaldoCuenta», la variable puede tener valores con saldo a nuestro favor o


a
favor del banco, pero si en su lugar declaramos un procedimiento


«Property»
para que sólo nos devuelva nuestro verdadero saldo, el procedimiento


tendría
que validar el valor de la variable y devolver el valor sólo si tenemos
dinero en el banco. :-)

No sé si me he explicado bien.

Un saludo.

Enrique Martínez
[MS MVP - VB]



Respuesta Responder a este mensaje
#10 Scott
23/07/2003 - 23:39 | Informe spam
Hola Softjaen :
tengo un problema en mi clase he generado estas propiedades
declaraciones de la clase
Dim vBanco$
Private Property Get Banco() As String
Banco = vBanco
End Property

Private Property Let BanCod(ByVal vNewValue As String)
vBanco = vNewValue
End Property

como la llamo a mi clase esas propiedades
Public Sub cls()
Dim Dlg As New frmbanco

End Sub
"Softjaen" escribió en el mensaje
news:

"Manuel Romero" escribió:

> Disculpen que me meta, ...

Manuel, la conversación es pública. :-))

> alguna vez lei que aunque se declaren variables
> publicas en un modulo de clase para funcionar
> como propiedades, Visual Basic
> internamente crea los dos procedimientos de
> propiedad relacionados.

Efectivamente. De nada sirve declarar una variable «Public» en un módulo


de
clase, porque de todas formas Visual Basic implementará las variables
públicas como parejas de procedimientos «Property».

La «ocultación de datos» se basa en proteger parte de los datos de nuestra
clase (objeto), permitiendo acceder a otros datos mediante los
procedimientos «Property».

También la ocultación no sirve para definir propiedades de sólo lectura,
cosa que no podríamos si declaramos en un módulo de clase una variable
«Public».

Y como he dicho en mi mensaje anterior, si utilizamos procedimientos
«Property» lo mejor es declarar una variable «Private» en el módulo de


clase
o formulario, a fin de que el objeto proteja y valide sus propios datos,
porque si la variable la declaramos «Public», ¿podemos saber si un dato es
correcto o devuelve un valor fiable?

Si por ejemplo tenemos declarada como «Public» una variable llamada
«SaldoCuenta», la variable puede tener valores con saldo a nuestro favor o


a
favor del banco, pero si en su lugar declaramos un procedimiento


«Property»
para que sólo nos devuelva nuestro verdadero saldo, el procedimiento


tendría
que validar el valor de la variable y devolver el valor sólo si tenemos
dinero en el banco. :-)

No sé si me he explicado bien.

Un saludo.

Enrique Martínez
[MS MVP - VB]



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida