Spiele in Lazarus objektorientiert programmieren/Erste Schritte und Vorlage:LernpfadNeu: Unterschied zwischen den Seiten

Aus ZUM-Unterrichten
main>Peterdauscher
 
K (Textersetzung - „Benutzer:Christian/Autorenbox“ durch „Autorenbox“)
 
Zeile 1: Zeile 1:
Zunächst einmal muss man sich die Entwicklungsumgebung, also das Progamm, mit dem man die Spiele „bastelt“ aus dem Internet herunterladen und installieren. Lazarus hat dabei einige große Vorteile:* Lazarus ist kostenlos und quelloffenD.h. jeder kann Lazarus benutzen (auch ohne Registrierung, Werbeeinblendungen oder Herausgabe persönlicher Daten). Im Grunde darf man das Programm auch selbst verbessern (wobei das kompliziert ist) und weitergeben.
== {{PAGENAME}} ==
* Lazarus gibt es für viele BetriebssystemeLazarus ist für verschiedene Versionen von Microsoft Windows, für MacOS und auch für das freie Betriebssystem Linux verfügbar.


Die Vorlage <code>{{PAGENAME}}</code> wird auf der Einstiegsseite eines Lernpfads verwendet. Sie erzeugt die Übersichtsbox eines Lernpfades und sollte am Beginn der Seite eingebunden sein.


Lernpfade bestehen aus mehreren Seiten und sollten folgendermaßen angelegt werden:
<pre>
+ Lernpfadstartseite  (Titel: Das_Besondere_Etwas)
|  Einführung ins Thema
|  muss Vorlage {{Lernpfad}} verwenden
|
+--> Lerneinheitsseite 1 (Titel: Das_Besondere_Etwas/1_Was_ist_Etwas? )
|      muss Unterseite von Lernpfadseite sein
|      muss Vorlage {{Lerneinheit}} verwenden
|
+--> Lerneinheitsseite 2 (Titel: Das_Besondere_Etwas/2_Besonderheit )
|
+--> Lerneinheitsseite 3 (Titel: Das_Besondere_Etwas/3_Wo_wird_es_verwendet? )
</pre>
Alle Lernschritte sollten Unterseiten des Lernpfades sein. Die Reihenfolge der Lerneinheiten sollte durch Nummern im Titel der Unterseite gesteuert werden. Jede dieser Unterseiten muss die Vorlage <code><nowiki>{{Lerneinheit}}</nowiki></code> verwenden. Diese Vorlage muss ans Ende der Lerneinheitsseite gelegt werden. Sie erzeugt eine automatische Navigation zu vorherigen und nächsten Lernschritten, erstellt eine Box mit der Navigation zu allen Lerneinheiten.


==  Herunterladen und installieren von Lazarus ==


Wie oben erwähnt, steht die Lazarus-IDE jedem kostenlos zur Verfügung. Die entsprechende Web-Adresse ist
Die Vorlage erzeugt automatisch eine Navigation für den Lernpfad. Dazu wird die Vorlage <code><nowiki>{{Lernpfad/Navigation}}</nowiki></code> verwendet. Diese Vorlage sucht in allen Unterseiten nach Verwendungen der Vorlage <code><nowiki>{{Lernschritt}}</nowiki></code>.


