Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: SuperDraco en 13 Julio 2011, 20:08 pm



Título: (solucionado) [vb] problema al declarar una variable
Publicado por: SuperDraco en 13 Julio 2011, 20:08 pm
Hola, empezé a leer el manual de la chincheta  :P y ya nada más empezar me encuentro con este problema.

Se supone que static sirve para que la variable se almacene en la memoria durante toda aplicación (O eso dice le manual), ¿Entonces porque la variable "muere" y no puedo utilizara en ninguna otra función?

Ejemplo:

en un procedimiento uso
Código
  1. Static FName As String

luego en otro procedimiento uso
Código:
msgbox FName

y aparece vacío

¿Lo estoy haciendo mal?


Título: Re: [vb] problema al declarar una variable
Publicado por: raul338 en 13 Julio 2011, 20:38 pm
¿Lo estoy haciendo mal?
No exactamente, lo estas haciendo incompleto :P
Te falta setearlo.

Hacer el FName = "algo"

Y ademas cuenta el ambito. Si pones esto

Código
  1. Private Sub Form_Load()
  2.    Static FName as String
  3.    FName = "Hola Pitoloko"
  4. End Sub
  5.  
  6. ' 1 Boton
  7. Private Sub Command1_Click()
  8.    MsgBox FName
  9. End Sub
  10.  
No funciona (con option explicit arriba de todo) o sale un cartel vacio (sin option explicit) cuando presionas el boton :P ya que FName esta declarado en Form_Load, cuando termina de ejecutar ese sub, FName no existe mas :D


Título: Re: [vb] problema al declarar una variable
Publicado por: SuperDraco en 13 Julio 2011, 21:11 pm
¿Y como evito ese ámbito?

El mismo ejemplo que has dado me sirve, ¿Como haría tu code para usar FName en el msgbox de command1?

