🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #11273

Re: oproep aan de programmeurs:wat moet ik kiezen ?

#11273
From: Pieter Philippaerts
Date: Wed, 13 Feb 2002 23:36
138 lines
7235 bytes
"D*lphi" <spam.delphi@not.here> wrote in message
news:3C6AEA33.8010409@not.here...
> >>VB werkt alleen maar met Variants.
> > Hahahahaha, sta me toe even in een deuk te liggen van't lachen.
> > Je zit hier VBScript met Visual Basic te verwarren; de twee dingen
> > zijn compleet vershillend.
> Nee.

Wat nee? Nee zoals in (1) 'ik verwar het niet' of nee zoals in (2) 'ze zijn
niet
verschillend'.
In het eerste geval is je statement 'VB werkt alleen maar met Variants'
doodgewoon fout.
In het tweede geval zit je er compleet naast :-)

> > Je zou eens de Visual Basic Language Reference moeten vastpakken
> > en eens zoeken naar de volgende keywords: Dim, Private, Public,
> > Global, Static, Long, Integer, Byte, String, ...
> >>Je hoeft nix expliciets te declareren.
> > Als je Option Explicit aanzet (iets wat elke degelijke VB programmeur
> > doet) hoeft dit wel.
> DIM Testvariabale
> moet niet kunnen vind ik.

6000000 andere programmeurs denken er anders over...

> Vanwege Delphi deed ik altijd in VB het volgende:
> DIM variabele1, variabele2 as integer

Tja, best eens eerst de informatie over het DIM keyword opzoeken in de help
voordat je ermee begint te werken. Het zijn zulke problemen die C++
programmeurs de haren uit hun hoofd doen trekken als ze enkele (blijkbaar
triviale) Java dingen moeten schrijven. Dit komt omdat keywords in de ene
taal anders geinterpreteerd worden in de andere.
Om enkele moeilijke woorden te gebruiken: deze problemen doen zich
voor wegens de transparadigmatische incomensurabiliteit tussen de
verschillende
programmeertalen.

> >>En zelfs als je Option Explicit definieert hoef je aan een variable geen
> >>type mee te geven?!?
> > Omdat dat ook niet de bedoeling is van Option Explicit... OE betekent
> > dat je elke variabele die je gebruikt moet definieren.
> > Als je een variabele definieert als
> >     Dim myvar
> > dan heb je myvar gedefinieerd als een Variant.
> Dat is ook wel krom, daar heb je dus ook geen reet aan.

<COPY><PASTE>6000000 andere programmeurs denken er anders over...

> Niet gedefinieerde constanten worden gewoon toegelaten. En dat merk je
> dus niet bij een typo.

Als Option Explicit aanstaat laat hij dit niet toe.

> Je kunt alsnog bijvoorbeeld een integer waarde als een parameter
> meegeven aan procedure die een string verwacht.

Inderdaad.. dit is 1 van de features van Visual Basic: alles voor jouw
converteren
achter de schermen.

> > Eerst en vooral is dit enkel van toepassing als je je programma vanuit
de
> > IDE
> > runt.
> Dat bedoel ik dus, wat denk je anders...
> Dus, het is van toepassing.

ok...

> > Ten tweede, zoals Rene al aangaf, kan je de IDE instellen dat die
telkens
> > alles
> > opslaat voordat hij het programma uitvoert.
> > Ten derde, als je enkel de VB methodes gebruikt (dwz, geen API functies)
> > dan kan je IDE nooit crashen door je programma. Alle fouten (zoals
> > bijvoorbeeld
> > deling door 0) worden zonder probleem opgevangen door de IDE.
>
> In theorie, mits VB foutloos werkt en dat lijkt me niet te garanderen...

Als jouw Delphi IDE crasht terwijl je aant programmeren bent, dan ben je
ook alles kwijt.
Ikzelf heb de refelex aangekweekt om, telkens als ik even pauzeer om na
te denken, altijd op 'CTRL-S' te drukken (Save). Het resultaat is dat mijn
code meerdere keren per minuut gesaved wordt en dat ik nog nooit code
verloren ben omwille van een IDE crash.

> > Als je op de 'Play' knop druk in VB, dan start Visual Basic zijn
> > Interpreter.
> > De enige code die je IDE kan doen crashen is bij het gebruik van API
> > functies
> > (bijv. een CopyMemory doen van of naar een geheugenplaats waar je
programma
> > geen toegang tot heeft). Dan is de standaard reactie van Windows om een
> > proces
> > af te sluiten (tenzij er een UnhandledExceptionFilter geplaatst is, wat
niet
> > het geval is).
> Kan wel. De Terminate event van een form kent geen Exception handler.

