ndlt-20240302
Norddeutsches Lazarustreffen 20240302
- Quiet · last change 9-1-2024
README
Norddeutsches Lazarustreffen 20240302
Um was geht's
In diesem Repository geht es um InterfacedObject und Generics. An kurzen Beispielprogrammen wird der Umgang mit diesen Techniken gezeigt. Es wird nicht auf alle Randaspekte eingegangen.
Download
Mit Git
Öffne eine Konsole, und gehe in das Verzeichnis wo du das Repository installieren möchtest.
git clone https://gitlab.com/ndlt/ndlt-20240302.gitAls Download
Wähle oben rechts "Code" aus, und dann "Download source code" als "zip" oder was du auch immer brauchst.
Kompilieren
Um die Programme zu kompilieren, brauchst du eine Lazarus-Ide Installation. Die Beispiel-Projekte befinden sich im Ordner 'src'. Beispiel Projekt auswählen und ausführen.
Was gibt's zu sehen
Wie geht man mit InterfacedObject um, und wo sind die gefahren.
InterfacedObject haben das schöne Verhalten, dass sie sich selber aufräumen, wenn es keine Besitzer mehr gibt. Das Verhalten ist ähnlich wie bei Strings, da kümmert man sich ja auch nicht um das Aufräumen. InterfacedObject sollte man dann einsetzen, wenn man die Lebensdauer seiner Instanzen nicht zu 100% kennt. Z.B.: Man hat eine Instanz, die man ein Thread zur weiteren Bearbeitung gibt. Ab jetzt ist es schwer einzuschätzen, wie lange der Thread die Instanz benötigt.
Beispielprogramme
- InterfacedObject01: Zeigt auf einfache Weise wie man ein InterfacedObject anlegt, und wie es sich verhält, bzw. was das Besondere ist.
- InterfacedObject02: Die häufigsten Fehler mit InterfacedObjects. Finger weg von Free!!!
- InterfacedObject03: Sicher auf die Mutter- Instanz von einem InterfacedObject zugreifen.
- InterfacedObject04: Ein Grafisches Beispielprogramm, was nochmal das Besondere von InterfacedObject zeigen soll.
- InterfacedObject05: Beispielprogramm für "doc/InterfaceObject.pdf"
- Generics01: Zeigt die Basics von der Generics Deklaration.
- Generics02: Generics am Beispiel einer einfachen dynamischen Liste.
- Generics03: Damals und Heute mit Generics. Beispiele mit der "fgl" Library.
- Generics04: Ein wenig aufpassen sollte man bei Generics und InterfaceObject wenn man die "fgl" verwendet.
- Generics05: Ein Beispiel mit einer Queue.
- Generics06: Zeigt eine MultiThread Anwendung mit eine Queue. Die Anwendung zeichnet ein Mandelbrot in N Threads, und überträgt die Ergebnisse in einer Queue. Zum Starten oder Stoppen in das Fenster klicken. Das Demo Programm benötigt das "BGRABitmapPack" Package.
Probleme mit Generics bei der Entwicklung.
Entwickelt man Generics, dann kann es vorkommen, dass die Änderungen nicht übernommen werden. Wenn so etwas vorkommt, dann einfach den 'lib' Ordner des Projekts löschen und neu kompilieren.
License
See COPYING.TXT
