Advertisement
RobinJ1995

Untitled

May 16th, 2011
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 13.53 KB | None | 0 0
  1. Ik ga je in deze tutorial proberen de basis uit te leggen van Visual Basic.NET, een taal die veel gebruikt wordt door beginnende- of hobbyprogrammeurs. Ik ga in deze tutorial niet zozeer in op de IDE die je kan gebruiken (MonoDeveloper, Visual Studio, ...), maar gewoon op de beginselen van de taal zelf, hoewle ik wel er vanuit ga bij mijn uitleg dat de gebruiker Microsoft Visual Studio gebruikt.
  2.  
  3. [kop]Wat is VB.NET?[/kop]
  4. Visual Basic .NET (VB.NET) is een object-georiënteerde programmeertaal die je kan bekijken als een geëvolueerde versie van de classieke Visual Baisc (VB), welke werkt door middel van het .NET (of Mono voor Linux en Mac) Framework.
  5. Om in VB.NET gemaakte programma's te draaien is er een framework nodig, bij voorkeur het .NET Framework van Microsoft, maar voor Linux en Mac gebruikers is er ook het Mono Framework, welke redelijk compatibel met het .NET Framework.
  6.  
  7. [kop]Datatypes[/kop]
  8. Er zijn verschillende types, die bij bijna elke object-georiënteerde programmeertaal hetzelfde zijn. Het is essentieel om deze te kennen. Hier gaan we...
  9. [b]String[/b] :: Nee niet dat soort onderbroek. Een string is simpelweg een tekenreeks.
  10. [b]Integer[/b] :: Een integer is geheel getal. Voor de mensen die het niet weten, een geheel getal is een getal zonder comma, maar het kan wel negatief zijn.
  11. [b]Double[/b] :: In veel talen ook wel Float genoemd. Een rationaal getal. Dus dat betekent dat dit getal zowel positief als negatief kan zijn, en een commagetal kan zijn.
  12. [b]Boolean[/b] :: De makkelijkste van allemaal. Een boolean kan alleen [i]True[/i] of [i]False[/i] als waarde hebben, voor de minder gevorderden in Engels: [i]Waar[/i] of [i]Onwaar[/i].
  13. Er zijn natuurlijk veel meer datatypes dan dit, maar dit zijn de 4 belangrijksten.
  14.  
  15. [kop]Class, Sub, Function[/kop]
  16. [u]Class[/u]
  17. Een class (klasse) is een houder van gegevens en codes. Er kan toegang verkregen wordne tot de gegevens in een class door middel van properties (eigenschappen).
  18.  
  19. [u]Sub[/u]
  20. Een sub is een zogeheten [i]methode[/i] die geen waarde teruggeeft. Elke keer als een sub aangeroepen wordt, worden de codes binnen die sub uitgevoerd tot de [i]End Sub[/i] code gevonden is.
  21.  
  22. [u]Function[/u]
  23. Een function (functie) is vrijwel hetzelfde als een sub, behalve dat er bij een function gegevens teruggegeven kunnen worden, dus het kan als een variabele dienen om het simpel te stellen.
  24.  
  25. Voor jullie afhaken, het is voorbij met de pure theorie nu. Ik heb gemerkt dat mensen vaak afhaken op een tutorial als er teveel theorie aan te pas komt. Dus vanaf hier ga ik het praktijkgericht proberen uit te leggen. Ik zeg niet dat dit voor iedereen beter werkt, maar voor veel mensen werkt deze manier van leren beter (vooral voor de ongeduldige soort :p).
  26.  
  27. [kop]Hello World[/kop]
  28. De oude klassieker. Het [i]Hello World[/i] wordt standaard door een programmeur als eerst programma gemaakt als test. Alles wat het doet is het bericht "Hello World" tonen aan de gebruiker, that's it.
  29. Nog een snelle kantnotitie: Deze tutorial is vooral gericht op programma's met een grafische interface, aangezien de meeste mensen dat interessanter vinden dan command line (opdrachtregel) programma's.
  30.  
  31. Als je een nieuw [i]Windows Forms[/i] (voor MonoDeveloper gebruikers een GTK#-) project start, krijg je een leeg venster (welke we voortaan [i]Forms[/i] (formulieren) gaan noemen). Links is er de [i]Toolbox[/i] (gereedschapskist). Daaruit kan je [i]controls[/i] zoals buttons (knoppen), textboxes (tekstvakken), en progress bars (voortgangsbalken) slepen naar je venster ([i]form[/i]). De eigenschappen zoals de tekst en de kleur van de control kan je in het properties (eigenschappen) dock (rechts) terugvinden en aanpassen. Om een stuk code aan een control's event (gebeurtenis) toe te wijzen ga je naar het properties dock en klik je op de bliksemschicht. Nu zie je een boel events (gebeurtenissen) zoals Click, Paint, DoubleClick, KeyPress, KeyUp, KeyDown, MouseHover, .... Deze betekenen allemaal iets, als je een beetje Engels kan is het duidelijk aan wat ze verbonden zijn, en anders moet je het even Google'n want ik ga er hier niet verder op in. Om een stuk code aan een event toe te wijzen dubbelklik je er op. Je wordt dan doorgestuurd naar de codeweergave. De input zal al op de juiste positie staan voor het event in kwestie, dus je kan gewoon beginnen typen.
  32. In ons [i]Hello World[/i] programma willen we een stuk code toewijzen aan ons Click event, dus dubbelklik daarop. Nu we in de codeweergave zijn, typen we het volgende:
  33. [code]MsgBox("Hello World")[/code]
  34. Dat is het. Wat dit doet is een berichtvenster weergeven met de booschap "Hello World". Even wat meer uitleg over de MsgBox() functie:
  35. Een MessageBox (MsgBox) is een berichtvenster code. Erg simpel in gebruik.
  36. [code]MsgBox("Hello World", MsgBoxStyle.Information, "Jos zegt:")[code]Dit geeft een berichtvenster weer met als booschap "Hello World", en een informatiepictogram, waar de MsgBoxStyle.Information (BerichtVensterStijl.Informatief) voor zorgt, en als titel "Jos zegt:".
  37. Door middel van het suggestiekadertje dat er bij komt terwijl je code type kan je makkelijk de codes die onder een item horen bekijken, en zo nieuwe dingen leren en uitproberen. Ga nou niet denken "Goh, dat lieve kadertje geeft me toch de codes dus ik hoef alleen de eerste letter te kennen en wat te gaan scrollen.", want het is nuttig om de volledige codes te kennen. Als je alleen de eerste paar letters kent, kan je jezelf echt geen programmeur noemen.
  38. Dit was overigens ook het einde van het [i]Hello World[/i] programma. Proficiat! Je hebt je eerste applicatie in Visual Basic.NET geschreven!
  39.  
  40. [kop]Leeftijd over x jaar[/kop]
  41. In dit programma'tje gaan we de leeftijd van een persoon over een bepaald aantal jaar berekenen. Simpel, maar voor mensen zonder programmeerervaring is het nuttig om bij de basis te beginnen.
  42.  
  43. Maak een nieuw Windows Forms project. Nu zie je weer de grafische designer. Maar in plaats van rechtstreeks te beginnen met controls in te voeren gaan we nu eerst eens kijken welke properties er beschikbaar zijn als we onze form zelf aanklikken. Het zijn er wel wat. Laten we voor de aardigheid de achtergrondkleur van het venster eens aanpassen, dit doen we door middel van de BackgroundColor property. Nu we de achtergrondkleur hebben aangepast, moeten we ook nog de voorgrondkleur, dus de tekstkleur, daar bij laten passen. Dit doen we door middel van de ForeColor property. De titelbalktekst van het programma aanpassen kan misschien ook nog handig zijn, want als het op [i]WindowsFormsApplication1[/i] of iets dergelijk blijft staan ziet het er nogal slordig uit. De titelbalktekst kunnen we aanpassen door middel van de form's Text property. Noem hem bijvoorbeeld "Leeftijd calculator".
  44. Goed, nu de properties van de form zijn ingesteld, kunnen we verdergaan et de benodigde controls in te voegen. We gaan 3 textboxes en 1 button nodig hebben voor dit programma. Voeg deze in, en als je op één van de controls klikt dat je in het properties dock de bijhorende properties zien verschijnen. Hier willen we de [i]Name[/i] (naam) property van de controls aanpassen. Als we naar een control willen verwijzen in onze code, gebruiken we daarvoor de naam. Daarom is het handig om de control ene bijhorende naam te geven. Het is typisch om als naam voor een control zijn afkorting te nemen en een naam er bij die aanduid waarvoor deze moet dienen, het gebruik begint hierbij met een hoofdletter. Afkortingen van de controls zijn bijvoorbeeld als volgt: txt voor Textbox, btn voor Button (soms wordt ook cmd gebruitk omdat de button in Visual Basic 6 een CommandButton heette), nud voor NumericUpDown, cmb voor ComboBox, fsw voor FileSystemWatcher, ofd voor OpenFileDialog, sfd voor SaveFileDialog, fbd voor FolderBrowserDIalog, mst voor MenuStrip, cms voor ContextMenuStrip, pb voor ProgressBar, lbx voor Listbox, lvw voor Listview, tvw voor Treeview, ... Je snapt me wel. Onze net ingevoegde controls gaan we als volgt noemen: txtNaam, txtLeeftijd, txtJaartal en btnBereken. Orden ze mooi in de form zoals jij ze wil, en dubbelklik op btnBereken om naar de codeweergave te gaan.
  45. Ok, wat we nu willen doen is het huidige jaartal ophalen, aangezien we het verschil tussen het gevraagde jaartal en het huidige jaartal willen berekenen, en dat bij de huidige leeftijd van de persoon willen optellen. Maar eerst gaan we een nieuwe variabele aanmaken om het huidige jaartal in op te slaan, om het voor later gebruik makkelijk te maken en de code ordelijk te houden. De variabele gaat een geheel getal worden, dus we hebben het [i]integer[/i] datatype nodig. Een nieuwe integer variabele aanmaken doen we als volgt: [code]Dim iHuidigJaartal As Integer = 0[/code][i]Dim[/i] wordt gebruikt om een nieuwe variabele aan te duiden, [i]iHuidigJaartal[/i] is de naam van de variabele, en [i]Integer[/i] is het ttype van de variabele. de [i]= 0[/i] is om een waarde te geven aan onze variabele. Ik geef de variabele nu de waarde 0, omdat het juister is een variabele direct een waarde te geven als je deze aanduid. Dit is niet verplicht, maar als je dan toch een programmeertaal wil leren raadt ik je ten sterkste aan het meteen goed te leren, (dus niet zoals ik deed, het fout leren en totaal geen idee hebben van wat de datatypes waren, en dan Visual Studio de schuld geven dat het programma zonder enige duidelijke reden crasht). Dus eigenlijk zegt deze regel gewoon het volgende:
  46. [b]Duid iHuidigJaartal aan als een geheel getal met waarde 0[/b]
  47. Simpel, niet dan?
  48. Het zal je misschien opgevallen zijn dat ik een [i]i[/i] voor de naam van de variabele heb staan. Die [i]i[/i] staat voor integer. Het kan soms handig zijn eens je ingewikkeldere programma's gaat maken, aan de naam van een variabele direct te weten welk datatype deze heeft.
  49. Maar genoeg hierover, we hebben onze nieuwe variabele aangeduid, nu moeten we de huidige datum er in krijgen. Voor de datum en tijd hebben we het [i]Date[/i] "menu". Hierin zitten de gegevens die met de tijd te maken hebben. Om het huidige jaartal in de net aangeduidde variabele te stoppen vervangen we de [i]0[/i] door het volgende: [code]Date.Now.Year[/code]Nu hebben we het huidige jaartal in de variabele genaamd iHuidigJaartal zitten.
  50. Nu moeten we het verschil tussen de huidige datum en de door de gebruiker ingegeven datum weten. We gaan hiervoor weer een nieuwe variabele aanmaken met het type integer, en er de berekening instoppen. Om berekeningen te doen hebben we zogeheten [i]operators[/i]. Hier een mooi lijstje van de verschillende operators en wat ze doen:
  51. +   ::  Optellen
  52. -   ::  Aftrekken
  53. *   ::  Vermenigvuldigen
  54. /   ::  Delen
  55. ^   ::  Machten
  56. Dit zijn alleen de [i]operators[/i] om bewerkingen met getallen te doen, je hebt ook [i]operators[/i] om dingen te vergelijken, of om bewerkingen met andere datatypes te doen. Hier zijn er een aantal anderen of andere functies van de net opgesomde [i]operators[/i]:
  57. +   ::  Getallen optellen   ::  Tekenreeksen samenvoegen
  58. &   ::  Tekenreeksen samenvoegen
  59. =   ::  Is gelijk aan
  60. <>  ::  Is niet gelijk aan
  61. <   ::  Is kleiner dan
  62. >   ::  Is groter dan
  63. <=  ::  Is kleiner of gelijk aan
  64. >=  ::  Is groter of gelijk aan
  65. Met de volgende operators kan je voorwaarden in een [i]If[/i] blok of iets dergelijks combineren:
  66. Not ::  Is niet
  67. And ::  En
  68. Or  ::  Of
  69. Maar we dwalen weer af van het onderwerp, terug naar het jaartal!
  70. We wilden een variabele met het type integer aanmaken en deze als waarde het verschil tussen het huidige en het opgegeven jaartal geven. Dit doen we als volgt: [code]Dim iVerschil As Integer = (iHuidigJaartal - Convert.ToInt32(txtJaartal.Text))[/code]Het zal je misschien opvallen dat ik de bewerkign tussen haakjes heb staan. Dit is een geval van orde en gewoonte. Als ik bijvoorbeeld een tweede bewerking wil doen met het resultaat van deze bewerking, en dit op dezelfde regel code wil doen, kan ik buiten de haakjes deze bewerking doen. Ik denk dat je de wiskundige functie van haken wel zal kennen? Wel, in het programmerne is deze niet anders. Met [i]txtJaartal.Text[/i] haal ik de waarde uit het tekstvak genaamd txtJaartal. Nog iets wat je waarschijnlijk wel zal zijn opgevallen is de [i]Convert.ToInt32()[/i] code. Deze dient om de waarde die we opgehaald hebben uit txtJaartal om te zetten naar een integer, aangezien de waarde uit een textbox standaard een string is. Doen we dit niet, dan kunnen er fouten optreden in het programma, aangezien je geen tekenreeks van een getal af kunt trekken. Dat zou hetzelfde zijn als "Hallo" aftrekken van 2... Met de normale graad wiskunde ondoenbaar met andere woorden. [i]Convert[/i] staat hierin voor omzetten, en [i]ToInt32[/i] voor naar een 32-bit integer. Op het 32-bit gedeelte ga ik nu niet in, dat is nog iet belangrijk.
  71. Nu hebben we het huidige jaartal, een gegeven jaartal, en daaruit het verschil berekent. Nu willen we het optellen bij de persoon's leeftijd. Hiervoor maken we alweer voor de goede orde een variabele aan met het datatype integer. Nu willen we het verschil in jaartal optellen bij de waarde uit txtLeeftijd. Ik denk niet dat ik hierbij verdere uitleg moet geven? Het lijtk me na de uitleg hierboven nogal voor zich te spreken.[code]Dim iNieuweLeeftijd As Integer = (Convert.ToInt32(txtLeeftijd.Text) + iVerschil)[code]We hebben nu de persoon zijn leeftijd in het gevraagde jaar, nu moeten we alleen nog maar het resultaat aan de gebruiker te tonen in een berichtvenster: [code]MsgBox(txtNaam.Text + "'s leeftijd in het jaar " + Convert.ToString(txtJaartal.Text) + " zal gelijk zijn aan " + Convert.ToString(iNieuweLeeftijd) + "!", MsgBoxStyle.Information, "Resultaat")[/code]
  72. Omdat we een bericht willen weergeven aan de gebruiker in een tekstformaat moeten we de getalwaardes omzetten naar een string door middel van de [i]Convert.ToString()[/i] code.
  73. En gefeliciteerd want je programma is klaar!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement