Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

22
Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens

Transcript of Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

Page 1: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

Les 1Objecten, Eigenschappen en

Gebeurtenissen

Programmerenmet

Visual Basic

Karl Moens

Page 2: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met 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

Page 3: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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

Page 4: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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).

Page 5: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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.

Page 6: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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.

Page 7: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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

Page 8: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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.

Page 9: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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.

Page 10: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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)

Page 11: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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.

Page 12: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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.

Page 13: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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)

Page 14: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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.

Page 15: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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!)

Page 16: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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.

Page 17: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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

Page 18: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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)

Page 19: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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.

Page 20: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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.

Page 21: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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

Page 22: Les 1 Objecten, Eigenschappen en Gebeurtenissen Programmeren met Visual Basic Karl Moens.

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.