VB6 .Enabled property - Hjälp uppskattas

Permalänk
Medlem

VB6 .Enabled property - Hjälp uppskattas

Jag sitter och underhåller ett VB6 system och fick ett litet problem. Jag har gjort en liten workaround så det funkar men vill veta om det finns något snyggt sätt att göra det jag vill.

Det som ska göras är:
Jag har 3 option buttons opt(0) - opt(2). Beroende på diverse omständigheter sätter jag dem till .Enabled = False/True (dvs gråar ut dem) för att förhidra användaren från att välja just den eller de. I slutet av kodstycket så vill jag kolla om två av de tre är Enabled = False och i så fall sätta .Value = 1 på den återstående (dvs, finns det bara ett val så gör jag det automatiskt)

Mitt problem är att jag inte lyckas läsa av .Enabled på ett bra sätt. Har testat

If opt(0).Enabled Then

och

If opt(o).Enabled =True Then

båda returnerar alltid False

Kod exempel:

opt(0).Enabled = True
If opt(o).Enabled Then
'Detta kommer aldrig köras eftersom det alltid ger False
End If

Om någon kan förklara varför det inte funkar så som jag (som är mer hemma i Java miljö) tycker att det borde funka så skulle det vara guld värt.

Visa signatur

He who hasn't hacked assembly language as a youth has no heart. He who does so as an adult has no brain.
~John Moore

Permalänk
Medlem

Jag provade i VB6 SP6 att följa din första variant och det funkade direkt,

If opt(0).Enabled Then MsgBox "Ja" Else MsgBox "Nej"

Kan inte se varför det inte funkar för dig?

Permalänk

VB6..? Varför använda det?

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk
Medlem
Skrivet av KurreKula:

VB6..? Varför använda det?

Därför att även gamla system måste underhållas. Är inte det språk jag skulle välja om jag utvecklade nytt.

Skrivet av Skogga:

Jag provade i VB6 SP6 att följa din första variant och det funkade direkt,

If opt(0).Enabled Then MsgBox "Ja" Else MsgBox "Nej"

Kan inte se varför det inte funkar för dig?

Ja, jag har läst på lite mer och det är ju så det ska funka. Men av någon anledning gör det inte det. Jag slet mig i håret i fredags och trodde jag missat något.

Jag ska kolla på koden igen med fräscha ögon på måndag, men jag tror inte det kommer göra någon skillnad. Jag och en kollega satt och kollade på de raderna i minst 30 min utan att hitta något så...

Ska också kolla upp vilken version som används. Möjligheten finns att funktionen förändrats mellan versioner.

Visa signatur

He who hasn't hacked assembly language as a youth has no heart. He who does so as an adult has no brain.
~John Moore

Permalänk
Skrivet av Anaii:

Därför att även gamla system måste underhållas. Är inte det språk jag skulle välja om jag utvecklade nytt.

Missade att du skrev att du underhållde det

Visa signatur

Asus Striker II Extreme / XFX Geforce GTX 280 / Q9450 @ 3.6GHz/ TRUE Noctua 120/ 4x1GB Corsair TWIN3X2048-1333C9DHX / X25-M G2 80gb Velociraptor / Win 7 Ultimate x64/ Antec P190

MovieDatabase

Permalänk

Kan du inte lägga dina optionbuttons i olika frames? När du sedan kör en enable true/false på en frame så påverkas även childobjekts har jag bestämt för mig.