Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - abreu20011

#21
.NET (C#, VB.NET, ASP) / Handles (VB.NET)
26 Agosto 2011, 00:58 AM
Saludos :)

Estoy trabajando con el IDE SharpDevelop (con framework 3.5) y no sé si hay algo que hago mal (seguramente) o es que este IDE no vale para nada :S

Cuando declaramos un evento en Visual Studio, tenemos el "Handles" para poder decidir si el evento es por click, dobleclick, etc... Simplemente pongo:

Sub Label1Click(sender As Object, e As EventArgs) Handles Label1.Click
Msgbox("Hola")
End Sub


Y al pulsar sobre el botón, saltará el MsgBox. Pero si hago exactamente lo mismo en SharpDevelop me dice que "Handles" requiere de una clausula "WithEvents" :S

¿Alguien me podría ayudar? Necesito usar ese handles porque quiero que esto funcione por doble click y no por uno :S

Gracias :)
#22
Cita de: Raul100 en  8 Agosto 2011, 06:58 AM
buenas ;D
pues yo diria que no te recomendaria que declares variables de clases asi:

Dim ListaTareas As ListaTareas_class = New ListaTareas_class

ya que son como temporales :P
y en el evento initialize de la clase ahi si se escribe para crear el objeto :P


Mmmm, ¿Te refieres a que use constantes? :)
Y perdóname ^^ ¿pero donde esta el evento initialize? xD
#23
He encontrado el problema xD Mira que un despiste y nada funciona >.< (pero es que llevaba ya tanto tiempo mirándolo que me había cegado :S)

El problema era donde estaba puesto la declaración de la creación del objeto y el metodo. Ahora la clase se crea nada más empezar la clase del modulo (del Main)

Public Partial Class MainForm
Dim ListaTareas As ListaTareas_class = New ListaTareas_class


Y el GenerateTask en primera linea del MainLoad

Menos mal ^^

Si alguien puede explicarme ya sólo lo de la declaración de variables me ayudaría mucho, porque me ahorraría el maldito GenerateTask >.<

Un saludo
#24
Saludos :)

Estoy haciendo un programa (bueno, más bien, mejorando el codigo de un programa mio) teniendo más en cuenta la POO pero, aunque funciona, no lo hace correctamente. A ver si alguien sabría decirme porqué >.<

Tengo una clase con varias variables privadas, que se generan por un metodo que no devuelve valor (sub) que le asigna a cada variable un valor. Esto esta hecho así, porque no entiendo porqué no me deja asignar los valores directamente en la clase, por ejemplo:

Código (vbnet) [Seleccionar]
Dim variableArray() As String
variableArray(0) ="Ejemplo 1"
variableArray(1) ="Ejemplo 2"


Me dice "declaration Expected" si lo hago asi, por lo que lo meti en el Sub y no dió más problemas... aunque no entiendo porqué, en cambio, si lo hago asi:

Código (vbnet) [Seleccionar]
Dim variableArray() As String = {"Ejemplo 1","Ejemplo 2"}

