Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

matrices de textbox

Estas en el tema de matrices de textbox en el foro de Visual Basic clásico en Foros del Web. Tengo un problema a la hora de escribir en una matriz de textbox. Yo los que quiero es que cuando halla escrito en un de ...
  #1 (permalink)  
Antiguo 28/03/2008, 06:41
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
matrices de textbox

Tengo un problema a la hora de escribir en una matriz de textbox.

Yo los que quiero es que cuando halla escrito en un de los dos cuadros de la matriz (Text1(0)) un número de caracteres maximo por ej: 8 caracteres, entonces cuando siga sacando el resto de datos lo haga en el otro cuadro de texto de la matriz.

El programa que yo tengo hecho hasta hora sería este:

Private Sub Calcular_Click()
Dim tabla(2) As String
Dim tabla2(2) As String
Dim cont As Long

For a = 0 To 2
tabla(0) = a
For b = 0 To 2
tabla(1) = b
For c = 0 To 2
tabla(2) = c
cont = cont + 1
For x = 0 To 2
If tabla(x) = 0 Then tabla2(x) = "1"
If tabla(x) = 1 Then tabla2(x) = "X"
If tabla(x) = 2 Then tabla2(x) = "2"
Me.Text1(0).Text = Me.Text1(0) + tabla2(x)
Next
Me.Text1(1) = Me.Text1(1) + vbCrLf
TextBox = Text1(0).Text & Text1(1).Text
Me.Text1(0) = Me.Text1(0) + vbCrLf
Next
Next
Next
MsgBox (cont)
End Sub

En el formulario so lo hay 2 cuadros de texto y un boton
Cuadros de texto:
- Text1(0)
- Text1(1)
Boton:
Calcular
  #2 (permalink)  
Antiguo 28/03/2008, 09:07
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Re: matrices de textbox

Hola,me parece que lo que necesitas es usar Split() y te ahorras codigo...

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #3 (permalink)  
Antiguo 28/03/2008, 10:48
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: matrices de textbox

Entonces como lo harías tu???
  #4 (permalink)  
Antiguo 28/03/2008, 11:00
 
Fecha de Ingreso: junio-2005
Mensajes: 46
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: matrices de textbox

hola, ¿no te seria mas facil en el evento de TextBox1_TextChanged controlar el tamaño que se esta introduciendo y cuadno alcance el tamaño que tu kieres con len(textbox1.text) pasar el resto al otro?
  #5 (permalink)  
Antiguo 28/03/2008, 11:11
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: matrices de textbox

podrias porner un ejemplo. gracias por adelantado

nose como poner lo del LEN ( )

Última edición por Jassss; 28/03/2008 a las 11:18
  #6 (permalink)  
Antiguo 28/03/2008, 11:21
 
Fecha de Ingreso: junio-2005
Mensajes: 46
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: matrices de textbox

no se si es esto exactamente lo que quieres, pero bueno:

Dim maximoalcanzado As Boolean

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
maximoalcanzado=false
end sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If Len(Me.TextBox1.Text) > 8 Then
maximoalcanzado = True
End If
End Sub

entonces, donde generas el texto para meter en los textbox pones una condicion que sea:
if maximoalcanzado=false then
me.textbox1.text=(texto)
else
me.textbox2.text=(texto)
end if

Bueno, si espero que sea eso lo que necesitas
  #7 (permalink)  
Antiguo 28/03/2008, 12:01
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: matrices de textbox

lo estoy probando pero salen errores.

Si no te importe prueba en tu visual.

Creas 2 cajas de texto y un boton
Al pinchar el boton le pones mi codigo
y así te haces una idea y me podras ayudar mejorar.

Muchas gracías por adelantado.
  #8 (permalink)  
Antiguo 28/03/2008, 17:22
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Re: matrices de textbox

Hola,el codigo que te dio ireferpesa,es para visual basic .NET ,por eso te salen errores jeje.primero lei mal y pense que querias hacer otra cosa,pero ahora que lo leo bien,veo que lo podes hacer de varias formas,una por ejemplo asignarle el foco al otro textbox y listo.

Código:
Private Sub Text1_Change(Index As Integer)
If Len(Text1(0)) = 8 Then
Text1(1).SetFocus
End If
End Sub
o sea lo que yo entendi es que vos queres escribir en el primer textbox hasta que llege a 8 caracteres y que despues pase al otro textbox??

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #9 (permalink)  
Antiguo 28/03/2008, 18:37
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: matrices de textbox

muchas gracias seba123neo, pero así tampoco funciona.
Ahora no da errores pero en el primer textbox salen más de 8 caracteres.
Si se te ocurre otra cosa te agradeceria que me la digeras.
Muchas gracias por adelantado.

Por cierto entendiste bien jajaja. En el primero solo 8 caracteres y luego que pase al otro.
  #10 (permalink)  
Antiguo 28/03/2008, 19:28
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Re: matrices de textbox

te tiene que funcionar,es un codigo simple,tenes 2 textbox en matriz ,si escribis 8 caracteres en uno salta al otro,no entiendo porque no te anda,probalo en un proyecto nuevo y pega ese codigo tal cual esta y te tiene que ir...

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #11 (permalink)  
Antiguo 29/03/2008, 09:51
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: matrices de textbox

Si funciona. pero solo cuando lo haces manualmente. Yo lo que lo que quiero es que cuando tu pulses el boton empiece el programa a escribir en un cuadro de texto y cuando llegue a 8 caracteres continue escribiendo el resto de los datos en el otro cuadro de texto.

Muchas gracias por los mensajes anteriores. Espero respuesta
  #12 (permalink)  
Antiguo 29/03/2008, 10:25
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Re: matrices de textbox

