🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
4 messages
4 total messages Started by Harbinger of Doom Wed, 06 Aug 2003 09:50
[VB6] Zelfde variable meerdere keren declareren in select case
#4503
Author: Harbinger of Doom
Date: Wed, 06 Aug 2003 09:50
43 lines
2646 bytes
Hello,

Ik zit met volgend probleempje in een VB6 programma.
Ik zou in een switch moeten eenzelfde variabele-naam
als een verschillend type declareren in elke case.
vb:

select case (var1)
case 1
    dim var2 as type1
case 2
    dim var2 as type2
case 3
    dim var2 as type3
case 4
    dim var2 as type4
case 5
    dim var2 as type5
end select

Daarna volgt een heel stuk code dat gebruik maakt van var2.
moest bovenstaand stukje code werken,
dan is dat voor mij natuurlijk heel gemakkelijk,
want dan moet ik de rest maar ��n keer programmeren.
Als dit niet werkt (en het werkt ook niet),
dan moet ik de rest 5 keer programmeren.
dit om even duidelijk te maken waarom ik dit juist wil doen.

VB is nu natuurlijk zo vriendelijk om mij een
"duplicate declaration in current scope" error mee te geven.
Gezien bovenstaand stukje code niet werkt, vroeg ik me dus af
of er een andere manier is om een variabele als een ander type
de declareren (of eventueel in runtime te laten veranderen van type),
afhankelijk van een andere variable.

Het �nige wat ik kan bedenken, is vijf subs maken die aangeroepen
worden vanuit de switch. deze subs declareren dan een variable van
het gewenste type, en roepen dan een functie aan die de code bevat
die normaal onder mijn switch staat.
dit lijkt mij echter nogal omslachtig. Ik zoek dus eigenlijk
een kortere manier.

Dank
Re: [VB6] Zelfde variable meerdere keren declareren in select case
#4504
Author: niceguy
Date: Wed, 06 Aug 2003 12:37
79 lines
3704 bytes
Ik heb dit niet getest, maar ik dit zou misschien wel een oplossing kunnen
zijn:

Declareer voor je switch var2 als zijnde van het type Variant (= alle
mogelijke types).

In je switch steek je er dan onder elke case een initiele waarde van het
juiste type in door de juiste conversiefunctie toe te passen. Wil je
bijvoorbeeld een Double, dan doe je:

    var2 = CDbl(0)

Wil je een boolean, dan doe je

    var2 = CBln(True)

enz... (in de help file staan alle mogelijke C conversiefuncties).

Als het goed is zal dan de code die volgt geen problemen ondervinden omdat
VB het echte type dat in de variable bijhoudt en niet gewoon het type
'Variant' zal gebruiken.

Moest je in je code willen nagaan welk type de waarde echt heeft, dan kan je
geloof ik de TypeName functie gebruiken, of the TypeOf constructie (kijk
hiervoor ook even in de help file).

Hopelijk werkt het...


"Harbinger of Doom" <slavearc@pandora.be> wrote in message
news:xb4Ya.10391$mX5.1324260521@hebe.telenet-ops.be...
> Hello,
>
> Ik zit met volgend probleempje in een VB6 programma.
> Ik zou in een switch moeten eenzelfde variabele-naam
> als een verschillend type declareren in elke case.
> vb:
>
> select case (var1)
> case 1
>     dim var2 as type1
> case 2
>     dim var2 as type2
> case 3
>     dim var2 as type3
> case 4
>     dim var2 as type4
> case 5
>     dim var2 as type5
> end select
>
> Daarna volgt een heel stuk code dat gebruik maakt van var2.
> moest bovenstaand stukje code werken,
> dan is dat voor mij natuurlijk heel gemakkelijk,
> want dan moet ik de rest maar ��n keer programmeren.
> Als dit niet werkt (en het werkt ook niet),
> dan moet ik de rest 5 keer programmeren.
> dit om even duidelijk te maken waarom ik dit juist wil doen.
>
> VB is nu natuurlijk zo vriendelijk om mij een
> "duplicate declaration in current scope" error mee te geven.
> Gezien bovenstaand stukje code niet werkt, vroeg ik me dus af
> of er een andere manier is om een variabele als een ander type
> de declareren (of eventueel in runtime te laten veranderen van type),
> afhankelijk van een andere variable.
>
> Het �nige wat ik kan bedenken, is vijf subs maken die aangeroepen
> worden vanuit de switch. deze subs declareren dan een variable van
> het gewenste type, en roepen dan een functie aan die de code bevat
> die normaal onder mijn switch staat.
> dit lijkt mij echter nogal omslachtig. Ik zoek dus eigenlijk
> een kortere manier.
>
> Dank
>
>
>
>
>
Re: [VB6] Zelfde variable meerdere keren declareren in select case
#4507
Author: Harbinger of Doom
Date: Wed, 06 Aug 2003 19:56
93 lines
4288 bytes
Dat zou inderdaad lukken volgens mij,
het probleem is echter dat het geen standaard types zijn
die moeten toegekend worden aan de variabele,
maar wel zelfgedefinieerde type's.
dat zal dus ook niet lukken, tenzij ik daar zelf een
conversiefunctie voor programeer (wat ik niet zo direct zie zitten)
toch bedankt!