[http://www.lazarus-ide.org/ www.lazarus-ide.org]


===  Microsoft Windows ===


Man muss sich hier dann für ein entsprechendes Betriebssystem entscheiden. Standardmäßig bietet die Website die aktuelle Version von Lazarus zum Download passend für das jeweilige Betriebssystem an. Arbeitet man alleine und nur auf dem eigenen Rechner mit Lazarus, ist das in der Regel auch die beste Wahl.


Anders ist es, wenn man z.B. zu Hause und auch in der Schule mit Lazarus arbeitet. In diesem Fall sollte man sich möglichst genau die Version von Lazarus herunterladen, die auch in der Schule installiert ist. Ist in der Schule eine 32-Bit-Version installiert, läuft diese auch problemlos zu Hause auf einem 64-Bit-Betriebssystem.
;So verwendet man die Vorlage:
<pre>
{{ Lernpfad
| Titel = [optional]
| Bild = [optional] Bild welches rechts in der Lernpfadbox angezeigt wird
| Navigation = [optional] Die Navigation, welche zum aufklappen eingebunden wird
| qrcode = ja [optional] soll ein QR-Code zur Seite angezeigt werden
| Fach  = [optional] zusätzliche Fächerkategorie
| Fach1 = [optional] zusätzliche Fächerkategories
| Fach2 = [optional] zusätzliche Fächerkategories
| <text>
}}
</pre>
{{Box
|1=Beispiel
|3=Beispiel
|2=
;Das schreibt man:
<pre>
{{ Lernpfad
| Titel = Das besondere Etwas
| Bild = [[Datei:Wauwil arkeologia lernopado 051.jpg|mini]]
| qrcode = ja
| Namens paarmal nie Tundra Doge Afrika, erhielt Diele Bar siech patrouillierendem Adorno, bindend nur falls, gen Zitze B auflegendem äst adlige Habsburg was zus Most C da Pfand sein geschimmert biegt. Nehru vierzigsten wundertätige rächend im Banditen Puma Es Eid ö Brautbett km eingefühlt, Die Duplikat Box Tadel Geo Zylinders spitztest. Heu Fernzüge, im Dandy Allee ja dir uraufgeführt, biege all Verse kid kam veranschaulichst Baum, Dem weinend, usw brüllendes Schulden la reibe, Erz Ärzte esst, Ada locker, Bei AfA, Maya nun. Beo erblindete sag, Steigen wahr Gas Basen
}}</pre>
}}
;Das sieht man:
{{Benutzer:Christian/Lernpfad
| Titel = Das besondere Etwas
| Bild = [[Datei:Wauwil arkeologia lernopado 051.jpg|mini]]
| qrcode = ja
| Namens paarmal nie Tundra Doge Afrika, erhielt Diele Bar siech patrouillierendem Adorno, bindend nur falls, gen Zitze B auflegendem äst adlige Habsburg was zus Most C da Pfand sein geschimmert biegt. Nehru vierzigsten wundertätige rächend im Banditen Puma Es Eid ö Brautbett km eingefühlt, Die Duplikat Box Tadel Geo Zylinders spitztest. Heu Fernzüge, im Dandy Allee ja dir uraufgeführt, biege all Verse kid kam veranschaulichst Baum, Dem weinend, usw brüllendes Schulden la reibe, Erz Ärzte esst, Ada locker, Bei AfA, Maya nun. Beo erblindete sag, Steigen wahr Gas Basen


Das Ausführen des heruntergeladenen Programms installiert Lazarus auf dem entsprechenden Rechner.
}}


===  Linux ===
{{Vorlagenverwendung}}
[[Kategorie:Vorlage:Aufgabenbausteine|Lernpfad]]


Für Linux stehen mehrere Möglichkeiten zur Verfügung. Entweder verwendet man die Version von Lazarus, die im so genannten Repository der jeweiligen Linux-Distribution verfügbar ist. Bei allen Ubuntu-Linux-Systemen wie KUbuntu, XUbuntu etc. findet sich eine Lazarus-Version im Repository, allerdings nicht immer die aktuelleste.


Möchte man eine andere (neuere oder etwa zum Schul-System passendere), muss man sie sich doch von der oben genannten Website herunterladen und manuell installieren.
{{Benutzer:Christian/Lernpfad/StructuredData-ListItem}}


===  MacOS ===
{{TODO|
; Problem: Sortierung der Navigation
: dpl output mit <code>include=</code> versehen und als widget rendern lassen, dann kan die navigationsliste per JS beim seitenaufbau sortiert werden anhand des ordering parameters
}}


– folgt –


==  Die Lazarus-Entwicklungsumgebung (IDE) ==
<onlyinclude><includeonly>{{Box
 
   |1= Lernpfad{{#if: {{{Titel|}}}|<nowiki>:</nowiki> {{{Titel}}}}}
==  Ein erstes Programm ==
  |2= {{#if: {{{Bild|}}}|{{#tag: div|{{{Bild}}}|class=uk-align-right}}
 
      }}{{{Inhalt|{{{1|}}}
Häufig ist beim ersten Start von Lazarus schon ein leeres Projekt vorhanden. Falls nicht, kann man sich über die folgenden Schritte ein neues Projekt öffnen:
      }}}{{#ifeq: {{{qrcode|ja}}} | ja | <div class="uk-align-right">{{QR-Code}}</div>}}
* Projekt | Neues Projekt …
  |3=Lernpfad}}
* Anwendung
{{#if: {{{Navigation|}}}
* OK
  | {{{Navigation|}}}
 
  | {{Benutzer:Christian/Lernpfad/Navigation|Seite={{PAGENAME}}}}
 
}}{{Autorenbox|1={{{Autor|}}}|mit_unterseiten=ja}}
 
[[Kategorie:Lernpfad]]
Selbst wenn man noch kein einziges Zeichen getippt hat, erzeugt die Lazarus-IDE beim Erstellen eines neuen Projekts einen Programmtext, den man dann „nur noch“ ergänzen muss. Das spart jede Menge Arbeit und vermeidet Fehler.
{{#if:{{{Fach|}}}|[[Kategorie:{{{Fach}}}]]
 
}}{{#if:{{{Fach1|}}}|[[Kategorie:{{{Fach1}}}]]
 
}}{{#if:{{{Fach2|}}}|[[Kategorie:{{{Fach2}}}]]
<source lang=pascal>
}}{{#incat: Edutags|<metakeywords>Lernpfad</metakeywords>|
 
}}</includeonly></onlyinclude>
{$mode objfpc}{$H+}
 
interface
 
uses
   Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;
 
type
  TForm1 = class(TForm)
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
end.
</source>
 
Schon ein „leeres“ Programm kann man starten. Hierfür betätigt man im Menü die Taste mit dem Pfeil nach rechts. Irgendwann wird dies allerdings häufig als umständlich empfunden und man verwendet die Taste F9 auf der Tastatur.
 
==  Projektverwaltung in Lazarus ==
 
Die Projektverwaltung unter Lazarus ist etwas schwierig, weil ein Projekt nicht aus einer einzigen Datei sondern in der Regel aus vielen Dateien besteht.
 
Hat man ein neues Projekt gerade erzeugt, so trägt das Gesamtprojekt den phantasievollen Namen Project1 und das zugehörige Fenster mit dem dazugehörigen Programmtext den nicht weniger phantasievollen Namen Unit1.Um Frustrationen durch abgestürzte Projekte (weitgehend) zu vermeiden, geht man am besten folgendermaßen vor:* Direkt nach dem Erzeugen eines neuen Projekts wählt man Projekt | Projekt speichern unter …
* Man erzeugt im folgenden Dialog (mit Rechtsklick und Neu) einen neuen Ordner, in dem das gesamte Projekt gespeichert werden soll und wechselt in diesen Ordner.
* Man wählt einen sinnvollen Namen für ein Projekt aus.
* Danach erscheint ein weiterer Dialog. Das ist kein Fehler, sondern Absicht: Das Fenster und sein Programmtext müssen nämlich unter einem ''anderen'' Namen ebenfalls gespeichert werden. Sehr zu empfehlen aber ist, dass diese Dateien im gleichen Ordner wie die Projektdatei stehen. Ebenfalls zu empfehlen ist, dass man am Namen erkennt, zu welchen Projekt zu gehören. Wenn das Projekt z.B. „beispiel“ heißt, könnte das Fenster „beispiel_fm“ heißen (fm für „form“, also Fenster).
* Wichtig: In Dateinamen gehören weder Umlaute (ÄÖÜß …) und auch keine Leer- oder Sonderzeichen (wie „.“; lediglich der Unterstrich (underscore, _) ist erlaubt und auch empfehlenswert für Trennungen von Wörtern. Weiterhin empfiehlt es sich, hier nur Kleinbuchstaben zu verwenden.
* Beim Transportieren nach Hause reicht es in der Regel nicht, einzelne Dateien auf einen USB-Stick zu kopieren. Stattdessen wird unbedingt empfohlen, den ganzen Ordner eines Projekts auf den USB-Stick zu kopieren (oder den Ordner als .ZIP-Datei zusammenzupacken).
 
Beim Speichern von Projekt und Fenster entstehen eine Reihe von Dateien. Beim obigen Beispiel wären dies
 
{| class ="wikitable toptextcells"
! Dateityp
! Inhalt
|-
| beispiel.lpi
|| Lazarus-Projekt-Information. Hier ist die gesamte Projektverwaltung gespeichert.
|-
| beispiel.ico
| Das Symbol (Icon), das beim Laufen des Programms angezeigt wird.
|-
| beispiel.lpr
| Das Hauptprogramm, das aber von Lazarus automatisch erzeugt wird und bei einfachen Programmen für den Programmierer uninteressant ist, für Lazarus selbst aber sehr wichtig.
|-
| beispiel.lps
| Projekt-Sitzungs-Datei (nur für die Verwaltung interessant)
|-
|  beispiel.res
| Hier werden zusätzliche Elemente wie Graphiken etc. abgespeichert.
|-
| beispiel_fm.lfm
| Hier werden die Fenster abgespeichert und welche Bedienelemente wo auf dem Fenster zu finden sind.
|-
| beispiel_fm.pas
| In Pascal geschriebene Programmdatei. Das ist die Datei, in der der Programmierer in der Regel kreativ wird.
|-
|}
 
 
 
Die Trennung zwischen Projekt und Fenster klingt zunächst umständlich. Der Sinn dieser Trennung wird aber klar, wenn man sich überlegt, dass es z.B. bei einem Spiel ein Hauptfenster mit dem eigentlichen Spielgeschehen geben kann, aber z.B. auch noch ein Fenster für die Benutzerverwaltung oder für eine Highscore-Liste, wenn man bei dem Spiel Punkte sammeln kann.

Version vom 22. September 2019, 15:30 Uhr

LernpfadNeu

Die Vorlage LernpfadNeu wird auf der Einstiegsseite eines Lernpfads verwendet. Sie erzeugt die Übersichtsbox eines Lernpfades und sollte am Beginn der Seite eingebunden sein.

Lernpfade bestehen aus mehreren Seiten und sollten folgendermaßen angelegt werden:

+ Lernpfadstartseite  (Titel: Das_Besondere_Etwas)
|  Einführung ins Thema
|  muss Vorlage {{Lernpfad}} verwenden
|
+--> Lerneinheitsseite 1 (Titel: Das_Besondere_Etwas/1_Was_ist_Etwas? )
|      muss Unterseite von Lernpfadseite sein
|      muss Vorlage {{Lerneinheit}} verwenden
|
+--> Lerneinheitsseite 2 (Titel: Das_Besondere_Etwas/2_Besonderheit )
|
+--> Lerneinheitsseite 3 (Titel: Das_Besondere_Etwas/3_Wo_wird_es_verwendet? )

Alle Lernschritte sollten Unterseiten des Lernpfades sein. Die Reihenfolge der Lerneinheiten sollte durch Nummern im Titel der Unterseite gesteuert werden. Jede dieser Unterseiten muss die Vorlage {{Lerneinheit}} verwenden. Diese Vorlage muss ans Ende der Lerneinheitsseite gelegt werden. Sie erzeugt eine automatische Navigation zu vorherigen und nächsten Lernschritten, erstellt eine Box mit der Navigation zu allen Lerneinheiten.


Die Vorlage erzeugt automatisch eine Navigation für den Lernpfad. Dazu wird die Vorlage {{Lernpfad/Navigation}} verwendet. Diese Vorlage sucht in allen Unterseiten nach Verwendungen der Vorlage {{Lernschritt}}.



So verwendet man die Vorlage
{{ Lernpfad
| Titel = [optional]
| Bild = [optional] Bild welches rechts in der Lernpfadbox angezeigt wird
| Navigation = [optional] Die Navigation, welche zum aufklappen eingebunden wird
| qrcode = ja [optional] soll ein QR-Code zur Seite angezeigt werden
| Fach  = [optional] zusätzliche Fächerkategorie
| Fach1 = [optional] zusätzliche Fächerkategories
| Fach2 = [optional] zusätzliche Fächerkategories
| <text>
}}
Beispiel
Das schreibt man
{{ Lernpfad
| Titel = Das besondere Etwas
| Bild = [[Datei:Wauwil arkeologia lernopado 051.jpg|mini]]
| qrcode = ja
| Namens paarmal nie Tundra Doge Afrika, erhielt Diele Bar siech patrouillierendem Adorno, bindend nur falls, gen Zitze B auflegendem äst adlige Habsburg was zus Most C da Pfand sein geschimmert biegt. Nehru vierzigsten wundertätige rächend im Banditen Puma Es Eid ö Brautbett km eingefühlt, Die Duplikat Box Tadel Geo Zylinders spitztest. Heu Fernzüge, im Dandy Allee ja dir uraufgeführt, biege all Verse kid kam veranschaulichst Baum, Dem weinend, usw brüllendes Schulden la reibe, Erz Ärzte esst, Ada locker, Bei AfA, Maya nun. Beo erblindete sag, Steigen wahr Gas Basen
}}
Das sieht man

Benutzer:Christian/Lernpfad