¿vos queres que al apretar un boton vaya escribiendo uno a uno los caracteres por cada pulsacion del boton?,lo que no se bien es que es lo que vos queres ir escribiendo,si es eso proba asi,cada vez que apretas el boton te escribe un caracter en el textbox y despues al llegar a 8 pasa al otro.

Código:
Private Sub Command1_Click()
If Len(Text1(0)) = 8 Then
Text1(1).Text = Text1(1).Text & "a"
Me.Caption = "cambiaste de textbox"
Else
Text1(0).Text = Text1(0).Text & "a"
End If
End Sub
saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #13 (permalink)  
Antiguo 29/03/2008, 11:29
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: matrices de textbox

No me estoy explicando bien. Yo tengo un formulario con:

2 cuadros de texto y 1 boton

El codigo del boton es este:

Private Sub Command1_Click()
Dim tabla(2) As String
Dim tabla2(2) As String
Dim cont As Long
Dim cont2 As Long

For a = 0 To 2
tabla(0) = a
For b = 0 To 2
tabla(1) = b
For c = 0 To 2
tabla(2) = c
cont = cont + 1
cont2 = cont2 + 1
If cont = 30 Then
cont = 1
Me.Text1(0) = Me.Text1(0) + vbCrLf + vbCrLf
End If
For x = 0 To 2
If tabla(x) = 0 Then tabla2(x) = "1"
If tabla(x) = 1 Then tabla2(x) = "X"
If tabla(x) = 2 Then tabla2(x) = "2"
Text1(0).Text = Me.Text1(0) + tabla2(x)
Next
Me.Text1(0) = Me.Text1(0) + vbCrLf
Next
Next
Next
MsgBox (cont2)
End Sub

Cuando lo he pulsado, en uno de los cuadros sale esto:

111
11X
112
1X1
1XX
1X2
121
12X
122
X11
X1X
X12
XX1
XXX
XX2
X21
X2X
X22
211
21X
212
2X1
2XX
2X2
221
22X
222

¡¡¡¡HASTA AQUI TODO BIEN!!!!!

Que son todas las combinaciones posibles de 1,x,2. (3 partidos de la quiniela)

Entonces el problema es el siguiente:

Mi intencion es que en un cuadro muestre una parte de los datos (8 caracteres o 10 filas) y el otro cuadro muestre el resto de los datos.

Espero haberme explicado mejor.

Gracias por tu colaboración.
  #14 (permalink)  
Antiguo 29/03/2008, 13:10
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Re: matrices de textbox

bueno Jassss,ahora mas o menos entendi mejor lo que queres hacer con tu explicacion,digamos que este codigo le hice una mezcla de cosas para que haga lo que vos queres jejej,pero puede haber otra forma,pero bueno esta es la que yo encontre..primero tiene una funcion para limitar el numero de lineas de un textbox multilinea y despues lo que hice fue una matriz para ir sacando el resto de las lineas y copiarlas al otro textbox:

Código:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Function Limitar(tbLimit As TextBox, lMaxNumLines As Long) As Boolean
Dim lLength As Long, sText As String
Const EM_GETLINECOUNT = &HBA, EM_LINELENGTH = &HC1
Const EM_SETSEL = &HB1, EM_REPLACESEL = &HC2
On Error GoTo ErrFailed
With tbLimit
Do
If SendMessage(.hwnd, EM_GETLINECOUNT, 0&, ByVal 0&) > lMaxNumLines Then
sText = .Text
If Right$(sText, 2) = vbNewLine Then
.Text = Left$(sText, Len(sText) - 2)
.SelStart = Len(sText) - 2
Else
.Text = Left$(sText, Len(sText) - 1)
.SelStart = Len(sText) - 1
End If
Else
Exit Do
End If
Loop
End With
Limitar = True
Exit Function
ErrFailed:
Limitar = False
End Function

Private Sub Command1_Click()
Dim tabla(2) As String
Dim tabla2(2) As String
Dim cont As Long
Dim cont2 As Long
For a = 0 To 2
tabla(0) = a
For b = 0 To 2
tabla(1) = b
For c = 0 To 2
tabla(2) = c
cont = cont + 1
cont2 = cont2 + 1
If cont = 30 Then
cont = 1
Me.Text1(0) = Me.Text1(0) + vbCrLf + vbCrLf
End If
For x = 0 To 2
If tabla(x) = 0 Then tabla2(x) = "1"
If tabla(x) = 1 Then tabla2(x) = "X"
If tabla(x) = 2 Then tabla2(x) = "2"
Text1(0).Text = Me.Text1(0) + tabla2(x)
Next
Me.Text1(0) = Me.Text1(0) + vbCrLf
Next
Next
Next
Static i As Integer
Dim lines() As String
lines = Split(Text1(0), vbCrLf)
For i = 10 To 27
Text1(1) = Text1(1) & lines(i) & vbCrLf
Next
Limitar Text1(0), 10
End Sub
apretas el boton y te aparecen solo 10 lineas en el primer textbox y en el otro te aparecen todas las que siguen...

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #15 (permalink)  
Antiguo 29/03/2008, 16:07
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: matrices de textbox

Eres un crack¡¡¡¡¡¡
Muchas gracias.Eso es lo que yo quería.

Ahora tengo otra duda.
Explico:

Yo lo que estoy intendo hacer es un programa que saque todas las combinaciones posibles de una quiniela (14 partidos), lo que serían 14.348.907 variantes diferentes.

Yo e probado de diferentes formas pero no acabo de conseguirlo, la cosa es que da fallos de desbordamiento. Claro que es normal porque son la ostía de datos los que tiene que sacar jajajaja.

Creo que sacar esto adelante sería todo un reto.Si alguien sabe como podria hacer que me diga.Espero comentarios.Gracias por adelantado.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:03.