He intentado cambiando la declaración  Public Sub Form_Load()   , pero nada :(


Título: Re: [vb] problema al declarar una variable
Publicado por: Elemental Code en 13 Julio 2011, 23:01 pm
escribi la parte de
Static...
Afuera de cualquier sub

y llama al msgbox en el evento click del commandbutton.


Título: Re: [vb] problema al declarar una variable
Publicado por: raul338 en 13 Julio 2011, 23:42 pm
No hace falta que sea static. Con Dim es suficiente (de hecho, no vas a notar diferencia :P)


Título: Re: [vb] problema al declarar una variable
Publicado por: SuperDraco en 13 Julio 2011, 23:54 pm
perfecto !  :D

gracias a los 2


Título: Re: (solucionado) [vb] problema al declarar una variable
Publicado por: $Edu$ en 14 Julio 2011, 00:08 am
Lo feo de pasar de Batch a otro lenguaje xD
A mi me paso lo mismo pero segui consejos de Raul q es un grande ( mema ) jajaja


Título: Re: (solucionado) [vb] problema al declarar una variable
Publicado por: SuperDraco en 14 Julio 2011, 00:49 am
xDDDDDDDDDD

Si pero hacer los formularios es lo más fácil del mundo... En cambio lo que cuesta hacer las cosas "por dentro", cada función, uf  >:(.



Tengo otro problema:

Código:
Const stPath As String = FName & "\"

¿Como se haría?

PD: FName es un string

me recuerda a batch (setear una variable como otra variable) :xD


Título: Re: (solucionado) [vb] problema al declarar una variable
Publicado por: raul338 en 14 Julio 2011, 00:56 am
Entiende lo que estas trantando de hacer. Const es para definir una constante y si le pones una variable en su definicion, sera variable (y no constante :xD)

Si pero hacer los formularios es lo más fácil del mundo... En cambio lo que cuesta hacer las cosas "por dentro", cada función, uf  >:(.

me recuerda a batch (setear una variable como otra variable) :xD
Esto te pasa por pasar de un lenguaje de scripting a un lenguaje de programacion :xD


Título: Re: (solucionado) [vb] problema al declarar una variable
Publicado por: SuperDraco en 14 Julio 2011, 08:06 am
Entiende lo que estas trantando de hacer. Const es para definir una constante y si le pones una variable en su definicion, sera variable (y no constante :xD)


No había llegado a ese punto  :-\

Una constante es un nombre significativo que sustituye a un número o una cadena que no varía. Aunque una constante recuerda ligeramente a una variable, no puede modificar una constante o asignarle un valor nuevo como ocurre con una variabl

Las constantes simbólicas o definidas por el usuario se declaran mediante la instrucción Const.


Crear constantes propias

[Public|Private] Const nombreConstante[As tipo] = expresión


La idea me ha quedado más o menos clara (Bueno, no mucho).

Pero entonces como podría resolver el problema que tengo con FName?

¿O tal vez no se puede?

digo yo que alguna alternativa habrá

a ver, analizemos... tengo una variable y quiero usar el resultado de esa variable en una constante... buf, pues ni idea xD, he buscado en google como hacerlo, pero ni idea  :xD

¿Algún consejo?

EDITO: ya he resuelto el problema, pero he tenido que borrar la constante para conseguirlo, no creo que sea muy correcto para un buen programador. no se encontrar alternativas  >:(


Título: Re: (solucionado) [vb] problema al declarar una variable
Publicado por: $Edu$ en 14 Julio 2011, 15:35 pm
No queria decirlo antes porque me van a decir de todo, pero veo que estas queriendo programar como buen programador de vb6, yo pienso q primero tendrias que aprender a programar simplemente y luego si vas haciendote un poco mas profesional.

Porque por ejemplo, te estas confundiendo con las variables por querer usar el tipo de variable que corresponde en cada caso pudiendo por ahora poner solamente Dim variable y listo.

Pero por si a caso, te intento explicar:

Código
  1. Private Sub Form_Load()
  2. Const Nombre As String = "Eduardo"
  3. Dim edad As Integer
  4. Dim i As Integer
  5.  
  6. For i = 19 To 25
  7.  
  8. edad = i
  9.  
  10. MsgBox "Ahora tengo " & edad & " años y me llamo " & Nombre
  11.  
  12. Next i
  13.  
  14.  
  15. End Sub
  16.  

Eso es un simple programa pero lo que quiero que veas es que declare la variable Nombre como constante ya que no la cambiare nunca, porque cambiare de edad pero no de Nombre.

Pero si quiero la declaraba a Nombre como Dim Nombre y va a funcionar igual y hasta mejor porque talvez en algun lado del programa se me ocurre cambiarme de nombre y podria hacerlo sin problemas, que con Const no podia.

Por las dudas otro ejemplo, Const sirve para declarar variables como Const Pi As Double = 3.14, ya que eso no cambiara nunca, y usaras esa variable pi para calcular el area de un circulo en tu programa (? xD

Hoy lo que hacias era poner Const hola as string = variable + "chau" y entonces que pasa? que al tener una variable como contenido de la constante, esa constante podria cambiar y eso no se permite.

Conclusion, no te compliques tanto si no entendiste y usa Dim, hasta que vayas viendo ejemplos de codigos.


Título: Re: (solucionado) [vb] problema al declarar una variable
Publicado por: SuperDraco en 14 Julio 2011, 16:20 pm
gracias zero

Lo que no me gusta de VB es que es tán complicado al principio que tengo que ir aprendiendo de códigos de otras personas, eso quizás hace que mi aprendizaje sea más lento, o tal vez no, pero no se hacer por mi mismo ni un solo ejemplo de los que he visto... vivan los sources y los módulos! xD


Título: Re: (solucionado) [vb] problema al declarar una variable
Publicado por: $Edu$ en 14 Julio 2011, 16:27 pm
Bueno, pero porque ya se lo que te pasara.. eres bueno en batch y entonces te da pena empezar por programar una simple calculadora que sume, reste, multiplique y divida xD Pero hay que hacerlo, todo otra vez ahora que cambiaste a algo completamente distinto.

Que tutorial estas leyendo?


Título: Re: (solucionado) [vb] problema al declarar una variable
Publicado por: SuperDraco en 14 Julio 2011, 16:39 pm
Que tutorial estas leyendo?

manual, el de la chincheta del foro xD

y tutoriales para crear ciertas cosas en mi app, de vbaccelerator.com, vbrecurses, vb-helper, etc...

PD: lo que me da pena es tener que usar los códigos de los demás, pero bueno, espero llegar a ser un programador decente y valerme por mi mismo para hacer pequeñas tareas xD

lo más divertido es que ya hice una calculadora en vb6, pero de eso hace 10 años  :rolleyes: seguiré ese consejo, así me aclaro con los parametros matemáticos y esas cosas


Título: Re: (solucionado) [vb] problema al declarar una variable
Publicado por: raul338 en 14 Julio 2011, 16:43 pm
PD: lo que me da pena es tener que usar los códigos de los demás, pero bueno, espero llegar a ser un programador decente y valerme por mi mismo para hacer pequeñas tareas xD

Eso es porque recien empiezas :xD una vez que sepas aunque sea de nombre la mayoria de las funciones basicas y tengas nocion de API, ya podras valerte por ti mismo :D


Título: Re: (solucionado) [vb] problema al declarar una variable
Publicado por: $Edu$ en 14 Julio 2011, 16:47 pm
Na.. busca el tutorial de El guille y aprende todo bien, tendras para leer dias


Título: Re: (solucionado) [vb] problema al declarar una variable
Publicado por: SuperDraco en 14 Julio 2011, 16:52 pm
busca el tutorial de El guille

¿es esto?: http://www.mundoprogramacion.com/vb/

solo veo artículos, ningún tutorial desde 0


Título: Re: (solucionado) [vb] problema al declarar una variable
Publicado por: raul338 en 14 Julio 2011, 16:56 pm
Índice del Curso Básico
de Programación en Visual Basic (http://www.elguille.info/vb/cursos_vb/basico/indice.htm)

Dale una leida :P Seguro que varios de los conceptos ya lo sabras


Título: Re: (solucionado) [vb] problema al declarar una variable
Publicado por: 79137913 en 14 Julio 2011, 16:58 pm
HOLA!!!

¿es esto?: http://www.mundoprogramacion.com/vb/

solo veo artículos, ningún tutorial desde 0

Te lo mande por MP

GRACIAS POR LEER!!!