"niceguy" <nice.guy@ihatespam.com> schreef in bericht
news:8E6Ya.51464$F92.5479@afrodite.telenet-ops.be...
> Ik heb dit niet getest, maar ik dit zou misschien wel een oplossing kunnen
> zijn:
>
> Declareer voor je switch var2 als zijnde van het type Variant (= alle
> mogelijke types).
>
> In je switch steek je er dan onder elke case een initiele waarde van het
> juiste type in door de juiste conversiefunctie toe te passen. Wil je
> bijvoorbeeld een Double, dan doe je:
>
>     var2 = CDbl(0)
>
> Wil je een boolean, dan doe je
>
>     var2 = CBln(True)
>
> enz... (in de help file staan alle mogelijke C conversiefuncties).
>
> Als het goed is zal dan de code die volgt geen problemen ondervinden omdat
> VB het echte type dat in de variable bijhoudt en niet gewoon het type
> 'Variant' zal gebruiken.
>
> Moest je in je code willen nagaan welk type de waarde echt heeft, dan kan
je
> geloof ik de TypeName functie gebruiken, of the TypeOf constructie (kijk
> hiervoor ook even in de help file).
>
> Hopelijk werkt het...
>
>
> "Harbinger of Doom" <slavearc@pandora.be> wrote in message
> news:xb4Ya.10391$mX5.1324260521@hebe.telenet-ops.be...
> > Hello,
> >
> > Ik zit met volgend probleempje in een VB6 programma.
> > Ik zou in een switch moeten eenzelfde variabele-naam
> > als een verschillend type declareren in elke case.
> > vb:
> >
> > select case (var1)
> > case 1
> >     dim var2 as type1
> > case 2
> >     dim var2 as type2
> > case 3
> >     dim var2 as type3
> > case 4
> >     dim var2 as type4
> > case 5
> >     dim var2 as type5
> > end select
> >
> > Daarna volgt een heel stuk code dat gebruik maakt van var2.
> > moest bovenstaand stukje code werken,
> > dan is dat voor mij natuurlijk heel gemakkelijk,
> > want dan moet ik de rest maar ��n keer programmeren.
> > Als dit niet werkt (en het werkt ook niet),
> > dan moet ik de rest 5 keer programmeren.
> > dit om even duidelijk te maken waarom ik dit juist wil doen.
> >
> > VB is nu natuurlijk zo vriendelijk om mij een
> > "duplicate declaration in current scope" error mee te geven.
> > Gezien bovenstaand stukje code niet werkt, vroeg ik me dus af
> > of er een andere manier is om een variabele als een ander type
> > de declareren (of eventueel in runtime te laten veranderen van type),
> > afhankelijk van een andere variable.
> >
> > Het �nige wat ik kan bedenken, is vijf subs maken die aangeroepen
> > worden vanuit de switch. deze subs declareren dan een variable van
> > het gewenste type, en roepen dan een functie aan die de code bevat
> > die normaal onder mijn switch staat.
> > dit lijkt mij echter nogal omslachtig. Ik zoek dus eigenlijk
> > een kortere manier.
> >
> > Dank
> >
> >
> >
> >
> >
>
>
Re: [VB6] Zelfde variable meerdere keren declareren in select case
#4516
Author: TRAX
Date: Thu, 07 Aug 2003 12:12
15 lines
1957 bytes
Harbinger of Doom wrote:
> Dat zou inderdaad lukken volgens mij,
> het probleem is echter dat het geen standaard types zijn
> die moeten toegekend worden aan de variabele,
> maar wel zelfgedefinieerde type's.
> dat zal dus ook niet lukken, tenzij ik daar zelf een
> conversiefunctie voor programeer (wat ik niet zo direct zie zitten)
> toch bedankt!


tsjah, ik wou zeggen met ��n of andere typecast functie die 0 of een ander
getal weergeeft als het het juiste type is / niet is maar aangezien het
zelfgedefinieerde types zijn zit er met mijn bescheiden kennis van vb niks
anders op dan zelf een functietje te schrijven om te onderzoeken over welk
type het gaat
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads