• Sábado 4 de Mayo de 2024, 09:13

Mostrar Mensajes

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


Mensajes - calichecal

Páginas: [1]
1
Visual Basic para principiantes / Re: Abrir una aplicación con un vbs
« en: Jueves 27 de Agosto de 2009, 21:58 »
Shell "CArchivos de programaMicrosoft OfficeOffice10WINWORD.EXE", vbNormalNoFocus

2
Cita de: "Boxcarpilot"
Bueno vengo de programar mucho en java.
Me han pedido un trabajo que segun mi criterio es mejor trabjar en VB 6.0

El punto esq necesito saber como Cargar e Imprimir en Pantalla una Matriz  5x5



Cualquier idea es bienvenida, muchas gracias.

PD: Ya la cargue, pero fue a la ruda, osea asigando, me gustaria cargarla con ciclos de repeticion (piendole datos al user con InputBox) como lo hago en Java, pero no se como...

Para cargar e imprimir una matriz bidimencional  usando inputbox :
  Dim matriz() As Integer    [ en declaraciones]

Private Sub Form_Load()

Dim c As Integer, f As Integer, i As Integer, i2 As Integer
c = InputBox("ingrese el numero de columnas :")  
f = InputBox("ingrese el numero de filas :")
ReDim matriz(1 To c, 1 To f)
For i = 1 To c
  For i2 = 1 To f
  matriz(c, f) = InputBox("ingrese el dato numerico de la columna " _
  & i & " de la fila " & i2)
  Print "fila "; i2; " columna "; i; " = "; matriz(c, f)
  Next i2
  Next i
end sub

3
Visual Basic para principiantes / error raro en matrizes
« en: Lunes 27 de Julio de 2009, 02:00 »
SALUDOS , estoy haciendo una calculadora y utilize una matriz de controles para las teclas de los digitos ,resulta que cuando fui a probarlos a partir de la tecla 5 me aparece un error diciendome " la matriz 5 no existe "y haci hasta la 9 ,y no se donde sera el problema pues se supone las 9 teclas tienen el mismo codigo y de la tecla 4 para abajo si funcionan bien ,agradesco la ayuda aqui esta el codigo de la matriz digitos=

Private Sub digitos_Click(Index As Integer)
Dim numero As String
If numoperandos = 0 And operacion(Index).Caption = "-" Then
ultimaentrada = digito_
End If
If ultimaentrada <> digito_ Then
If digitos(Index).Caption = "0" Then Exit Sub
pantalla.Caption = ""
puntodecimal = False
ultimaentrada = digito_
End If
numero = pantalla.Caption
pantalla.Caption = numero & digitos(Index).Caption

4
Visual Basic para principiantes / Re: problema al sumar matris bidimencional
« en: Viernes 24 de Julio de 2009, 01:29 »
Cita de: "Nebire"
Bueno, veamos, varias cosas que decir... empezaré por la raíz, y terminaré por tu problema.

En el código evita utilizar nombres de variables inexpresivas, es decir variables como: i,12,sf,sc no significan nada, tú las entiendes hoy, si guardas el código un mes y luego lo relees es probable que recuerdes que se esperaba del programa pero si llevas la atención a una línea cualquiera y ves sc=0 no sabrás que está haciendo... por ejemplo sf podrías llamarlo Total1 y sc podrías llamarlo total2 a c lo podrías llamar Entrada1 y a f entrada2 o bien a c 'columna y a f Fila que imagino era la idea, la única excepción honrosa para esto suelen ser las variables de bucles si no tiene un propósito anterior, sin embargo en en bucles anidados usa variables consecutivas i,j,k,l,m además si te acostumbras a usar siempre un punto inicial y mantienes esa regla si ves k y siempre empiezas por i sea donde sea en tu código sabrás que k es el 3º bucle anidado... para corregir errores o despistes un simple conjunto de reglas para establecer nombres o mejor para no cometer errores es primordial...

A lo que veníamos...
El código es totalmente correcto en su ejecución, la razón porque tu no ves nada es porque no has elegido la rutina adecuada para presentarlo, si el código lo ejecutaras desde un botón verías que funciona correctamente.
Es que no se puede usar el load ?. Si, claro que se puede, pero hay que saber que significa el evento load... imagina que te digo me voy de viaje a Méjico, dicho así parece que eso es todo, pero previamente hay una cascada de sucesos... está la función comprar billetes para méjico, esperar la fecha del viaje, hacer las maletas, tomar el bus hasta el aeropuerto, facturar el equipaje y esperar el embarque, embarcar, despegar y viajar, finalmente llego a méjico..

