Article View: be.comp.programming
Article #11273Re: oproep aan de programmeurs:wat moet ik kiezen ?
From: Pieter Philippaerts
Date: Wed, 13 Feb 2002 23:36
Date: Wed, 13 Feb 2002 23:36
138 lines
7235 bytes
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-mailReferences:
<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/)