Introductie: GUI bouwen met Lazarus / Free Pascal | |
---|---|
Naam | GUI bouwen met Lazarus / Free Pascal |
Locatie | Hack42 |
Datum | 2024/05/24 20:00:00 - 2024/05/24 20:45:00 |
Contact | JanBee |
Info | Een Graphical User Interface bouwen met Free-Pascal en de Lazarus IDE |
Voorzitter | JanBee |
Wat
Je hebt een leuk projectje gemaakt met een Arduino of zo, maar nu wil je de gegevens presenteren of je project bedienen in een grafisch scherm op een PC of laptop. Hoe maak je zoiets? Of whatever ander programma met een smoelwerk.
1 van de niet zo vele mogelijkheden om zelf een GUI (Graphical User Interface) te maken is Free Pascal met de Lazarus IDE https://www.freepascal.org/ en https://www.lazarus-ide.org/
Deze is goed geïntegreerd (WYSIWYG), gratis, open source, levend, behoeft zo goed als geen configuratie en is beschikbaar voor Windows, Linux, Mac, Raspberry-Pi, Android en nog wel meer...
.
De slogan is "Write once, compile everywhere", en dat komt dicht bij de waarheid.
Free Pascal is qua nivo vergelijkbaar met C++, het kent dezelfde structuren maar het heet allemaal net even anders, helaas.
De Lazarus IDE laat je met de muis allerlei controls naar je forms slepen (wysiwyg) en eenvoudig de properties en event-handlers instellen.
Mensen die eerder met MS Visual Basic of VisualC++ gewerkt hebben zullen veel herkennen.
Voorbeelden van door mij met Lazarus-FPC gemaakte GUI's zijn:
Het bedieningspaneel van mijn freesbank: http://86.85.156.78/FreesControl.jpg
Het dashboard van mijn foucaultslinger: http://86.85.156.78/Foucault.jpg
Deze introductie is bestemd voor mensen die al een redelijke programmeer ervaring hebben met bijv. C++ als bij de Arduino familie. Het is beslist géén beginnerscursus programmeren, wel voor beginners op GUI gebied.
Hoe
Ik denk de introductie in 3 delen te doen:
1: Waarom FPC en Lazarus, hoe gemakkelijk je controls (dat zijn oa. die dingen waar je met een muis op kunt klikken) op een formulier kunt zetten, en de concepten van properties en events / event handlers.
En natuurlijk starten we met een "Hello World" exercitie.
2: De basics van Pascal.
3: Communicatie met bijv. een Arduino, zowel seriëel als via een netwerk.
Voorbereiding
Het worden niet echt "Hands On" sessies, maar als je wat wilt experimenteren: Installeer Lazarus / fpc op je laptop:
- Windows: Google op "Lazarus fpc", download en installeer. Het doet er nier erg toe welke versie.
- Linux (Mint, Ubuntu e.d.): Met sudo apt-get install lazarus fpc krijg je een wat oudere versie maar die werkt prima. Voor de laatste versie moet je zoeken naar een debian pakket. Soms zijn er 3 pakketten nodig: lazarus, fpc, sources.
- Mac: Weet ik niet. Zoeken en installeren.
Vooruitlopend vast enkele in het oog springende verschillen en overeenkomsten tussen Pascal en C/C++:
Pascal C/C++ Niet hoofdlettergevoelig Hoofdlettergevoelig begin { < statement block > < statement block > end; } { Commentaar } /* Commentaar */ var lengte, breedte : real; float lengte, breedte; Aantal : integer; int Aantal; JaHetKan: boolean; bool JaHetKan; if conditie then statement // geen ; if (conditie) statement; // ; moet else anderstatement; else anderstatement; for i:= 1 to 10 do statement; for(i=1; i<=10; i++) statement; for i:= 10 downto 1 do statement; for(i=10; i>0; i--) statement; function Halveer (P: integer): real; float Halveer (int P) const twee = 2; { begin const twee = 2; Halveer:= P div twee; return(P / twee); end; } procedure DoeIets (var K : real); void DoeIets (float *K) begin { K:= Halveer(K); *K = Halveer(*K); end; }
Animo
Voeg jezelf toe als je interesse hebt in deze introductiecursus:
- Rho Rho
Wie?: Deelnemer
Projecten: Zonnebloem
Madskills:
Klik voor meer info... 24 mei, 20:00 👍 - Duur Duur
Wie?:
Projecten: Makerspaces Contest
Madskills:
Klik voor meer info... - Dvanzuijlekom Dvanzuijlekom
Wie?: niet opgegeven
Projecten: Cafe Meijers Expo, 0xff, Alot of Geekiness, Hard Disk Drive Hacks, HackInk, Mede mogelijk gemaakt door Hack42, MegaBlitz, NERF Hacks, OHAI!, PROhacks, Seal of Approval, Smart Blockchain Technology, SpacePlan, Wall of Fail, pentainer, Toilethumor, Zuil, Nerd Bird Nest Box, Makerspaces Contest, RomanRotate
Madskills: geen opgegeven
Klik voor meer info... - MacSimski MacSimski
Wie?: deelnemer
Projecten: Zwembad, Cafe Meijers Expo, MegaBlitz, BreadBoxje, 3D Printing for Glorious Home Inprovement, Industrial Rotary Ribbon Re-Inker, KKN Stoel, PaperTowel Dispenser, Raspberry Pi projecten, Mechanische T37 Telex, Legosafe, MuseumDatabase
Madskills:
Klik voor meer info... - ObiToo ObiToo
Wie?:
Projecten: Rioolpijp-super-LEDstrip-lamp
Madskills:
Klik voor meer info... - Mahjestic Mahjestic
Wie?: Deelnemer
Projecten: nog geen
Madskills:
Klik voor meer info... - JanBee JanBee
Wie?: Deelnemer
Projecten: RetroRol
Madskills:
Klik voor meer info... - Narwhal Narwhal
Wie?: Deelnemer
Projecten: nog geen
Madskills:
Klik voor meer info...