Building components 01/de

From Lazarus wiki
Revision as of 23:30, 4 November 2009 by Pluto (talk | contribs) (New page: = 01) Einleitung = In diesem Tutorial geht es darum eine Komplett eigene Komponente zu erstellen und sie in Lazarus zu Intrigieren. Ihr werdet sehen, dass es gar nicht so schwer ist. Zu n...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

01) Einleitung

In diesem Tutorial geht es darum eine Komplett eigene Komponente zu erstellen und sie in Lazarus zu Intrigieren. Ihr werdet sehen, dass es gar nicht so schwer ist. Zu nächst die Frage was ist eine Komponente eigentlich ? Eine Komponente ist eine einfache Klasse die meistens von einer vorherigen Klasse abgeleitet wird. Diese Klasse heißt auch „Abstracte Bases Klasse“, weil sie stellt ein Standard Verhalten das für alle Komponenten gilt Verfügung. Die meisten GUI'S(Engl. Graphical User Interface), haben sogar mehrere Bases Klasse, je nach Aufgabe. Es gibt in einer GUI verschiedene Bereiche z.b. eine Sichtbare Komponente wie Beispielsweise das TMemo, oder aber auch zunächst Unsichtbare Komponenten wie ein Dialog, oder die Timer Komponenten. Lazarus unterscheidet im Prinzip grob gesehen zwei Bereiche: Eine Komponente die vom Toolkit wie z.b. GTK2 zuvergfügung gestellt wird, diese Komponenten sind dann von TWinControl abgeleitet oder aber auch Eigene Komponenten wie z.b. das Panel oder die OI-Komponente. Diese sind dann direkt von TCustomControl abgeleitet. TCustomControl spielt in diesem Kapitel ein große Rolle. Denn wir wollen eine komplett eigene Komponente entwickeln.


02) Ziel dieses Kapitels

Die Komponente wird nur eine einfache Aufgabe erfüllen, aber sie zeigt wie in Lazarus üblicherweise vorgegangen wird. Das Ziel ist es ein Eigenes Panel zu entwickeln, was im Gegensatz zum Standard Panel von Lazarus nicht nur eine Farbe hat sondern ein Farbverlauf anzeigt auf den ein Text da gestellt werden kann. Wir werden Standard Methoden und Eigenschaften von TCustomControl verwenden, außerdem werde ich Zeigen, wie diese Komponente in Lazarus Intrigiert werden kann und wie ein eigenes Icon zugewiesen werden kann. Auf einer Extra Seite gebe ich einige Tipps wie die Entwicklung beschleunigt werden kann. Es gibt eine ganze reihe Praktischer aber oft versteckter Funktionen im Code Editor(SynEdit) von Lazarus. Meine Lazarus Version lautet Version: 0.9.29 Beta, SVN-Revison: 22080M I386-linux-gtk2(beta)

03) Voraussetzungen

Da gibt es folgende: 1.Eine Funktionsfähige Lazarus-Umgebung, die jeder zeit neu erstellt werden kann. Um das zu Test: Im Menü unter Werkzeuge\Lazarus Kompilieren. Wenn das Fehler frei durchgeführt wird, kann davon ausgegangen werden, dass es keine Probleme gibt. 2.Elementare Kenntnisse in die Syntax von Object Pascal, außerdem sollte die Umgebung von Lazarus vertraut sein. Z.b. wie Kompiliere ich Programme und so weiter. 3.Erfahrung um Umgang mit der OOP sind unbedingt erforderlich

Alle drei Punkte sind nicht Teile dieses Tutorials !!! Wenn trotzdem damit angefangen wird, kann es sehr schnell zu Problemen und zu Frust führen.

04) Sonstige Hinweise

Auf eigene Verantwortung kann das Tutorial durchgearbeitet werden. Für Schäden in welcher Form auch immer bin ich nicht verantwortlich / haftbar !

05) Einige Hinweise und Tricks im Umgang mit Klassen

Hier habe ich einige Hinweise und Tricks und Tipps zusammen getragen die den Umgang mit Klassen vereinfachen soll und die Entwicklung erheblich beschleunigen sollen. Das geht meistens so das lästige Tipp Arbeit abgenommen wird.


01) Klassen Schneller Erzeugen

Um eine Klasse schneller zu erzeugen und um nicht immer die gleichen Sachen schreiben zu müssen gibt es die Code-Schablonen. Genutzt werden können sie mit STRG+J. Davor ein Wort eingeben, für Klassen z.b. classC und dann STRG+J und es wird ein Standard Header von einer Klasse erzeugt.


02) Typische Fehler vermeiden

Wenn eine Eigenschaft nicht im OI auftaucht liegt es meistens daran das sie nicht Installisiert wurde. Das tritt meistens im Zusammenhang mit Klassen auf. Beispielweise bei einer TstringList. Es empfiehlt sich auch in bei jeder Eigenschaft das Schlüsselwort Default zu nutzen. z.b. so property Test:String read fTest write fTest default „Hallo“;

Das ist allerdings nur für die RTTI relevant, trozdem sollten alle Variablen im Create mit Relevanten Werten belegt werden.


03) Methoden schneller erzeugen

Um Methoden schneller erzeugen gibt es die Funktion Quelltext vervollständigen. Über eine Tastenkombination kann sie aufgerufen werden, bei mir ist das STRG+UMSCHALT+C


04) Die Übersicht in Großen Units mit vielen Klassen und Datentypen behalten

Wer eine Unit hat mit sehr vielen Klassen und Datentypen verliert schnell die Übersicht, um das zu vermeiden gibt es in Lazarus die Funktion: Code-Explorer sie Analysiert den Code und erstellt ein Baum, um das Navigieren zu erleichtern. 05) Lösungen zu Problemen finden Da Lazarus komplett OpenSoruce ist, gibt es für sehr viele Probleme bereits Lösungen, um in Erfahrung zu bringen, wie z.b. ein OI-Editor geschrieben wird kann so vorgegangen werden: Wenn in der Komponenten-Leiste der Eintrag RTTI auftaucht kann dort der OI aufs From platziert werden. Jetzt einfach im Source-Code Editor einfach die Rechte Maustaste drücken und den ersten Menü-Eintrag auswählen: Zur Deklaration springen. Jetzt könnt ihr euch z.b. die uses Klausel anschauen. Einige Namen dürfte sofort auffallen. Eine andere Möglichkeit ist die Funktion In Dateien Suchen.