Programmeren onder RISC OS: de snelstart. in BBC-Basic



Vergelijkbare documenten
lesboek Jonker & Wu CAD support

Quick Start Guide. Het Dashboard

opgericht 1 augustus 1932 Handleiding Artikel plaatsen

Handleiding Joomla! Frontend, content en gallery. september 2014 versie 1.0

emscreator PageBuilder Korte uitleg van werkwijze en functies

Diamanten jacht. Gamemaker Workshop. Hogeschool van Amsterdam. Benjamin van Arkel, Simon Karman en Koen Vrij

Handleiding om uw website/webshop aan te passen

Handleiding website beheer

Met dit programma kunt u fotoalbums, collages, kalenders, posters en nog veel meer maken. Wij vertellen u graag hoe dat werkt.

Werken met App Inventor. {1} Hallo wereld!

Handleiding. Curasoft. Templatebeheer

Programmeerstructuren met App Inventor

EXCEL MACRO ZET TEKST IN GESELECTEERDE CELLEN OM NAAR KLEINE LETTERS

Hoe moet je een prachtige presentatie maken?

Trainingsmateriaal Osiris 6. Tentamenbureau

Inhoud van de website invoeren met de ContentPublisher

Een eerste applicatie

Stappenplan Presentatie maken - 2

Handleiding. Voedingsversie Evry Hanzehogeschool Groningen november 2011

Handleiding Website Gibo Mariaburg

Zelf een spel maken met GameMaker Les 1: Laat iets bewegen!

Handleiding PDF Handtekening

In een paar stappen. je weggever aanbieden. via ActiveCampaign

HANDLEIDING HIPPO AFBEELDINGEN

VBA voor doe-het-zelvers

Zelf een Afsluitknop maken in Windows 10 ( of 7 of 8.x )

Legal Eagle Agenda handleiding versie 2.8 december 2007

Game Maker: Avonturier en skelet

Na het inloggen met de gegevens die je hebt gekregen, verschijnt het overzichtsscherm zoals hieronder:

Basisinstructie GameMaker 8.0

Invoegen... 8 Invulpunt... 9 Nieuwe bouwsteen maken... 9 Bouwsteen opslaan Wijze van werken in Outlook Informatie...

Siemens Industry Mall. Handleiding. Winkelwagenbeheer

1. Over LEVIY 5. Openen van de activiteit 2. Algemene definities 6. Inloggen op het LEVIY dashboard 3. Inloggen 6.1 Overzichtspagina 3.

1) Inloggen op beheer omgeving a. Aanmelden b. Wachtwoord vergeten 2) Berichten a. All posts


Gebruikershandleiding

PROS1E1 Handleiding ( ) Kf/Dd/Bd

Download DIGIPRAAT in de Google playstore! Zoek naar eu.desmidt om DIGIPRAAT en DIGITAAL te vinden!

Handleiding Wordpress CMS

SPECIALE VERSIE VOOR LEERKRACHTEN. Inhoud van de website invoeren met de ContentPublisher. 1. Inloggen. 2. Overzicht

Gebruikers Toevoegen. EasySecure International B.V. +31(0) Support.EasySecure.nl. v

Zelf een spel maken met GameMaker Les 3: Vijanden en levens


HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

Handleiding CrisisConnect app beheersysteem

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

Bij het opstarten van Small Basic verschijnt er de onderstaande werkomgeving.

Pagina 2 van 27. Kassa software

SNIJDEN VAN TEKST GEPLAATST IN EEN OVAAL.

Start de VPN client op. U kan het programma terugvinden vinden via Start Alle programma s Cisco Systems VPN Client (zie afbeelding hieronder)

Macro s maken in Word

Foto s verkleinen en Foto s in elkaar over laten lopen

Het beheren van een Team-reservering op de pc

Handleiding NarrowCasting

Snel aan de slag met BasisOnline en InstapInternet

Workshop Centrale ELO naar Blackboard maart Introductie. 2. Inloggen

Widget Tip van de dag!

Handleiding bij 'GSC SPRITE GENERATOR 2'

Zelf een spel maken met GameMaker. LES 2 Muren en punten!


HANDLEIDING EDITING MENU & TEKST

Kaart maken met Google Maps

Handleiding AVANCE Service desk. (ticketing portal)

Zelf een spel maken met GameMaker. LES 1 Laat iets bewegen!

