Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

soloplayer

Data Grid e Arrays

Recommended Posts

Olá amigos, estou precisando preencher um data grid com dados de um array, de modo que se tiver 5 posicoes o array, ele preenche tanto linhas como colunas, ficando um data grid com 5 linhas e 5 colunas, nao tenho a minima ideia de como seja feito isso.se der para postar algum codiguinho para eu fazer isso eu agradeco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para colocar colunas de acordo com o número de posições de um array você pode utilizar a função ubound:

for x=0 to ubound(array)  'adiciona coluna e linhanext x

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo e como fica então para preencher o grid veja meu raciocinio se esta certo:

 

for x=0 to ubound(array) Grid1.Row = (a quantidade de linha digitada no array)  Grid1.Col = (a quantidade de coluna digitada no array)next x

se digitei dois ai o array fara a lista ficar assim:

 

___________

!_____!______!

!_____!______!

 

duas linhas e duas colunas. Como faco isso amigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo consegui fazer ficou assim:

 

Olá amigo, deu certo com certeza, e eu gostaria que se ele se relacionasse com o numero do loop ele recebesse um booleam falso preenchendo o datagrid ou receber 1 ou 0, o codigo ficou assim:[code]	For i = 1 To text1		For j = 1 To text1			If i <> j Then				If MsgBox("Deseja relacionar " & i & " com " & j & "?", vbYesNo) = vbYes Then					'aqui eu já sugeri o que colocar (um array dentro de outro)										 DataGrid1.Refresh					 Datagrid1.Columns.add(i)					 					 'OBS gostaria de preencher as linhas e colunas com o valor 0 se no meu avento					 'vbYesNo a pessoa der nao e 1 se der sim e estes dados serem preenchidos no DataGrid					 'no que eu fiz acima DataGrid1.Columns.add(i) ele preenche so a linha com os dois loops				 				 End If			End If		Next j	Next i

 

So que no trecho que comentei nao consegui preencher os dados da DataGrid1 com os dados do loop ou array q eu tenho. por exemplo se eu digitar 3 meu DataGrid tem que ficar com 3 linhas e tres colunas e estes dados, ao perguntar se vai relacionar ele envia 0 ou 1 dependendo do que o user disser se relaciona ou nao.

 

E pelo fato dele perguntar se desejo relaciona 1-1, 1-2, 1-3 e assim sucessivamento, gostaria que ja que ele recebe um YES ou um NO ele nostrar uma busca dizendo qual que relaciona e qual nao relaciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fui tentar fazer com datagrid aqui, mas não consegui achar um meio de acrescentar novas linhas. Daí lembri do FlexGrid, ele é bem melhor para isso que você quer fazer.

 

Fiz o seguinte código, olha de funciona:

flexgrid.Rows = Val(Text1)flexgrid.Cols = Val(Text1)	For i = 1 To Text1		For j = 1 To Text1			If i <> j Then				If MsgBox("Deseja relacionar " & i & " com " & j & "?", vbYesNo) = vbYes Then					flexgrid.TextMatrix(i - 1, j - 1) = "1"				Else					flexgrid.TextMatrix(i - 1, j - 1) = "0"				End If			End If		Next j	Next i

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nos 'for',' .rows' e '.cols' é só tirar o text1 e colocar ubound(matriz), já que a matriz "será um quadrado" não precisa diferenciar qual ubound vai pegar (se do primeiro indice ou do segundo). Começar os 'for' de 0 e não de 1 e tirar os '-1' do código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, Tks mesmo vou testar ao anoitecer na faculdade e lhe digo, vou apresentar hoje o trabalho e valew pela forca ae amigos, voces sao realmente feras mesmo da programacao, eu programo, mas estou querendo me especializar melhor, mas trabalho e faco faculdade dou aula, afff maior correria e se nao é pessoas como voces, empenhadas em ajudar nos teriamos a maior dificuldade imagina so ehehhe, amigos vou apresentar hoje o que fiz e vou implementar o topico acima amigo Luiz, grato ae feras.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo, consegui testar, ficou assim:

 

flexgrid.Rows = ubound(a)flexgrid.Cols = ubound(a)	For i = 1 To ubound(a)		For j = 1 To ubound(a)			If i <> j Then				If MsgBox("Deseja relacionar " & i & " com " & j & "?", vbYesNo) = vbYes Then					flexgrid.TextMatrix(i - 1, j - 1) = "1"				Else					flexgrid.TextMatrix(i - 1, j - 1) = "0"				End If			End If		Next j	Next i

mas ta dando um erro: Subscript out of rage.

 

Nao sei o porque deste erro, amigo se der para voce postar como ficara este código eu lhe agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse erro só pode estar dando na hora que você tenta escreve na flexgrid (textmatrix) se você escolher uma linha e/ou coluna que não exista.

 

Eu peguei esse código aí de cima e coloquei isso antes:

b = CInt(InputBox("lala"))Dim a()ReDim a(b)
E funcionou certinho aqui, dá uma verificada de como você tá fazendo para carregar essa matriz ou se ela não está com apenas um item. Que seria de índice 0 e por isso na hora de criar as colunas/linhas elas não seriam criadas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola amigo, agora deu certo, voces sao os kras, so que vou pedir mais ajuda a voces, tenho que implementar mais funcoes ao sistemas de busca a grafos, e isto serve para estudo de universitarios e quem esta fazendo pesquisa com buscas, amigo e gostaria de saber se voce nao tem algum material ae de procedures e fuctions em VB, estou tentando achar isso se tiver eu agradeco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.