Uit Hack42
Ga naar: navigatie, zoeken
(Nieuwe pagina aangemaakt met '{{Activiteit |Name=GUI bouwen met Lazarus / Free Pascal |Type===Animo Check== |Contact=janbee |Info=Graphical User Interface |Speaker=janbee |Picture=GUI-Foucault.j...')
 
Regel 11: Regel 11:
 
Je hebt een leuk projectje gemaakt met een Arduino, maar nu wil je de gegevens presenteren in een grafisch scherm op een PC of laptop. Hoe maak je zoiets? Of whatever ander programma met een smoelwerk.
 
Je hebt een leuk projectje gemaakt met een Arduino, maar nu wil je de gegevens presenteren in een grafisch scherm op een PC of laptop. Hoe maak je zoiets? Of whatever ander programma met een smoelwerk.
  
1 van de vele mogelijkheden is om zelf een GUI (Graphical User Interface) te maken. Ook daar zijn veel platforms voor te vinden, maar na lang zoeken ben ik op FreePascal + Lazarus gestuit, omdat dat een goed geïntegreerde omgeving is die zo goed als geen configuratie behoeft, gratis is en beschikbaar is voor Windows, Linux, Mac, Raspberry-Pi en zelfs Android.
+
1 van de vele mogelijkheden is om zelf een GUI (Graphical User Interface) te maken. Ook daar zijn veel platforms voor te vinden, maar na lang zoeken heb ik voor FreePascal + Lazarus gekozen, omdat dat een goed geïntegreerde omgeving is die zo goed als geen configuratie behoeft, gratis is en beschikbaar is voor Windows, Linux, Mac, Raspberry-Pi en zelfs Android.
 
De slogan is "Write once, compile everywhere". Dat is niet 100% waar, maar het komt er dicht bij.
 
De slogan is "Write once, compile everywhere". Dat is niet 100% waar, maar het komt er dicht bij.
  
Free Pascal is een taal die qua nivo vergelijkbaar is met C++, het kent dezelfde structuren maar het heet allemaal net FF anders, helaas.  
+
Free Pascal is een taal die qua nivo vergelijkbaar is met C++, het kent dezelfde structuren maar het heet allemaal net FF 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 M$ Visual Basic of VisualC++ gewerkt hebben zullen veel herkennen.
 
Mensen die eerder met M$ Visual Basic of VisualC++ gewerkt hebben zullen veel herkennen.
  
Voorbeelden van met Lazarus-FPC gemaakte GUI's zijn het bedieningsprogramma van mijn CNC in het Maaklab(PC-WXP-platform) en de readout van de Boor-Freesmachine in de Metaalkamer (Raspberry-Pi).
+
Voorbeelden van door mij met Lazarus-FPC gemaakte GUI's zijn het bedieningsprogramma van mijn CNC in het Maaklab(PC-WXP-platform), de readout van de Boor-Freesmachine in de Metaalkamer (Raspberry-Pi) en een interface voor de bediening en logging van een Foucault slinger, W7 (zie plaatje).
  
Deze introductie is bestemd voor mensen die al een redelijke programmeer ervaring hebben met bijv. C++ als bij de Arduino familie. Het is géén beginnerscursus programmeren, misschien wel voor beginners op GUI gebied.
+
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.
  
 
Ik denk de introductie in 3 delen te doen:  
 
Ik denk de introductie in 3 delen te doen:  
  
1: Waarom FPC en Lazarus, de belangrijkste verschillen tussen Pascal en C, struktuur van een Pascal programma, enkele veel voorkomende controls (dat zijn oa die dingen waar je met een muis op kunt klikken), en de concepten van properties en events / event handlers.
+
1: Waarom FPC en Lazarus, de belangrijkste verschillen tussen Pascal en C, struktuur van een Pascal programma, enkele veel voorkomende controls (dat zijn oa die dingen waar je met een muis op kunt klikken), en de concepten van properties en events / event handlers. En natuurlijk starten we met een "Hello World" exercitie.
  
 
2: Communicatie met bijv. een Arduino, zowel seriëel als via een netwerk. Het installeren van pakketten.
 
2: Communicatie met bijv. een Arduino, zowel seriëel als via een netwerk. Het installeren van pakketten.
Regel 30: Regel 30:
 