HANDLEIDING POWERPOINT 2010

functionaliteit in beide abonnementen (Basis en Compleet) beschikbaar.

Gebruikers Toevoegen. EasySecure International B.V. +31(0) Support.EasySecure.nl. v

1. Open het programma KompoZer Het grote witte vlak is een nog lege webpagina. Deze gaan we nu van inhoud voorzien.

ZO MAAKT EN VERSTUURT U UW DIGITALE RELATIEKAART

INSTALLATIE IN PRINT INSTALLEREN. Aan de slag met Communicate In Print

Handleiding CrisisConnect app beheersysteem

HTA Software - Klachten Registratie Manager Gebruikershandleiding

4.4 Voeg ruimtes toe Hoe ga jij te werk? 1. Over LEVIY. 4.5 Aanwezigen Zijn er aanwezigen bij de DKS-controle? 2. Algemene definities. 3.

Trainingsmateriaal Osiris 6. Admission Office International Office

HOE EEN CD TE BRANDEN MET EEN ILDVR SYSTEEM. 1. Indien anders wordt aangegeven, worden alle onderstaande functies uitgevoerd met de linker muisknop.

Handleiding Icespy MR software

Central Station. Handleiding Algemeen Maatschappelijk Werk

HANDLEIDING PROGRAMMEREN IN PASCAL (LAZARUS)

Trainingsmateriaal Osiris 6. Admission Office International Office

Introductie testtooling Wink

Legal Intelligence versie 6.2 Quick Reference Sheets

Hunter Retail (POS) Documentatie v1.1. Documentatie Hunter-Retail (POS) Handleiding 1.1

