ayuda programacion en visual basic 6.0 escuela

psalm23

Bovino adolescente
#1
[/IMG]​
hola Bakunos agradeceria infinitamente su ayuda xq estoy bloqueado
con esta codificacion soy nevo en visual y la vdd no se q anda mal es este codigo
lo que pasa es que quiero ingresar coordenadas y que estas se me guarden en una matriz pero al precionar el boton pero descubri que si se guarda los datos pero al darle otra vez al boton con los valores siguientes los valores anteriores se me borran
ojala me puedan ayudar

Private Sub nombre_Change()
'definimos el nombre del proyecto
Dim nombreproyecto As Single
nombreproyecto = nombre.Text
End Sub

Private Sub vertice_Click()
If coord.Value = True Then Form2.Show
If coord.Value = False Then Form3.Show
Hide
End Sub

Private Sub sig_c_Click()
'definimos variables a ocupar
Static c As Integer
Dim x As Single
Dim y As Single
Dim numv As Integer
Dim n As Integer

' proceso ingreso de datos
numv = Form1.numvertice.Text
n = numv + 1
ReDim matriz(n, 6) As Single

x = coor_x.Text
y = coor_y.Text
c = c + 1
matriz(c, 3) = x
matriz(c, 4) = y
coor_x = Clear
coor_y = Clear
If c = numv Then
matriz(n, 3) = matriz(1, 3)
matriz(n, 4) = matriz(1, 4)
Form4.Show
End If
If c = numv Then
For i = 1 To n
Form4.registro.AddItem matriz(i, 1) & " " & matriz(i, 2) & " " & matriz(i, 3) & " " & matriz(i, 4) & " " & matriz(i, 5) & " " & matriz(i, 6)
Next i
Form4.Show
End If

End Sub
EDITO CODIFICACION Y ANEXO MAS DATOS

Al parecer el error ocurre porque en cada ves que presiono el boton el programa me crea una nueva matriz y elimima la matriz anterior por ejemplo si pongo que la matriz es de 2x6 en el listbox me aparece una matriz de 3x6 que es lo que quiero pero en la primer y ultima fila me aparecen sin valores (0) a diferencia de la fila 2 donde me aparecen los valores que le corresponde a c, asi me daria el mismo resultado de poner una matriz 3x6, los valores solo me apareceran para la fila 3
 

matrixasiel

Bovino maduro
#2
Mira por lo que veo esta bien pero si estoy en lo correcto la variable c debiria ser una varible global para asi moverse entre los renglones por vi que dicha variable es la que define en que renglon se va guardar, te recomiendo que cheques esa variable por que se me hace que esta fallando en esa variable.
 

psalm23

Bovino adolescente
#3
GRACIAS!!! MATRIXASIEL estoy fijando en ello ojala puedas ayudarme mas
puese la codificacion como la tengo hasta el momento y nomas no, no se si si tengoa q poner el contardor de ciclo c+1 y luego abrir una condicion if donde metra el proceso de ingreso de datos
 

matrixasiel

Bovino maduro
#4
Mira yo hice algo muy sencillito que espero que te sirva:
El arrerglo lo declare fuera de la funcion del boton en la seccion de General para lo verifiques.



Dim coord(1 To 6, 1 To 2) As Double
Private Sub cmdsiguiente_Click()
Static cont As Integer
cont = cont + 1
coord(cont, 1) = txtcx.Text
coord(cont, 2) = txtcy.Text
If MsgBox("Quieres agregar otra coordenada?", vbYesNo + vbQuestion) = vbNo Then
For x = 1 To 6
MsgBox "Coordenada X: " & coord(x, 1) & " y Coordenada Y: " & coord(x, 2)
Next x
End
Else
txtcx.Text = Clear
txtcy.Text = Clear
End If
End Sub
 

psalm23

Bovino adolescente
#5
ya quedo broo bueno casi jejeje solo tenia que redimensionar asi

ReDim Preserve matriz(n, 6) As Single
ahora el problema es cada que doy clic me imprime la matriz en el textlist no espera hasta q llene la matri pero eso lo soluciono mas al rato no creo q sea dificil solo tengo q revisar a bien la estructura del codigo

gracias por ayudarme amigo
 

matrixasiel

Bovino maduro
#6
Pues para que sea mas facil hay de 2 sopas, 1.- poner un boton que se llame finalizar y 2.- tomar una decision de que si es el final de la matriz imprima lo que esta guardado mas o menos asi:
creo que es con unbound o lbound algo asi, lo comparas con el contador
if lbound(matriz)=cont then
lstlista=matriz(3.3)
end if

mas o menos, necesitaria ver como vas.
 

psalm23

Bovino adolescente
#7
ya quedo matrixasiel gracias por todo ahora jeje no es que sea muy encajoso pero me podrias ayudar en como pasar los datos de la matriz a un list view

para que te des una idea lo q pasa es que la matriz se va a llenar von resultados de procesos que hara el programa con los datos que yo agrege
el chiste es que quiero una vez que tenga la matriz llena que esos datos se agregen a un listview de iguales caracteristicas osea si la matriz es de (n,6) que que el list view tenga sea una cuadricula de(n,6) solo necesito el proceso para hacer el llenado porfa si nos es mucha molestia
si no pues no hya bronca gracias x tu ayuda

edito
ya quedo resuelto
 

psalm23

Bovino adolescente
#8
ya al fin lo logre viejo disculpa tantas molestias
ya lo tengo quedo asi
If c = numv Then
For i = 1 To n
Form5.ListView1.ListItems.Add(i).Text = matriz(i, 1)
Form5.ListView1.ListItems.Item(i).ListSubItems.Add.Text = matriz(i, 2)
Form5.ListView1.ListItems.Item(i).ListSubItems.Add.Text = matriz(i, 3)
Form5.ListView1.ListItems.Item(i).ListSubItems.Add.Text = matriz(i, 4)
Form5.ListView1.ListItems.Item(i).ListSubItems.Add.Text = matriz(i, 5)
Form5.ListView1.ListItems.Item(i).ListSubItems.Add.Text = matriz(i, 6)
Next i
 
Arriba