3: Meerdere forms. Units in Pascal vs. Headerfiles in C/C++.  
 
3: Meerdere forms. Units in Pascal vs. Headerfiles in C/C++.  
  
 +
Voorbereiding: Installeer Lazarus / fpc op je laptop
 +
Windows: Google op "Lazarus fpc", download en installeer. Het doet er nier erg toe welke versie.
 +
Linux: 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.
 +
Mac: Weet ik niet. Zoeken en installeren.
  
Vooruitlopend enkele in het oog springende verschillen tussen Pascal en C/C++
 
  
 +
Vooruitlopend vast enkele in het oog springende verschillen tussen Pascal en C/C++
  
 
Pascal                                        C/C++
 
Pascal                                        C/C++
Regel 46: Regel 50:
 
   lengte, breedte : real;                      float lengte, breedte;
 
   lengte, breedte : real;                      float lengte, breedte;
 
   Aantal : integer;                            int Aantal;
 
   Aantal : integer;                            int Aantal;
JaHetKan: boolean;                          bool JaHetKan;
+
  JaHetKan: boolean;                          bool JaHetKan;
  
 
if conditie then statement                    if (conditie) statement;  
 
if conditie then statement                    if (conditie) statement;  

Versie van 2 aug 2018 19:07

==Animo Check==: GUI bouwen met Lazarus / Free Pascal
Schroefje24.png
Schroefje24.png
Schroefje24.png
Schroefje24.png
GUI-Foucault.jpg
Naam GUI bouwen met Lazarus / Free Pascal
Locatie {{{Location}}}
Datum Jan 13 1337 13:37:00
Contact janbee
Info Graphical User Interface
Voorzitter janbee
GUI-Foucault.jpg File:GUI-Foucault.jpg

[[Category:{{{Location}}}]]

=Animo Check==


Animo Check GUI bouwen met Free-Pascal en de Lazarus IDE

Je hebt een leuk projectje gemaakt met een Arduino, maar nu wil je de gegevens presenteren in een grafisch scherm op een PC of laptop. Hoe maak je zoiets? Of whatever ander programma met een smoelwerk.

1 van de vele mogelijkheden is om zelf een GUI (Graphical User Interface) te maken. Ook daar zijn veel platforms voor te vinden, maar na lang zoeken heb ik voor FreePascal + Lazarus gekozen, omdat dat een goed geïntegreerde omgeving is die zo goed als geen configuratie behoeft, gratis is en beschikbaar is voor Windows, Linux, Mac, Raspberry-Pi en zelfs Android. De slogan is "Write once, compile everywhere". Dat is niet 100% waar, maar het komt er dicht bij.

Free Pascal is een taal die qua nivo vergelijkbaar is met C++, het kent dezelfde structuren maar het heet allemaal net FF 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 M$ Visual Basic of VisualC++ gewerkt hebben zullen veel herkennen.

Voorbeelden van door mij met Lazarus-FPC gemaakte GUI's zijn het bedieningsprogramma van mijn CNC in het Maaklab(PC-WXP-platform), de readout van de Boor-Freesmachine in de Metaalkamer (Raspberry-Pi) en een interface voor de bediening en logging van een Foucault slinger, W7 (zie plaatje).

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.

Ik denk de introductie in 3 delen te doen:

1: Waarom FPC en Lazarus, de belangrijkste verschillen tussen Pascal en C, struktuur van een Pascal programma, enkele veel voorkomende controls (dat zijn oa die dingen waar je met een muis op kunt klikken), en de concepten van properties en events / event handlers. En natuurlijk starten we met een "Hello World" exercitie.

2: Communicatie met bijv. een Arduino, zowel seriëel als via een netwerk. Het installeren van pakketten.

3: Meerdere forms. Units in Pascal vs. Headerfiles in C/C++.

Voorbereiding: Installeer Lazarus / fpc op je laptop Windows: Google op "Lazarus fpc", download en installeer. Het doet er nier erg toe welke versie. Linux: 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. Mac: Weet ik niet. Zoeken en installeren.


Vooruitlopend vast enkele in het oog springende verschillen 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 if (conditie) statement;

 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; }