Start GameMaker en open een nieuw spel (menu: Zorg ervoor dat GameMaker in Advanced Mode

The Nanny Personeel. Lokaal inloggen

Symbol for Windows BlissEditor

Mappen en bestanden. In dit hoofdstuk leert u het volgende:

Handleiding JCreator. Inhoud. Een Workspace en een eerste project maken

Trippeltrap Content Management System

HANDLEIDING INFOGRAPHIC SOFTWARE Versie 2.3 / jan 2014

Altijd op de hoogte van de laatste ontwikkelingen.

Wat is er veranderd in Prezi?

GIMP STAP-VOOR-STAP : AFGERONDE HOEKEN

Handleiding help Sinterklaas!

Uitleg LIGHT nieuwsbriefmodule

design ook items uitsnijden

EN MET OUTLOOK AAN DE SLAG MET DIGITALE VAARDIGHEDEN TRAINING: BASISVAARDIGHEDEN

CMS Instructiegids Copyright Endless webdesign v.o.f

Handleiding administrator

HANDLEIDING Vectron Commander 6.xx

2. Wanneer moet ik een afbeelding verkleinen?

Transcriptie:

Programmeren onder RISC OS: de snelstart in BBC-Basic Programmeren in RISC OS: de snelstart De programma-directory Vensters maken Een eenvoudige foutprocedure Muis en toetsenbord Een icoon op de icoonbalk plaatsen Een menu aanbrengen Sprites in vensters en iconen De listing tot zover Afwerking Peter Scheele! 1

Programmeren in RISC OS: de snelstart Versie: nov. 2015 In een paar reuzenstappen maken we een werkend programma. Deze werkwijze veronderstelt dat u weet hoe RISC OS werkt. Ook verschillende programma s onder RISC OS als Edit (of een alternatieve editor), Paint en TemplEd (of een alternatieve template-editor). En dat u bekend bent met BBC-Basic en dat u een idee heeft van SoftWare Interrupts (SWI s). Bij de verschillende stappen staan verwijzingen naar de cursus in de vorm deel.hoofdstuk.paragraaf. Daar vindt u verdere uitleg, details en achtergronden. De programma-directory! 1.3.1..6 Maak in een directoryvenster een directory door muis:menu. Kies in het menu voor New directory. Geef een naam die begint met!, bijvoorbeeld!mijnprog. Open die directory met shift-klik. Zet in de directory de volgende bestanden:!!boot! Start Edit, muis:menu, kies Create', ga naar recht en kies Obey. Voer de volgende tekst in:!! Set MijnProg$Dir <Obey$Dir>!! IconSprites <MijnProg$Dir>.!Sprites22!! Bewaar het bestand met de naam!boot.!! De!Boot wordt tijdens de ontwikkeling van het programma verder uitgebreid.!!run! Start Edit, muis:menu, kies Create, ga naar rechts en kies Obey. Voer de volgende tekst in:!! Set MijnProg$Dir <Obey$Dir>!! WimpSlot -min 8K -max 8K!! IconSprites <Obey$Dir>.!Sprites22!! Run <Obey$Dir>.!RunImage!! Bewaar het bestand met de naam!run.!!! De!Run wordt tijdens de ontwikkeling van het programma verder uitgebreid.!!sprites22!start Paint, muis:menu, kies Create new sprite, dit venster (of vergelijkbaar) verschijnt. Geef als naam de naam van het programma (!MijnProg), vul het verder in zoals in dit voorbeeld. Klik op OK. Er verschijnen twee vensters, bij een staat de programmanaam in de titelbalk (!mijnprog). Teken een (voorlopig) plaatje.!! Bewaar het bestand onder de naam!sprites22. Maak een verkleind icoon. Open!Sprites22, in het venster muis:menu en kies New sprite. Het venster hiernaast wordt geopend. De naam wordt sm!mijnprog. Vul bij de afmetingen twee keer 17 in en maak de afbeelding. Bewaar het bestand onder de naam!sprites22. Maak een gepind icoon. Open!Sprites22, in het venster muis:menu en kies New sprite. Het venster hierboven wordt geopend. De naam wordt ic_mijnprog. De afmetingen zijn 34 x 34. Maak de afbeelding. Bewaar het bestand onder de naam!sprites22.!!help! Start Edit, muis:menu, kies Create, ga naar rechts en kies Text.!! Voer een passende helptekst in.!! Bewaar het bestand met de naam!help.!! De!Help wordt tijdens de ontwikkeling van het programma verder uitgebreid.! 1

!!RunImage Start Edit, muis:menu, kies Create, ga naar rechts en kies BASIC.!! Voer de volgende tekst in of kopieer en plak die:!! REM >!MijnProg!! REM Naam Auteur!! REM version 1.1!! PROCinit!! PROChoofd!! PROCsluit!! END!! DEF PROCinit!! DIM blok% 255!! klaar%=false:versie%=4.02*100!! app$= MijnProg :filter%=&1c33!! SYS Wimp_Initialise,versie%,&4B534154,app$ TO versie%,taak%!!!! DEF PROChoofd!! WHILE klaar%=false!! SYS Wimp_Poll,filter%,blok% TO reason%!! CASE reason% OF!! WHEN 17,18:IF blok%!16=0 THEN klaar%=true!! ENDCASE!! ENDWHILE!!!! DEF PROCsluit!! SYS Wimp_CloseDown,taak%,&4B534154!!!! Bewaar het onder de naam!runimage.!! De!RunImage wordt tijdens de ontwikkeling van het programma verder uitgebreid. U hebt nu een werkend programma. Vensters maken!! 1.5.1..4 Het Info-venster (wordt getoond via muis:menu) Start een Template-editor, maak een venster als dit en noem het Info. Bewaar de template onder de naam Templates in de directory van!mijnprog. Het hoofdvenster Main. Start een Template-editor, maak een venster als dit en noem het Main. Bewaar de template onder de naam Templates in de directory van!mijnprog. Bepaal per venster de werkelijke grootte, de zichtbare grootte, de vensterattributen (titelbalk, knoppen, schuifbalken), de invoervelden (moeten via de tab-toets op elkaar volgen), de plaats van de iconen etc. Hou bij voorkeur rekening met de adviezen in de Style guide. Ook eventuele andere vensters moeten aangemaakt worden, ze worden alle bewaard in Templates. Vergeet niet van de vensters de statistics op te vragen want die informatie hebben we dadelijk nodig. Voeg onderstaande regel toe in PROCinit. Op de plaats van xxx en yyy komen de waarden uit de statistics.! 2

DIM wmain% xxx, winfo% yyy, naam% 11 Het kan zijn dat de grootte van blok% moet worden aangepast aan de grootste van xxx of yyy. Hetzelfde geldt voor de WimpSlot in!run. Roep beide templates aan in PROCbegin, onder de DIM en na SYS Wimp_Initialise, met de volgende opdrachten (zet op de plaatsen xxx en yyy de juiste waarden): SYS Wimp_OpenTemplate,, <MijnProg$Dir>.Templates $naam%= main SYS Wimp_LoadTemplate,,blok%,wmain%,wmain%+xxx,-1,naam%,0 SYS Wimp_CreateWindow,,blok% TO hmain% $naam%= info SYS Wimp_LoadTemplate,,blok%,winfo%,winfo%+yyy,-1,naam%,0 SYS Wimp_CreateWindow,,blok% TO hinfo% SYS Wimp_CloseTemplate!blok%=hmain%:SYS Wimp_GetWindowState,,blok% SYS Wimp_OpenWindow,,blok%!blok%=hinfo%:SYS Wimp_GetWindowState,,blok% SYS Wimp_OpenWindow,,blok% De regels met $naam%= naam, Wimp_LoadTemplate en Wimp_CreateWindow moeten voor ieder venster apart vermeld worden. Zet in PROChoofd net boven WHEN 17,18: WHEN 2:SYS Wimp_OpenWindow,,blok% WHEN 3:SYS Wimp_CloseWindow,,blok%:klaar%=TRUE Het is op tal van plaatsen mogelijk venster te openen of te sluiten. Ze komen verderop aan de orde. Testen: Start!MijnProg, kijk of het venster zichtbaar wordt, sluit het programma met het sluiticoon en controleer bij de TaskManager of het verdwenen is. Een eenvoudige foutprocedure! 1.5.5 en 1.8. Zet op een van de eerste regels de volgende code: ON ERROR PROCerror(REPORT$+ (in regel +STR$ ERL+ ),3):END En onderaan de listing: DEF PROCerror(M$,vlag%)!blok%=ERR $(blok%+4)=m$+chr$0 SYS Wimp_ReportError,blok%,vlag%,app$ TO,M% Als er een probleem is met het programma, verschijnt er een venster met de foutmelding en de desbetreffende programmaregel. Er is een knop om het programma af te sluiten. Als het programma onverklaarbaar vastloopt, of zelfs de hele machine, zonder foutmelding, controleer dan de grootte van de WimpSlot en van blok% in PROCinit. Maak die groter en test.! 3

Muis en toetsenbord!! 1.6.1 en verder De muis Zet in PROChoofd op de juiste plaats: WHEN 6:PROCmuis(blok%!0,blok%!4,blok%!8,blok%!12,blok%!16) Nu wordt door RISC OS bijgehouden en doorgegeven welke acties er met de muis gedaan worden. En maak een nieuwe procedure: DEF PROCmuis(x%,y%,knop%,venster%,icoon%) REM Wat te doen met de data die nu in x%, y%, knop%, venster% en icoon% zit? In x% en y% staan de coördinaten van de muispijl in het venster, knop% bevat het nummer van de muisknop waarmee geklikt is, venster% bevat het nummer van het venster en icoon% het nummer van het icoon waarop geklikt is. Op de plaats van de REM komen de volgende regels (voorbeeld, in eigen programma gedetailleerd uitwerken): IF (venster%=hmain%) AND (knop%=4) AND (icoon%=11) THEN klaar%=true:rem icoon 11 is een knopje met Quit Het kan ook zo: CASE (venster%=hmain%) AND icoon% OF WHEN 4:PROCprint:REM icoon 4 is een knopje met Print WHEN 11:klaar%=TRUE:REM icoon 11 is een knopje met Quit ENDCASE Voor ieder venster, iedere muisknop en ieder icoon moet de actie beschreven worden. Dat kan bij grote programma s redelijk complex worden. Het toetsenbord Voeg in PROChoofd op de juiste plaats de regel toe: WHEN 8:PROCtoets(venster%,icoon%,toets%) Nu wordt door RISC OS bijgehouden en doorgegeven welke acties er met het toetsenbord gedaan worden. En maak een nieuwe procedure: DEF PROCtoets(venster%,icoon%,toets%) IF (icoon%=5) AND (toets%=13) THEN PROCinvoer(venster%,icoon%) ELSE SYS Wimp_ProcessKey,toets% De Wimp_ProcessKey is om algemene toetsaanslagen als functietoetsen door te geven aan RISC OS. De invoervelden kunnen geformatteerd worden, daarmee formatteert men de invoer. Dat moet gebeuren bij het ontwerpen in de template-editor bij Validation. Denk aan A0-9 voor alleen cijfers, Aa-z voor alleen letters of A~X alle tekens behalve X. Met Pspritename kan een eigen pointer worden gebruikt (die moet wel als sprite getekend worden en staan in!sprites22).! 4

Een icoon op de icoonbalk plaatsen! 1.7.1 Zet deze twee regels in PROCinit, net boven. blok%!0=-1:blok%!4=0:blok%!8=0:blok%!12=68: blok%!16=68:blok%!20=&3002:$(blok% +24)=!MijnProg SYS Wimp_CreateIcon,,blok% TO ihandle% Verder moet dat icoon klikbaar zijn met muis:select om een venster te openen en muis:menu om een menu te tonen. Dat gebeurt in PROCmuis met de volgende twee regels: IF (venster%=-2) AND (knop%=4)!blok%=hmain%:sys Wimp_GetWindowState,,blok%:SYS Wimp_OpenWindow,,blok% En: IF (venster%=-2) AND (knop%=2) PROCmenu(x%,y%) PROCmenu moet nog wel beschreven worden, dat gebeurt in de volgende paragraaf. De volgende regel kan nu uit PROCbegin verwijderd worden:!blok%=hmain%:sys Wimp_GetWindowState,,blok% SYS Wimp_OpenWindow,,blok% Een menu aanbrengen!! 1.7.2 Een simpel voorbeeld: het menu vanaf de icoonbalk. Voor uitgebreidere menu s, menu s vanuit een venster en geneste menu s, kijk in de cursus. Er moet een menublok gebruikt worden van 28+(2x24) bytes. Zet daarvoor bovenin PROCinit: DIM menublok% 76 Het menu moet ook geïnitialiseerd worden in PROCinit, net boven, met de volgende regels: menublok%!28=0:menublok%!32=hinfo%:menublok%!36=&7000021 $(menublok%+40)= Info menublok%!52=&80:menublok%!56=-1:menublok%!60=&7000021 $(menublok%+64)= Einde Dan moet PROCmenu(x%,y%) gevuld worden: DEF PROCmenu(x%,y%) $menublok%=app$:menublok%?12=7:menublok%?13=2 menublok%?14=7:menublok%?15=0 menublok%!16=96:menublok%!20=44:menublok%!24=0 menublok%!28=0:menublok%!32=hinfo% menublok%!36=&7000021 $(menublok%+40)= Info menublok%!52=&80:menublok%!56=-1:menublok%!60=&7000021 $(menublok%+64)= Einde SYS Wimp_CreateMenu,,menublok%,x%,y% Om op de menukeuze te kunnen reageren, moet in PROChoofd event 9 aangezet worden:! 5

WHEN 9:PROCmenukeuze En de procedure moet geplaatst worden: DEF PROCmenukeuze keuze%=!blok% IF keuze%=0!blok%=hinfo% SYS Wimp_GetWindowState,,blok%:SYS Wimp_OpenWindow,,blok% IF keuze%=1 klaar%=true Sprites in vensters en iconen Maak een of meer sprites en bewaar die in het bestand Sprites. Open het venster in de template-editor. Sleep eerst het bestand Sprites naar het icoon van de template-editor op de icoonbalk; nu weet de template-editor dat er sprites in komen. Sleep dan een icoon in de template, die met de afbeelding voldoet al, of kies een button. Klik op het desbetreffende icoon met muis:menu en via het menu Icon # naar Edit In het venster staat Validation. Maak die leeg. Vink ook Text uit en zet bij Sprite de naam van de sprite. Bewaar het geheel. In PROCbegin komt, voor het laden van de template: *IconSprites<MijnProg$Dir>.Sprites De listing tot zover REM > MijnProg REM Peter Scheele REM Version 0.1 ON ERROR PROCerror(REPORT$+" (in regel "+STR$ ERL+")",3):END PROCbegin PROChoofd PROCeinde END DEF PROCbegin DIM blok% 2000 DIM wmain% 1037, winfo% 421, naam% 11, menublok% 76 klaar%=false:versie%=5.21*100 app$="mijnprog":filter%=&0 *IconSprites<MijnProg$Dir>.Sprites SYS "Wimp_Initialise",versie%,&4B534154,app$ TO versie%,taak% SYS "Wimp_OpenTemplate",,"<MijnProg$Dir>.Templates" $naam%="main" SYS "Wimp_LoadTemplate",,blok%,wmain%,wmain%+1037,-1,naam%,0 SYS "Wimp_CreateWindow",,blok% TO hmain% $naam%="info" SYS "Wimp_LoadTemplate",,blok%,winfo%,winfo%+421,-1,naam%,0 SYS "Wimp_CreateWindow",,blok% TO hinfo% SYS "Wimp_CloseTemplate" blok%!0=-1:blok%!4=0:blok%!8=0:blok%!12=68 blok%!16=68:blok%!20=&3002:$(blok%+24)="!mijnprog" SYS "Wimp_CreateIcon",,blok% TO ihandle%! 6

menublok%!28=0:menublok%!32=hinfo%:menublok%!36=&7000021 $(menublok%+40)="info" menublok%!52=&80:menublok%!56=-1:menublok%!60=&7000021 $(menublok%+64)="einde" DEF PROChoofd WHILE klaar%=false SYS "Wimp_Poll",filter%,blok% TO reason% CASE reason% OF WHEN 2:SYS "Wimp_OpenWindow",,blok% WHEN 3:SYS "Wimp_CloseWindow",,blok%:klaar%=TRUE WHEN 6:PROCmuis(blok%!0,blok%!4,blok%!8,blok%!12,blok%!16) WHEN 9:PROCmenukeuze WHEN 17,18:IF blok%!16=0 THEN klaar%=true ENDCASE ENDWHILE DEF PROCeinde SYS "Wimp_CloseDown",taak%,&4B534154 DEF PROCerror(M$,vlag%)!blok%=ERR $(blok%+4)=m$+chr$0 SYS "Wimp_ReportError",blok%,vlag%,app$ TO,M% DEF PROCmuis(x%,y%,knop%,venster%,icoon%) IF (venster%=hmain%) AND (knop%=4) AND (icoon%=5) THEN klaar%=true IF (venster%=-2) AND (knop%=4)!blok%=hmain%:sys "Wimp_GetWindowState",,blok %:SYS "Wimp_OpenWindow",,blok% IF (venster%=-2) AND (knop%=2) PROCmenu(x%,y%) DEF PROCmenu(x%,y%) $menublok%=app$:menublok%?12=7:menublok%?13=2 menublok%?14=7:menublok%?15=0 menublok%!16=96:menublok%!20=44:menublok%!24=0 menublok%!28=0:menublok%!32=hinfo% menublok%!36=&7000021 $(menublok%+40)="info" menublok%!52=&80:menublok%!56=-1:menublok%!60=&7000021 $(menublok%+64)="einde" SYS "Wimp_CreateMenu",,menublok%,x%-100,y%+100 DEF PROCmenukeuze keuze%=!blok% IF keuze%=0!blok%=hinfo%:sys "Wimp_GetWindowState",,blok%:SYS "Wimp_OpenWindow",,blok% IF keuze%=1 klaar%=true! 7

Afwerking Maak in!run de WimpSlot zo klein mogelijk. Het gaat in stappen van 4. Een schatting is mogelijk: bepaal de grootte van Templates, Sprites, RunImage en de arrays (DIM) en rond het geheel af naar boven, het getal moet deelbaar zijn door 4. Zie deel 1, hoofdstuk 3.3. In PROChoofd staat een filter. Dat moet precies ingesteld worden, zodat het programma alleen aandacht vraagt voor dat wat het nodig heeft. Daarmee belast MijnProg het geheugen en de processortijd niet meer dan nodig is. Het filter (filter%) staat nu op 0. Voor uitleg zie deel 1, hoofdstuk 4.5. Men doet er goed aan voor een overzichtelijk listing te zorgen. Inspringen, documenteren met REM s, lege regels tussen procedures en goed gekozen namen. Deze beschrijving en het programma zijn lang niet compleet, maar ze bieden een start. Aan de volgende zaken moet nog aandacht worden besteed: (Help)berichten Uitgebreide sprites en afbeeldingen Drag and drop Uitgebreide menu s, ook aan te roepen vanuit een venster Andere fonts De afhandeling van radiobuttons Bestanden in de!boot Een deel van bovenstaande wordt behandeld in deel 2 van de cursus. Peter Scheele november 2015 p.scheele@xs4all.nl! 8