Hoi Gerard!
De liefde voor Pascal is bij mij van de Turbo Pascal tijd (heb wat met Pascal op een Amiga en een Mac gerommeld, maar de echte doorbrak kwam bij Turbo Pascal).
Als eerste zou ik aan de slag gaan met Lazarus, welke op Free Pascal gebaseerd is - misschien heb je dit al geïnstalleerd staan. Lazarus is gratis en staat het zelfs toe om jouw programma, zonder al te veel moeilijkheden, te her-compileren onder Linux of MacOS X.
Zelfs als je geen Windows GUI wilt gebruiken, dan is dit al een makkelijke werk omgeving - je kunt hier namelijk ook zogenaamde Console applicaties bouwen (zoals je nu al doet met Free Pascal).
Tweede punt is dat de interactie met de gebruiker wat anders gaat en sterker object georiënteerd is, maar niet gevreesd - het is makkelijk dan je denkt. De meeste code wordt door Lazarus zelf aangemaakt terwijl je de GUI bouwt.
Het opbouwen van de GUI is een kwestie van klikken, plaatsen en schuiven. Zodra je dat gedaan hebt kun je het e.e.a. aan de GUI gaan koppelen.
Het belangrijkste deel is natuurlijk een window, wat in Delphi/Lazarus een Form genoemd wordt. Bij het aanmaken van een applicatie wordt er meteen al een voor je aangemaakt.
Vervolgens plaatsje componenten op dit venster, b.v. een button (TButton), edit box (TEdit), etc.
De eerste keer is het zeker aan te raden om wat daarmee te spelen, zodat je een gevoel krijgt bij hoe het e.e.a. geplaatst kan worden.
Start zo'n programma ook af en toe even om te kijken wat het doet. (F9 geloof ik onder Windows, Command+R onder Mac)
Lazarus (en Delphi) kent behoorlijk wat leuke zaken zoals het automatisch uitlijnen en schalen, maar daar moet je in het begin nog even niet naar kijken - dat verwart het e.e.a. te snel.
Na het plaatsen van componenten (de zogenaamde visual components - de componenten die zichtbaar zullen zijn) moeten we kijken naar events. De events die je het meeste gebruikt zal waarschijnlijk het "OnClick" event zijn.
Als je b.v. een formulier bouwt, dan zul je invoer velden (editbox), tekst velden (memo), aanvink componenten (checkbox, radiobutton) en knoppen (button) veel gebruiken. Zet ze gerust op het venster (Form), en start het programma. Je zult zien dat veel zaken al voor je geregeld zijn zoals het intypen van tekst, kopiëren en plakken, indrukken van knoppen, etc. Dit werk allemaal al zonder dat je een regel code hoefde te typen.
Als ik aan een formulier denk, dan neem ik voor het gemak even aan dat er het e.e.a. ingevuld dient te worden en dat er een "submit" (verstuur) knop gaat komen. Het invul deel is dus makkelijk, en de knop ook, maar achter de knop moeten we natuurlijk iets van code hangen om het e.e.a. te controleren en te versturen. Dit gaat via het "OnClick" event van de knop (button). Dubbel klik op de knop op het formulier en een stukje code wordt al klaar gezet voor je. Je hoeft hier alleen maar het "slimme" deel toe te voegen.
In dit "slimme" deel lezen we dan de invoer velden uit (en later bouw je daar waarschijnlijk ook de verificatie in).
Het lezen van een editbox bijvoorbeeld gaat via het uitlezen van de "text" property. Properties zijn onderdeel van het betreffende object, de TEdit box heeft er een aantal, zoals locatie en omvang (top, left, width, height), kleur (color), ingevoerde tekst (text), etc.
Iets soortgelijks geldt ook voor de andere componenten.
Om nu niet een hele cursus te schrijven (wat overigens misschien wel een goed idee is voor een artikeltje!), laat ik je hier even mee spelen - er kan weinig fout gaan. Stel gerust vragen ...!
Wat andere bronnen hierover:
Engelstalig:
- Start Programming Using Object Pascal (ik denk dat je de eerste hoofdstukken over kunt slaan)
- Lazarus Form Tutorial (gaat iets te snel de diepte in, maar het geeft een idee - in het Nederlands)
- Developing a GUI application with Lazarus (slaat soms wat belangrijke details over en gaat op andere momenten wat diep)
Ik zie dat de Nederlandse vertegenwoordiging wat dit onderwerp betreft maar wat magertjes is ... PCM is een serie gestart, maar alleen Deel 1 blijkt online beschikbaar. Mocht je lid zijn van de HCC, dan vindt je daar ook een Pascal gebruikersgroep.
Zoals eerder gezegd: speel er een beetje mee, en stel gerust vragen!