[VB6] string als command uitvoeren

Pagina: 1
Acties:

  • Vai
  • Registratie: Augustus 2001
  • Laatst online: 12-02-2023
Ik ben bezig een applicatie te schrijven met een veeltal combo listbox'en erin.
Ik dacht slim te zijn om met een for n = xx to xx lusje de juiste item's te selecteren.
Door een commando in een string te zetten en die te laten uitvoeren zou uiterraard een hoop tikwerk schelen.
code:
1
tempcomm = "a" & Trim(Str(arrayblock)) & ".listindex" & " = " & Val(Mid(Text7.Text, tin + 13, 3))


Maar helaas. het werkte niet, na wat zoekwerk las ik dat het in vb6 niet mogenlijk was vanwege het compilen ervan. Ik zag dat het mogelijk was met de visual basic control toe te voegen en dan via scriptcontrol1.eval () een functie uit te voeren.
Dat werkt prima waarschijnlijk voor formules maar niet voor wat ik wil. na wat meer speurwerk zag ik de volgende topics:

(VB) Een vb script starten vanuit vb
[rml][ VBA / Access]Sub uitvoeren vanuit een string[/rml]

Ik heb beide voorbeelden geprobeerd maar krijg het met geen mogenlijkheid werkende.
Wat ik dus eigenlijk wil maar dan zo kort mogenlijk:

a501.listindex = 10
om 10de regel te selecteren van combo list met de naam 501.
M'n combo's zijn steeds 1tje hoger genaamd: a502, a503 etc.

Is het wel mogelijk wat ik wil?

Q6600, 6144MB, WD 160GB & Maxtor 400GB,NVidia 8600GT, Samsung SH-S202N, NEC ND-2510A, SB Audigy 2


  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

je kunt een parser hardcoderen.

if (eenstring = "a501")
doeiets met a501

ASSUME makes an ASS out of U and ME


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 30-04 15:47

mulder

ik spuug op het trottoir

oogjes open, snaveltjes dicht


  • Surehand
  • Registratie: Februari 2003
  • Laatst online: 16-02 14:55
Yup, control arrays is wat je wilt gebruiken. Ooit nog eens bijna rsi van gekregen, door de achterlijke manier waarop je de layout in VB6 moet bewerken...

MSDN pagina over control arrays: klik

  • Sponge
  • Registratie: Januari 2002
  • Laatst online: 23:18

Sponge

Serious Game Developer

Er is ook nog "CallByName", waarmee je methodes mee kunt benaderen met een simpele string...

  • Sikkek
  • Registratie: Maart 2004
  • Laatst online: 08:04
Wat dacht je van

Me.Controls("a" & Trim(Str(arrayblock))).Listindex = Val(Mid(Text7.Text, tin + 13, 3))

Is qua performance niet zo goed als een ControlArray, maar is wel eenvoudiger te implementeren...

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Sikkek schreef op dinsdag 13 september 2005 @ 09:57:
Wat dacht je van

Me.Controls("a" & Trim(Str(arrayblock))).Listindex = Val(Mid(Text7.Text, tin + 13, 3))

Is qua performance niet zo goed als een ControlArray, maar is wel eenvoudiger te implementeren...
Dat is eenvoudiger dan een control array??

Gewoon een control array maken, en een ENUM met de verschillende namen. Je kunt ze dan gewoon aanspreken met

ComboBox ( WOONPLAATS ).property

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Sikkek
  • Registratie: Maart 2004
  • Laatst online: 08:04
Ik bedoelde dat het makkelijker te implementeren is in de situatie van TS, hij heeft nl. de controls al op een form staan. Ik zou zelf ook voor een control array kiezen, is veel netter.

  • Vai
  • Registratie: Augustus 2001
  • Laatst online: 12-02-2023
Sikkek schreef op dinsdag 13 september 2005 @ 14:39:
Ik bedoelde dat het makkelijker te implementeren is in de situatie van TS, hij heeft nl. de controls al op een form staan. Ik zou zelf ook voor een control array kiezen, is veel netter.
Daar heb ik nu ook voor gekozen. Iedereen bedankt voor de hulp.

Q6600, 6144MB, WD 160GB & Maxtor 400GB,NVidia 8600GT, Samsung SH-S202N, NEC ND-2510A, SB Audigy 2

Pagina: 1