El load del formulario es una aventura similar... cuando se abre un formulario por primera vez hay una cascada de eventos, primero hay uno que se llama initialize en él se deben poner el código de asignación de valores que se establecen una vez para toda la vida del formulario, luego viene otro que se llama activate recibe el enfoque lo que significa que el control que previamente lo tenía lo pierde, luego viene el load que es donde se debe poner el código que se debe ejecutar cada vez que se carga el formulario, initialize sólo se ejecuta 1 vez sería como si lo llamáramos construir, load sería como si lo llamáramos abrir las puertas, después del load viene el evento show este se encarga de dibujar todo el contenido por ejemplo los controles dentro del formulario se cargan en esta fase y finalmente viene el evento paint que es hacerlo visible, show lo carga gráficamente en memoria y paint lo vuelca al monitor.

Ahí está tu error, tu dibujas en el formulario con print, pero no son gráficos persistentes, cuando se ejecuta el evento paint, por tanto queda borrado. Puedes hacer una de 2 cosas, o bien previamente estableces la propiedad autoredraw = true, tal como se muestra en el código...
Código: Visual Basic
  1.  
  2. Private Sub Form_Load()
  3.     Dim c As Integer, f As Integer, i As Integer, i2 As Integer, sc As Integer, sf As Integer, a As Integer
  4.     AutoRedraw = True ' <====================== mirar aquí ================================================
  5.     c = InputBox("ingrese el numero de columnas :")
  6.     f = InputBox("ingrese el numero de filas :")
  7.    
  8.     ReDim mama(1 To c, 1 To f)
  9.   .....
  10. end sub
  11.  
  12.  
Que lo convierte en un fráfico persistente, o bien precipitamos que el formulario se exhiba y luego dibujamos en él... dentro del propio evento load, esto se haría como se indica en el código de ejemplo:

Código: Visual Basic
  1.  
  2. Private Sub Form_Load()
  3.     Dim c As Integer, f As Integer, i As Integer, i2 As Integer, sc As Integer, sf As Integer, a As Integer
  4.     me.show ' <====================== mirar aquí ================================================
  5.     c = InputBox("ingrese el numero de columnas :")
  6.     f = InputBox("ingrese el numero de filas :")
  7.    
  8.     ReDim mama(1 To c, 1 To f)
  9.   .....
  10. end sub
  11.  
  12.  
El me.show fuerza a que se ejecuten los otros eventos restantes shoe y paint antes de continuar con la carga.

Pero vamos dado que el código que pones no es imprescindible durante la carga lo ideal es que lo ejecutaras desde un botón....

ahora resulta que me imprime el resultado de  la ultima ultima fila y la ultima columna, y el resto  la imprime pero resultado cero,

5
Visual Basic para principiantes / Re: ¿Como hago un software para cajero?
« en: Jueves 23 de Julio de 2009, 18:21 »
pues yo lo ise con un while dentro de un if para cada billete asi =
 

if cantidad >= 50000 then
 while not cantidad < 50000
 cantidad = cantidad - 50000
 variable50000 = variable50000 + 1
 wend
 end if
y me funciono perfectamente.

6
Visual Basic para principiantes / problema al sumar matris bidimencional
« en: Viernes 17 de Julio de 2009, 21:49 »
saludo ,ahora en visual basic 6.0 estoy en el tema de las matrises  ,pero tengo el problema de que quiero sumar las filas y las columnas de una matris bidimencional ,pero no me quiere salir ,he revisado el codigo varias veces y la verdad no encuentro la falla ,todo parece estar bien ,agradesco la atencion al que me saque de esta duda,este es el codigo:

Dim mama() As Integer
Private Sub Form_Load()

Dim c As Integer, f As Integer, i As Integer, i2 As Integer, sc As Integer, sf As Integer, a As Integer
c = InputBox("ingrese el numero de columnas :")
f = InputBox("ingrese el numero de filas :")
ReDim mama(1 To c, 1 To f)
For i = 1 To c
  For i2 = 1 To f
     mama(c, f) = InputBox("ingrese el dato numerico de la columna " _
     & i & " de la fila " & i2)
  Next i2
 Next i
