Toon posts:

[vb.net] declareren in een loop

Pagina: 1
Acties:
  • 44 views sinds 30-01-2008

Verwijderd

Topicstarter
is het mogelijk om een object in een loop te declareren? Hieronder een voorbeeld:

Visual Basic:
1
2
3
4
5
dim i as short
for i = 1 to 100
    Dim arraynaam(i, 1) as new rectangle(arraynaam(i, 2), 
    arraynaam(i, 3), arraynaam(i, 4), arraynaam(i, 5))
next


dan haalt ie de coordinaten en namen uit de array. Er zou dus eigenlijk het volgende moeten komen te staan als alle waardes ingevuld zijn:

Visual Basic:
1
2
3
4
dim i as short
for i = 1 to 100
    Dim bakV001 as new rectangle(15, 25, 50, 30)
next


En kun je wel declareren achteraf zodat de variable in het hele programma bruikbaar is? En zo ja, met welk statement doe je dat dan?

[ Voor 4% gewijzigd door Verwijderd op 19-09-2004 19:46 ]


Verwijderd

Ik begrijp niet wat je wilt. Het code voorbeeld dat je gebruikt begrijp ik ook niet.
Wat ga je doen in VB.NET waarvan VB zegt dat het niet mag ?

Een array is niet zozeer een object maar een opsomming van objecten. De individuele elementen hoef je niet stuk voor stuk te dimmen, dat doet de array declaratie al. Je kan de elementen constructen met simpel "new".

Variabelen kan je dimmen in een loop, dan is de scope die loop. Als je variabelen buiten de loop nodig hebt, moet je ze voor de loop (in een grotere scope) dimmen.
Variabelen kan je globaal dimmen maar da's niet netjes programmeren. Complexe variabelen kan je ByRef passen, zie ook de handleiding van VB.

Verwijderd

Topicstarter
Ik begrijp niet wat je wilt. Het code voorbeeld dat je gebruikt begrijp ik ook niet.
Wat ga je doen in VB.NET waarvan VB zegt dat het niet mag ?
Ik heb de array al gedeclareert in de module (public), en dan worden de coordinaten voor de rectangles aan deze array toegevoegd in de form_load. dan worden de rectangles getekent vanuit de array d.m.v een functie in de module. Maar nu moeten deze rectangles nog gedeclareert worden om ze te kunnen identificeren als erop geklikt wordt.

maar nu is het punt dat de coordinaten op een gegeven moment wijzigen, omdat de rectangles zich aanpassen aan de schermgrootte. dit komt dan ook in de array en wel op plaats 6,7,8 en 9. vanuit die 4 plaatsen in de array moet de rectangle gedimt worden. maar dit moet dan voor 150 stuks gedaan worden. |:(

Ik hoop jullie hiermee uitgelegd te hebben waar ik precies mee bezig ben.

[ Voor 22% gewijzigd door Verwijderd op 19-09-2004 21:18 ]


Verwijderd

Ik begrijp het nog steeds niet helemaal. Zou het lukken als je in de module een globals functie resize zou bouwen ?

De module die de array herbergt kan je volgens mij beter in een klasse omzetten. Als mijn voorstel voor resize blijkt te voldoen, gaat het al erg veel op een klasse lijken.

Verwijderd

edit:

verkeerd gelezen dacht dat het om visual basic ging niet .NET.

[ Voor 73% gewijzigd door Verwijderd op 20-09-2004 11:21 ]


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 21-05 14:59

pjvandesande

GC.Collect(head);

Je hebt nu twee draadje lopen, met dezelfde vraag :?
[rml]questa in "[ vb.net] coordinaten + contains"[/rml]

  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 10-04 19:23

MrSleeves

You'll thank me later.

code:
1
arraynaam(i, 1) = new rectangle(arraynaam(i, 2), arraynaam(i, 3), arraynaam(i, 4), arraynaam(i, 5))
:?

30Drie Web Design & IT Consultancy | Raven Consultancy Services


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 19:24

gorgi_19

Kruimeltjes zijn weer op :9

Ik heb net [rml]mrgingles in "[ vb.net] coordinaten + contains"[/rml] doorgelezen en ik vind de verschillen tussen dit topic en je andere topic eigenlijk marginaal. :) Daarom doe ik deze dicht :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1

Dit topic is gesloten.