Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.
-
Upload
martha-smeets -
Category
Documents
-
view
215 -
download
0
Transcript of Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.
Les 1Objecten, Eigenschappen en
Gebeurtenissen
Programmerenmet
Visual Basic
Karl Moens
Program
meren m
et Visula B
asic – Les 1
Overzicht
• Oplossing van de vorige oefening• Hoe werkt een VB-programma?
– Gebeurtenis-gestuurd– Object-georiënteerd
• Objecten, eigenschappen en gebeurtenissen
• Oefening
Program
meren m
et Visula B
asic – Les 1
Oplossing van de oefening
Voeg volgende lijn toe in de procedures Sub cmdBericht_Click() en Sub cmdWissen_Click()frmHello.BackColor = RGB(Int(256 * Rnd),
Int(256 * Rnd), Int(256 * Rnd))
Formulier Eigenschap
Functie die getalwaarden omzet in kleurwaarden
Geheel getal functie
Willekeurig getal tussen
0 en 1
Program
meren m
et Visula B
asic – Les 1
Hoe werkt een VB-programma?
• Een VB-programma is gebeurtenis-gestuurd ("event driven").
• Het wacht op gebeurtenissen en reageert daar dan op.
• Gebeurtenissen kunnen worden uitgelokt:– extern (door de gebruiker of hardware);– intern (door het programma zelf).
Program
meren m
et Visula B
asic – Les 1
Hoe werkt een VB-programma?
• Externe gebeurtenissen– Interactie van de gebruiker met de visuele
(grafische) interface van het programma.– Interactie van (interne of externe) hardware
(bijv. Printer-poort, seriële interface, …).
• Interne gebeurtenissen– Het VB-programma zelf genereert
gebeurtenissen waarop dan andere onderdelen van het programma kunnen reageren.
Program
meren m
et Visula B
asic – Les 1
Hoe werkt een VB-programma?
• Interactie van de gebruiker gaat via de diverse controls op de formulieren.
• Controls zijn een bijzondere vorm van objecten, nl. objecten die op een formulier kunnen worden geplaatst. Meestal hebben controls een visuele component (niet altijd: zie timer-control)
VB is een object-georiënteerde programmeertaal.
Program
meren m
et Visula B
asic – Les 1
Hoe werkt een VB-programma?
Het programma wacht tot wanneer eenobject een gebeurtenis uitlokt
Voer code voor deze gebeurtenis uit
Is er code voor deze event?
ja
neen
Program
meren m
et Visula B
asic – Les 1
Objecten, eigenschappen en gebeurtenissen
De objecten worden bepaald door de waarde van hun eigenschappen.
De gebeurteniscode zal zich moeten bezighouden met het uitlezen en aanpassen van deze eigenschappen.
Program
meren m
et Visula B
asic – Les 1
Objecten, eigenschappen en gebeurtenissen
Het programma moet via de schuifbalken de basiskleuren "mengen" en laten zien als achtergrondkleur van het formulier. De waarde van de basiskleuren wordt apart getoond in een label-veld, hetzij als absolute waarde, hetzij als percentage.
Program
meren m
et Visula B
asic – Les 1
Objecten, eigenschappen en gebeurtenissen
• Open een nieuw project (Les1)• Plaats op het formulier (frmLes1):
– drie horizontale scrollbalken (hsbRood, hsbGroen, hsbBlauw)
• Max=255; LargeChange=10
– twee option buttons (optWaarde, optPercentage)• optWaarde: Caption=Waarde; Value=True• optPercentage: Caption=Percentage; Value=False
– een commandbutton (cmdSluiten)• Caption=Sluiten
– drie labels (lblRood, lblGroen, lblBlauw)• Caption=0; alignment=center
• Eigenschap frmLes1.Backcolor=0 (zwart)
Program
meren m
et Visula B
asic – Les 1
Objecten, eigenschappen en gebeurtenissen
Gouden Regel 1: Initialiseer hetprogramma zoveel mogelijk via de
eigenschappen van de objecten reeds bij hetaanmaken van de objecten.
Program
meren m
et Visula B
asic – Les 1
Objecten, eigenschappen en gebeurtenissen
• Het is eenvoudiger het uitzicht van de grafische interface te bepalen via de editor dan via het programma.
• VB neemt de initialisatie van de interface voor zijn rekening.
• Aanpassingen kunnen achteraf eenvoudig via de editor worden aangebracht, i.p.v. alle programmacode te moeten doorlopen.
Program
meren m
et Visula B
asic – Les 1
Objecten, eigenschappen en gebeurtenissen
Analyse van de werking:– Een sluitknop om het programma te stoppen
(click)– Twee optieknoppen om te kiezen tussen
absolute waarden en percentages: bij het klikken op deze knoppen moeten de waarden onmiddellijk aanpassen (click)
– Drie schuifregelaars om de kleurwaarden in te stellen: de waarden/percentages in de labelvakken moeten de wijzigingen volgen (change; scroll)
Program
meren m
et Visula B
asic – Les 1
Objecten, eigenschappen en gebeurtenissen
• Voeg de 'End'-instructie toe aan de cmdSluiten_Click event
• Voor elk van de drie schuifbalken– In de Change-event
frmLes1.BackColor = RGB(hsbRood.Value, hsbGroen.Value, hsbBlauw.Value)
lblBlauw.Caption = hsbBlauw
Test het programma door op de pijltjes van de schuifbalk te klikken; door naast het schuifblokje te klikken; door het blokje te verschuiven.
Program
meren m
et Visula B
asic – Les 1
Objecten, eigenschappen en gebeurtenissen
De Change-event reageert niet op het verschuiven van het blokje. Pas als het blokje wordt losgelaten wordt de Change-event uitgelokt. Pas dan is de waardeverandering definitief.
Om continu de waarde aan te passen: Scroll-event. Voor elke (tussentijdse) aanpassing van de waarde wordt deze event uitgelokt.
Het eenvoudigste is voor elke Scroll-event de Change-event uit te lokken (interne gebeurtenis!)
Program
meren m
et Visula B
asic – Les 1
Objecten, eigenschappen en gebeurtenissen
Voeg toe in de Scroll-event van alle schuifbalken (aangepast aan de kleur)hsbBlauw_Change
Test het programma opnieuw.Omschakelen tussen waarden en
percentages:Waarden: 0 tot 255Percentages: 0 tot 100 Percentage=waarde/2.55
De omschakelfactor wordt in een variabele (sngFactor) bewaard: deze is gelijk aan 1 als waarden worden getoond en 2.55 als percentages worden getoond.
Program
meren m
et Visula B
asic – Les 1
Objecten, eigenschappen en gebeurtenissen
• Definieer de variabele:Dim sngFactor as Single (enkele precisie decimale waarde)
• Initialiseer sngFactor in de Form_load-eventsngFactor = 1
• Pas de Change-events van de schuifbalken aan zodat rekening wordt gehouden met deze factorlblBlauw.Caption = Int(hsbBlauw / sngFactor)
• Click-event van de optieknoppenoptPercentage: sngFactor = 2.55optWaarde: sngFactor = 1
Program
meren m
et Visula B
asic – Les 1
Objecten, eigenschappen en gebeurtenissen
• De labelvakken moeten onmiddellijk opnieuw worden aangepast aan de nieuwe situatie:In de Click-events van de optieknoppen:
lblBlauw.Caption = Int(hsbBlauw / sngFactor)
lblGroen.Caption = Int(hsbGroen / sngFactor)
lblRood.Caption = Int(hsbRood / sngFactor)
Program
meren m
et Visula B
asic – Les 1
Objecten, eigenschappen en gebeurtenissen
Op deze wijze blijft de waarde van de eigenschap en het uitzicht of status van het object altijd synchroon in het ganse programma.
Gouden Regel 2: I.p.v. aparte variabelen te gebruiken, gebruik zoveel mogelijk rechtstreeks de eigenschappen van de
objecten.
Program
meren m
et Visula B
asic – Les 1
Nomenclatuur
Om de leesbaarheid van de programmatekst te verhogen worden de namen van objecten en controls voorzien van een "prefix" van drie letters, zodat het duidelijk is om wat voor type control het gaat.
De prefix wordt in kleine letters geschreven en de naam van het object of de controil begint met een hoofdletter.
Program
meren m
et Visula B
asic – Les 1
Nomenclatuurfrm Form chk Checkbox
cbo Combobox cmd Command-button
fra Frame hsb Horizontal Scrollbar
vsb Vertical Scrollbar
img Image
lbl Label lst Listbox
mnu Menu opt Optionbutton
pic Picturebox txt Textbox
tmr Timer obj Object
Program
meren m
et Visula B
asic – Les 1
Oefening
Pas het voorbeeldprogramma zo aan dat een klik op de scroll-pijltjes de waarde met 1, resp. 1% (afhankelijk van de gekozen optie) wordt aangepast. Idem (maar dan 10, resp. 10%) indien er naast het schuifblokje wordt geklikt.