For i2 = 1 To f
   sf = 0
  For i = 1 To c
     sf = sf + mama(i, i2)
  Next i
  Print " suma fila "; i2; " = "; sf
Next i2
For i = 1 To c
  sc = 0
  For i2 = 1 To f
     sc = sc + mama(i, i2)
  Next i2
  Print "suma columna "; i; " = "; sc
Next i
End Sub

7
Cita de: "m0skit0"
Cita de: "calichecal"
a visual no es el mas basico ,es el mas facil de usar osea de alto nivel y mas poderoso, el mas utilizado en el mundo".
:huh: No es el más utilizado en todo el mundo ni el más poderoso ni de lejos. De hecho VB6 es uno de los peores lenguajes en cuanto a diseño e implementación: genera mucho código, mal optimizado, gasta memoria inútilmente... Otra cosa es que sea de muy alto nivel (en cuanto a programación, me refiero) y permita interactuar con Windows de manera sencilla. La sencillez tiene sus defectos :P
saludos , deje la bronca ,tranquilo "solo es un poco de sentido de pertenencia"

8
Visual Basic para principiantes / Re: Conversor de Unidades
« en: Miércoles 1 de Julio de 2009, 19:21 »
Cita de: "m0skit0"
Yo haría enums con vectores.

Saludos
saludos mosquito ,

9
usa el control timer cambias su propiedad intervalo  ,el intervalo de tiempo  en el que quieras que se repita una accion ,que seria repetir una palabra  ;1000 equivale a un segundo ,claro que no se que tanto sepas de visual,por que si esta muy recien necesitaras una explicacion mas detallada " a visual no es el mas basico ,es el mas facil de usar osea de alto nivel y mas poderoso, el mas utilizado en el mundo".

10
Visual Basic para principiantes / Re: Conversor de Unidades
« en: Miércoles 1 de Julio de 2009, 18:01 »
yo estuve haciendo hace meses tambien un conversor ,utilize un formulario mdi y otros estandar con su propiedad mdichild en true y un menu para seleccionar el tipo de conversion ,en este caso =  un menu podria llamarse peso llamaria la ventana estandar  para  peso que tendria aparte su subrutina de codigo y de ahy en adelante es cuestion de imaginacion tuya el saber interactuar con los objetos y variables , yo personalmente utilizaria if con if anidados y renombrando variables, ESPERO QUE ME HALLAS AGARRADO LA IDEA ,DUDAS PUEDES ESCRIBIRME A stevenson.exe@gmail.com

11
Visual Basic 6.0 e inferiores / Re: BUCLE INFINITO "como evitarlo"
« en: Miércoles 24 de Junio de 2009, 23:20 »
Cita de: "m0skit0"
¿Y las etiquetas de código? Mira que lo repito veces y soy pesao  :lol:

Fíjate que tú pones como condición de que se repita el bucle a < 10. Y repites

Código: Visual Basic
  1. text1.text = val (a) + 1
  2.  
Este código no cambia el valor de a, por tanto a será siempre el valor de text1.text antes de empezar el bucle. Por tanto nunca llegará a ser mayor que diez. Por tanto nunca sales del bucle.
HABER SI ENTENDI  : ES COMO SI EN A QUEDARA CON EL VALOR  DEL TEXT1.TEXT DE CUANDO EMPEZO EL BUCLE? :wacko:

12
Visual Basic 6.0 e inferiores / Re: BUCLE INFINITO "como evitarlo"
« en: Miércoles 24 de Junio de 2009, 21:05 »
Cita de: "m0skit0"
Pon tu bucle y te lo explicamos. Seguramente tu condición está mal.

PD: no olvides las etiquetas de código...


 Private Sub Command1_Click()                                
 Dim a as integer                                              
 a = text1.text
  while a < 10
 text1.text =  val (a) + 1
wend
end sub

Private Sub Timer1_Timer()             [propiedad interval  =  1000]
text1.text = val(text1.text) + 1
end sub

13
Visual Basic 6.0 e inferiores / BUCLE INFINITO "como evitarlo"
« en: Miércoles 24 de Junio de 2009, 02:43 »
estoy tratando  de utilizar un while solo por practicar que empieze con el evento clip de un command ,he leido y seguido al pie de la tetra la estructura de esa instruccion pero siempre termino en un bucle infinito xd....agradesco la ayuda para el que sepa como es la adecuada utilizacion de while y su utilidad...

Páginas: [1]