Article View: be.comp.programming
Article #4504Re: [VB6] Zelfde variable meerdere keren declareren in select case
From: niceguy
Date: Wed, 06 Aug 2003 12:37
Date: Wed, 06 Aug 2003 12:37
79 lines
3704 bytes
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
>
>
>
>
>
Technical Details
Message-ID:
<8E6Ya.51464$F92.5479@afrodite.telenet-ops.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!sn-xit-01!sn-xit-08!supernews.com!newsfeed.news2me.com!newsfeed.icl.net!newsfeed.fjserv.net!skynet.be!skynet.be!raksha!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mailReferences:
<xb4Ya.10391$mX5.1324260521@hebe.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII X-Google-Thread: fcea4,ffa82e785d41af63 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2003-08-06 05:37:32 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!sn-xit-01!sn-xit-08!supernews.com!newsfeed.news2me.com!newsfeed.icl.net!newsfeed.fjserv.net!skynet.be!skynet.be!raksha!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail Reply-To: "niceguy" <niceguy@ihatespam.com> From: "niceguy" <nice.guy@ihatespam.com> Newsgroups: be.comp.programming References: <xb4Ya.10391$mX5.1324260521@hebe.telenet-ops.be> Subject: Re: [VB6] Zelfde variable meerdere keren declareren in select case Lines: 81 Organization: niceguy X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Message-ID: <8E6Ya.51464$F92.5479@afrodite.telenet-ops.be> Date: Wed, 06 Aug 2003 12:37:24 GMT NNTP-Posting-Host: 81.83.215.192 X-Complaints-To: abuse@telenet.be X-Trace: afrodite.telenet-ops.be 1060173444 81.83.215.192 (Wed, 06 Aug 2003 14:37:24 MET DST) NNTP-Posting-Date: Wed, 06 Aug 2003 14:37:24 MET DST