Wat bedoel je precies? Als je een 'On Error ...' statement zet bovenaan de
code
in een Form_Terminate event, dan wordt die error handler toch aangeroepen
als er een fout zich voordoet..?

> En zo heb ik nog wel meer eigenaardigheden m.b.t. tot Visual Basic.
> - Wat ik mis is dat je een zelfgedefinieerde type niet als ByVal als
> parameter in een functie/procedure kan meegeven.

Dat mis ik inderdaad ook in VB6. In VB7 kan je dit gelukkig wel doen.
Soms is het mogelijk om via enkele truukjes een type mee te geven by value
als dat type kleiner dan 8 bytes is. (de informatie van het type
CopyMemory'en
naar een value type (bijv. Currency of Long ofzo) en dat value type dan
ByVal passen). Jammer genoeg werkt dit niet voor alles (alhoewel ik er
eerlijk
gezegd nog niet veel problemen heb meegehad, aangezien praktisch elke
Win32 API functie structures by reference passed; de enige die ik ken die
een
structure byval passed is AlphaBlend en die kan opgelost worden met
bovenstaand
truukje).

> - Als je een waarde aan een functie/procedure als parameter meegeeft die
> als ByRef is gedefineerd, komt het (uit eigen ervaring) toch soms voor
> dat de waarde op e.o.a. manier aangepast wordt zonder dat er werkelijk
> naar geschreven wordt, maar alleen van gelezen.

Dan zit er een fout in je code... (mogelijk dat 1 van de functies die je
aanroept
in je code de waarde verandert zonder dat je het weet). Ikzelf heb zo'n
probleem nog niet tegengekomen....

Mvg,
Pieter Philippaerts
Technical Details
Message-ID: <1013643148.76330@seven.kulnet.kuleuven.ac.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!news-x2.support.nl!surfnet.nl!naxos.belnet.be!news.belnet.be!not-for-mail
References: <uXu88.122912$rt4.11582@afrodite.telenet-ops.be> <1013109746.799866@seven.kulnet.kuleuven.ac.be> <3C63C40B.BA1DDAA9@iae.nl> <1013181054.194148@seven.kulnet.kuleuven.ac.be> <3C63EE8A.DEE29046@iae.nl> <1013187868.875791@seven.kulnet.kuleuven.ac.be> <3c644047.25430366@news.easynet.be> <1013206504.88893@seven.kulnet.kuleuven.ac.be> <3C669B4B.70302@not.here> <1013368557.347057@seven.kulnet.kuleuven.ac.be> <3C66F542.8080305@not.here> <1013436462.399208@seven.kulnet.kuleuven.ac.be> <3C6AEA33.8010409@not.here>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: 107324,65d4c4d6a1e8dc39
X-Google-Attributes: gid107324,public
X-Google-Thread: fcea4,65d4c4d6a1e8dc39
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2002-02-13 15:32:32 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!news-x2.support.nl!surfnet.nl!naxos.belnet.be!news.belnet.be!not-for-mail
From: "Pieter Philippaerts" <Pieter@allapi.net>
Newsgroups: be.comp.programming,nl.comp.programmeren
Subject: Re: oproep aan de programmeurs:wat moet ik kiezen ?
Date: Thu, 14 Feb 2002 00:36:55 +0100
Organization: KULeuvenNet
Lines: 140
Message-ID: <1013643148.76330@seven.kulnet.kuleuven.ac.be>
References: <uXu88.122912$rt4.11582@afrodite.telenet-ops.be> <1013109746.799866@seven.kulnet.kuleuven.ac.be> <3C63C40B.BA1DDAA9@iae.nl> <1013181054.194148@seven.kulnet.kuleuven.ac.be> <3C63EE8A.DEE29046@iae.nl> <1013187868.875791@seven.kulnet.kuleuven.ac.be> <3c644047.25430366@news.easynet.be> <1013206504.88893@seven.kulnet.kuleuven.ac.be> <3C669B4B.70302@not.here> <1013368557.347057@seven.kulnet.kuleuven.ac.be> <3C66F542.8080305@not.here> <1013436462.399208@seven.kulnet.kuleuven.ac.be> <3C6AEA33.8010409@not.here>
NNTP-Posting-Host: seven.kulnet.kuleuven.ac.be
X-Trace: naxos.belnet.be 1013643148 19656 134.58.127.12 (13 Feb 2002 23:32:28 GMT)
X-Complaints-To: abuse@belnet.be
NNTP-Posting-Date: Wed, 13 Feb 2002 23:32:28 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.50.4807.1700
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4807.1700
Cache-Post-Path: seven.kulnet.kuleuven.ac.be!unknown@localhost
X-Cache: nntpcache 2.4.0b5 (see http://www.nntpcache.org/)