Visual basic 2005 + Labels + Arrays

PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.

Moderadores: Administradores, Moderadores

Visual basic 2005 + Labels + Arrays

Mensagempor ruben.rodrigues » Sexta Jul 24, 2009 22:37

Boas!

Eu na escola aprendi a programar com visual basic 6 (versao de 1996) mas agora estou a usar o visual studio 2005 e nao me estou a dar bem com as diferenças.

Tou a fazer o jogo 4 em linha (so para reavivar a memoria pois ja o fiz a uns anos) e tou a ter problemas com o controlo dos labels porque antigamente os labels tinham uma propriedade chamada index e que fazia uma especie de array o que me dava muitissimo jeito porque seria mais facil controlar cada fila vertical.

1,1 ; 1,2 ; 1,3 ; 1,4 ; 1,5 ; 1,6 ; 1,7
2,1 ; 2,2 ; 2,3 ; 2,4 ; 2,5 ; 2,6 ; 2,7
3,1 ; 3,2 ; 3,3 ; 3,4 ; 3,5 ; 3,6 ; 3,7
...................................
6,1 ; 6,2 ; 6,3 ; 6,4 ; 6,5 ; 6,6 ; 6,7

O que é que aconteceu a isso?

P.S. Embora saiba usar a linguagem sou novato no visual studio 2005
ruben.rodrigues
Novato
Novato
 
Mensagens: 14
Registado: Quarta Jul 22, 2009 17:06

Mensagempor MetalFatigue » Sábado Jul 25, 2009 8:01

Eu trabalhei com os 2 (VB6 e VB.net), apesar de já não me lembrar muito bem do 6. No entanto trabalho hoje em dia muito com VBA que é semelhante. Ao inicio quem não está habituado estranha, uma vez que é uma linguagem totalmente redesenhada (para melhor) e com suporte total de objectos. Por isso não desistas de aprender porque está a ser diferente, uma vez que é bem melhor que o 6.

Julgo que tás a tentar usar labels para mostrar o que os teus jogadores estão a fazer.

Tens várias soluções para o teu problema, a meu ver. Uma será usar arrays 2D em que cada casa da matriz vá estar ligada através de procedimentos as labels. Esta não é muito prática e funcional. Outra que descobri rapidamente no google e semelhante ao que usavas anteriormente, é usar arraylists com as labels lá dentro ou entao usares os controls da form. http://forum.jamesfoxall.com/archive/in ... t-202.html

Se percebe-se melhor como estás a construir o jogo, ou pelo menos essa parte, poderia te ajudar melhor.
*-ASUS P5K-PRO
-Intel Core 2 Duo E8200
-2x2GB PC6400 Team Elite
-RAID0 2xSeagate SP 500GB + WD Green 1TB
-GF 9600GT
-MSI TV @nywhere Master
*-Toshiba A200-21T

http://souprimeiroministro.pt.vu
MetalFatigue
Membro de Ouro
Membro de Ouro
 
Mensagens: 654
Registado: Quarta Out 20, 2004 14:31
Localização: Bobadela

Mensagempor ruben.rodrigues » Sábado Jul 25, 2009 16:37

MetalFatigue Escreveu:Eu trabalhei com os 2 (VB6 e VB.net), apesar de já não me lembrar muito bem do 6. No entanto trabalho hoje em dia muito com VBA que é semelhante. Ao inicio quem não está habituado estranha, uma vez que é uma linguagem totalmente redesenhada (para melhor) e com suporte total de objectos. Por isso não desistas de aprender porque está a ser diferente, uma vez que é bem melhor que o 6.

Julgo que tás a tentar usar labels para mostrar o que os teus jogadores estão a fazer.

Tens várias soluções para o teu problema, a meu ver. Uma será usar arrays 2D em que cada casa da matriz vá estar ligada através de procedimentos as labels. Esta não é muito prática e funcional. Outra que descobri rapidamente no google e semelhante ao que usavas anteriormente, é usar arraylists com as labels lá dentro ou entao usares os controls da form. http://forum.jamesfoxall.com/archive/in ... t-202.html

Se percebe-se melhor como estás a construir o jogo, ou pelo menos essa parte, poderia te ajudar melhor.



Obrigado pela resposta e desculpa a demora mas hoje foi dia de dormir até tarde.

Eu preciso do index dos labels porque quando o jogador carrega no butao 1 correspondente a fila vertical 1, um contador eleva o seu valor em 1, ou seja cont=cont + 1. A seguir quero mudar esse label que tem uma imagem, para uma certa posiçao. Se tivesse acesso ao index do label podia dizer label(cont).top = label(cont).top + 100. E ele iria descer 100 px mas como nao tenho acesso ao index tenho que programar para os 6 labels de cada coluna.

if cont=1 then
Label1.top = label1.top +100
end

if cont=2 then
Label2.top = label2.top +200
end

....

if cont=6 then
Label6.top = label6.top +100
end

como ja disse com o index era so enviar o numero do index para um processo e ja tava.
ruben.rodrigues
Novato
Novato
 
Mensagens: 14
Registado: Quarta Jul 22, 2009 17:06

Mensagempor MetalFatigue » Sábado Jul 25, 2009 21:13

No site que coloquei tinhas la uma forma de conseguires isso (o exemplo é com textboxes mas vai dar ao mesmo). Basicamente colocas as labels dentro de uma arraylist. sendo assim cada label vai ter uma posição no arraylist, que pode ser chamada por um index.

Dim arrTextbox(10) As TextBox

arrTextbox(0) = Textbox0
arrTextbox(1) = Textbox1
etc.

depois chamar por exemplo a textbox6 com arrTextbox(6).top=arrTextbox(6).top + 100

Isto porque o array vai ser do tipo textbox(para o teu caso label)

Mas refere-te ao site para melhor informação.

É possivel no entanto que tenhas de criar as labels programáticamente.
*-ASUS P5K-PRO
-Intel Core 2 Duo E8200
-2x2GB PC6400 Team Elite
-RAID0 2xSeagate SP 500GB + WD Green 1TB
-GF 9600GT
-MSI TV @nywhere Master
*-Toshiba A200-21T

http://souprimeiroministro.pt.vu
MetalFatigue
Membro de Ouro
Membro de Ouro
 
Mensagens: 654
Registado: Quarta Out 20, 2004 14:31
Localização: Bobadela


Voltar para Programação

Quem está ligado:

Utilizador a ver este Fórum: Nenhum utilizador registado e 1 visitante

cron