Toon posts:

[vb] Object Array / verschillende objecten

Pagina: 1
Acties:

Verwijderd

Topicstarter
Is het mogelijk om een array te maken van verschillende objecten. Wat ik bedoel is dat object(1) dus bijvoorbeeld een txtBox is en object(2) een checkBox. Object(3) een comboBox, enz

Als ik het probeer krijg ik de foutmelding dat een array uit allemaal dezelfde objecten moet bestaan. Maar het zou toch wel erg makkelijk zijn als dit niet nodig zou zijn.

  • whoami
  • Registratie: December 2000
  • Laatst online: 08:43
Dit is mogelijk, maar ik weet niet of dat in VB mogelijk is.

In talen zoals Java, C++, C#, Object Pascal heb je nl. iets dat je in VB niet hebt: inheritance en polymorphisme.
In C# bv, zijn alle classes afgeleid van de class object. Als je daar dus een array creeërt van het type object, dan kan je er eigenlijk objecten in kwijt zoals een TextBox, een Button, ... Ze zijn nl. allemaal afgeleid van object en dus ook eigenlijk van het type object. At runtime weet het programma dat bv het object in die object tabel bv. eigenlijk een TextBox is. (polymorphisme).

Maar aangezien VB geen inheritance en polymorphisme ondersteund, weet ik niet hoe ze dat in VB oplossen, of als dat überhaupt al mogelijk is.

https://fgheysels.github.io/


  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Probeer eens een Collectie, volgens mij kan je daar van alles door elkaar inhangen, je moet alleen in zo'n geval wel zelf goed bijhouden welk element wat is.

  • LauPro
  • Registratie: Augustus 2001
  • Laatst online: 05-09 11:09

LauPro

Prof Mierenneuke®

Je moet een variable declareren als een object:
code:
1
Dim Objecten(10) As Object

En dan kan je geloof ik met zoiets:
code:
1
2
Set Objecten(0) = New PictureBox
Set Objecten(1) = New TextBox

Ze een waarde geven, probeer maar is.

Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 02-09 19:44

Gerco

Professional Newbie

Ok, als je een array wilt maken van controls (textbox/combobox, e.d.) dan maar je een array van het type (jaja) Control <-- !!!
code:
1
2
3
4
  Dim ctls(1 to 10) As Control

  ctls(1) = Textboxje
  ctls(2) = ComboBoxje

VB kent dan inderdaad wel geen geen inheritance, maar WEL interfaces...

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Topicstarter
thx, ik denk dat het hiermee wel moet lukken :)

Verwijderd

gebruik collections. . en vergeet de rest .. want voor jou vraag zijn nou JUIST collections gemaakt

Verwijderd

Topicstarter
Met Collections werkt het inderdaad beter.
Ik heb het nu op deze manier gedaan:

Dim Objecten As New Collection

Objecten.Add tekst1, "0"
Objecten.Add check1, "1"
Objecten.Add combo1, "2"
Objecten.Add tekst2, "3"

Objecten("0") = "hallo"
Objecten("3") = "hallo"
Objecten("2") = "Cool"
Objecten("1") = 1

Objecten("2").AddItem ("Test")

  • whoami
  • Registratie: December 2000
  • Laatst online: 08:43
Tip: als je code post, zet dan even code-tags rond die code aub... Dat maakt het geheel heel wat leesbaarder.

https://fgheysels.github.io/

Pagina: 1