Sí funciona :( (pero es que queda muy poco claro, y son muchisimas variable y muchisimos datos para hacerlo "todo en una linea" la idea era que fuera más claro =(

Pero como funcionaba, más o menos me di por satisfecho, hasta que llego la parte en la que el programa llama a este metodo.

En un principio cree la clase en el Main, por ejemplo:

Código (vbnet) [Seleccionar]
Dim clase As Clase_class = New Clase_class
clase.GenerateTask '<- Asi es como he llamado al metodo para que asigne los valores


Pero, aunque no da error, no hace nada... es como si no llamara a ese metodo.
Este es el codigo del botón:


Código (vbnet) [Seleccionar]
Dim ListaTareas As ListaTareas_class = New ListaTareas_class
Sub General_programas_btnClick(ByVal sender As Object, ByVal e As EventArgs)
   ListaTareas.GenerateTask

   Me.general_tarea_info_lbl.Text= ListaTareas.ShowTaskName(0, 0)
   Me.general_info_info_lbl.Text = ListaTareas.ShowTaskInfo(0, 0)
End Sub



Como esta expuesto así sí funciona, pero claro, tengo muchos más botones, y no creo que sea una solución correcta (aunque funcionar, funciona) añadirle el GenerateTask en cada botón.
¡Es como decirle al programa que haga una y otra vez lo mismo no siendo necesario!

Estoy seguro que es un problema de lógica, que algo debo estar olvidando, pero por más que miro y miro el código, no sé me ocurre otra manera de hacerlo funcionar :(

Muchas gracias,
y un saludo ^^
#25
Hendrix: Logré encontrar un paquete por la mula de un VB6 que va en Vista  :laugh: asi que voy a analizar tu código  ;)

Chefito: Gracias, no sabia lo de keychar, provaré a ver como me va, ya comentaré algo por si en un futuro alguien tiene la duda que ya la tenga resuelta

Y no sabia lo del foro .NET, lo acabo de ver ahora, está curioso, pero ¿no es un foro orientado a Framework en general y este de Visual Basic  :o?

Saludos
#26
Gracias por tu ayuda Hendrix, pero el código esta en VB6 o anterior y en mi querido y odiado al mismo tiempo windows vista el visual basic 6 (el unico que tengo que no sea .NET) ha decidido que no piensa funcionar  :-\

De todos modos gracias por tu ayuda  ;)

PD: supongo que tendre que instalarme win98 (por las dudas) en una maquina virtual sino queda más remedio, asi que tu ayuda no queda en vano  ;D gracias  ;)
#27
no olvides poner el procedimiento antes de generar el Rnd:

Citar
Randomize()

O siempre te creara números en el mismo orden  ;)

saludos
#28
Buenas  ;)

Estoy haciendo un trabajillo bajo modo consola de una calculadora y por ahora todo está bien, pero se me ocurrió que sería "más chulo" si el programa analizase en una variable (conmocionada por console.readline) el texto ingresado... me explico:

Si el usuario escribre "2+2" pues que sea capaz de saber que el primer caracter es un operando, el segundo un simbolo (ingnorarlo) y el tercero el segundo operando)

Cree una función que recibiera dos valores integer (n1 y n2) y devolveira otro integer:

Citar
Return N1+N2 'En caso de suma

Pero luego cai en que no se como enviarle una parte del texto escrito a la función :o

Por ahora sólo funciona dandole los valores por separados, guardados en dos variables (a y b) y luego sumados... Se me ocurrio hacer lo del salto de espacios con {0,1} pero no se lo puedo añadir a un console.readline asi que no se me ocurre  :-[

Bueno, si a alguien se le ocurre mil gracias  ;D
Saludos
#29
Siempre he pensado con la solución de las cosas esta delante nuestro y casi siempre es la forma más sencilla, y más en este apasionante mundo de error-corregir de la programación...

demoniox12, muchas gracias, esa era la solución  ;D

edito: aun así si alguien sabe cómo convertir la variable a lo que me referia se lo agradecería, se me ocurren grandes cosas sabiendo eso, lo digo principalmente porque de la manera (muy correcta, gracias) de demoniox12 tengo conservar mi arrayd, y es algo de lo queria desacerme (por motivo de velocidad y cosas de esas  ;))

1 saludo
#30
Buenas a todos  ;)

Tengo una duda que no sé si es posible...

Tengo 3 variables que son: semana (Integer) curso (Integer) y total (String)

En el siguiente código:

   
Citartotal = "BBD.x" & semana & curso & ".text"

Significa que quiero que total me de, por ejemplo: BBD.x11.text, ¿para que quiero esto?
Tengo un form llamado BBD, en el cual tengo textbox llamados x11, x21, x31, etc... mi intención es que esa linea llame al form y al valor "text" del objeto calculo por las dos variables "semana" y "curso".... Ir va, pero el problema es que me lo da como un dato de texto (obiamente es String), mi duda es que quisiera que en vez de devolverme sólo texto me convierta la variable "total" como si realmente se escribiera ese código en VB...

En otras palabras, en vez de escribir:

Citarasignatura.Text = ("El " & cbx_curso.Text & " curso tiene " & horario(semana, curso))

quisiera que fuera:

Citarasignatura.Text = ("El " & cbx_curso.Text & " curso tiene " & total)

No sé si me expliqué.

Gracias de antemano  ;)