War Programmierung unter Linux noch vor Kurzem aufwendig und kompliziert, hat sich das spätestens mit dem Auftauchen von Kylix geändert. Wie es Visual Basic unter Windows vorgemacht hat, vereinfacht und standardisiert Kylix die Linux-Programmierung, so dass selbst Programmiereinsteiger und/oder Linux-Neulinge sehr schnell Erfolge sehen.
Auf der anderen Seite profitieren aber auch Profis von den Möglichkeiten der kommerziellen Kylix-Versionen. Seit Version 2 ist Kylix auch so stabil und funktionell geworden, wie man es von einem professionellen Produkt erwarten kann. In diesem Workshop soll Ihnen die Arbeit mit Kylix an Hand der Möglichkeiten der kostenlos verfügbaren Open Edition näher gebracht werden. Beginnen wollen wir im ersten Teil mit einer Einführung und Kurzübersicht zu Kylix, den Voraussetzungen und Bezugsmöglichkeiten sowie der Installation. Um gleich Praxis einfließen zu lassen, wird auch ein erstes, kleines Programm erstellt.
Was ist Kylix?
Kylix wird auch Delphi für Linux genannt, und das beschreibt bereits, worauf Kylix zurückgeht – auf Delphi, das eine Weiterentwicklung von Turbo Pascal für die Bedürfnisse der Programmierung unter Windows ist. Alle drei Entwicklungswerkzeuge sind von Borland (http://www.borland.com) hergestellt worden. Seit Kylix 2 bzw. Delphi 6 sind diese beiden Programme sogar so kompatibel, dass sich mit geringem Aufwand ein Quelltext aus Delphi (also der Windows-Welt) in Kylix (und damit Linux) importieren und dort kompilieren lässt. Ebenso geht das auch umgekehrt. Wie es Programmierumgebungen à la Visual Basic oder Delphi unter Windows getan haben, führt Kylix in der Linux-Welt die grafische Programmierung in Form einer leistungsfähigen, leicht zu erlernenden, visuellen Entwicklungsumgebung ein. Kylix basiert im Kern – wie Delphi – auf Object Pascal als Sprachgrundlage. Neuerdings gibt es auch eine C/C++-Engine für Kylix als Alternative (was wir aber in diesem Workshop nicht weiter berücksichtigen). Das entscheidende Highlight von Kylix ist die CLX-Komponentenbibliothek: Diese stellt u. a. all die visuell zu verwendenden Elemente wie Buttons und Menüs bereit, über die sich ein Programmierer mit der Maus wesentliche Teile seines Programmes zusammenbauen kann.
Der Start von Kylix
Wenn Sie die Installation von Kylix erfolgreich durchgeführt haben oder Kylix bereits installiert war, können Sie es in einer Shell mit der Anweisung startkylix bzw. ./startkylix aus dem bin-Verzeichnis von Kylix starten. Eventuell müssen Sie beim Aufruf ein sh voranstellen, da es sich bei startkylix um ein Skript handelt. Der Aufruf von anderer Stelle funktioniert nur, wenn das Kylix-Verzeichnis korrekt in den Suchpfad für Programme (die Variable $PATH) eingetragen wurde. Fehlt das Kylix-Verzeichnis in der PATH-Variable, können Sie diese mit
export PATH=$PATH:KylixVerzeichnis
um das richtige Verzeichnis ergänzen. Am einfachsten erweitern Sie den Pfad auf Dauer, indem Sie eine der Startdateien der Shell anpassen. In dem Fall steht die Anpassung permanent zur Verfügung. Tragen Sie den Befehl z. B. in die Datei ~/.bashrc ein, die auf fast allen Distributionen beim Start einer Bash-Shell ausgeführt wird.
Noch einfacher ist der Aufruf aus einem Menü-Eintrag bzw. Symbol der grafischen Oberfläche heraus, das die Installation von Kylix anlegt, wenn Sie die entsprechenden Optionen selektiert haben.
Der erste Start der Open Edition oder einer Trial Version erzwingt zuerst die Eingabe von Seriennummer und Authorization Key, den Sie von Borland zugesandt bekommen haben.
Nach deren Eingabe werden Sie zur (optionalen) Registrierung von Kylix aufgefordert. Wenn das erfolgt ist, begrüßt Sie die Kylix-IDE.

Abbildung 2: Die Kylix-IDE mit Formulardesigner in der Mitte, dem Objektinspektor links und der Komponentenpalette oben
Erste Orientierung in der IDE mit einem praktischen Beispiel
Wir wollen uns jetzt erst einmal in Kylix orientieren. Wie ginge das besser als mit einem praktischen Beispiel? Kylix besteht aus einer Reihe eigenständiger Fenster, die frei auf dem Desktop positioniert werden können (etwa so, wie es auch bei GIMP der Fall ist – siehe Abbildung 2). In der Grundeinstellung startet Kylix mit der Anzeige eines leeren Formulars (das bildet später den Anzeigebereich des Programms – während der Programmerstellung spricht man vom Formulardesigner) bzw. dem alternativ angezeigten Quelltext-Editor (siehe Abbildung 3), dem Objektinspektor zur visuellen Spezifizierung der Eigenschaften und Reaktionen von Komponenten des Programms sowie der Komponentenpalette, aus der die Komponenten auf das Formular gezogen werden und wo sich die Menü- bzw. Befehlsstruktur von Kylix wiederfindet.
Dazu sind bereits diverse Dinge automatisch generiert worden, um mit wenigen Aktionen ein funktionstüchtiges Programm zur Verfügung zu haben. In den folgenden Teilen des Workshops werden wir uns der IDE und ihrer Bestandteile sowie der zugrundeliegenden Projekt- und Syntaxstrukturen genauer annehmen. Wir wollen jetzt einfach ein erstes Programm mit Kylix erstellen. Die einzelnen Schritte sollten exakt nachvollzogen werden – insbesondere in Bezug auf die Syntax und die automatisch durch Kylix generierten Elemente. Beachten Sie aber, dass die IDE von Kylix sehr weitreichend konfiguriert werden kann. Wundern Sie sich nicht, wenn nicht alle Details so aussehen, wie hier gezeigt bzw. beschrieben.
Here we go
Wenn Sie den Quelltext-Editor statt eines Formulars sehen, klicken Sie ihn an und drücken [F12]. Der Formulardesigner wird angezeigt. Erneutes Drücken von [F12] schaltet wieder zum Quelltext-Editor zurück.
Wenn die IDE das Formular anzeigt, befinden Sie sich im grafischen Programmiermodus. In der Komponentenpalette finden Sie verschiedene Registerkarten. Deren Umfang hängt davon ab, welche Version von Kylix sie verwenden. Wir beschränken uns auf die Möglichkeiten der Open Edition. In den anderen Versionen finden Sie nur zusätzliche Registerkarten. Selektieren Sie das Register Standard. Dort drücken Sie das Symbol eines Buttons nieder (beschriftet mit OK). Die Maustaste lassen Sie dann los, bewegen den Mauscursor auf das Formular, drücken dort erneut die linke Maustaste und ziehen die Maus im gedrückten Zustand über das Formular. Wenn Sie die Maustaste loslassen, haben Sie eine Schaltfläche auf dem Formular erzeugt. Die Schaltfläche wird in selektiert angezeigt, was Sie daran erkennen können, dass die Schaltfläche mit kleinen Vierecken markiert ist. Über diese Anfasser können Sie Breite und Höhe der Schaltfläche verändern. Passen Sie die Größe sinnvoll an. Wenn Sie die Schaltfläche innerhalb der Komponentenfläche anklicken, können Sie sie per Drag & Drop verschieben. Fügen Sie dem Formular noch zwei weitere Schaltflächen hinzu und ordnen Sie alle drei untereinander an. Sorgen Sie dafür, dass Breite und Höhe der Schaltflächen gleich sind. Jetzt wählen Sie noch in der Komponentenpalette das mit dem Buchstaben “A” beschriftete Symbol aus. Damit erzeugen Sie neben den Schaltflächen ein so genanntes Label: Das ist eine Komponente, die üblicherweise zur Beschriftung anderer Komponenten verwendet wird.
Abbildung 4: Die Registerkarten der Komponentenpalette mit der Button- und Label-Komponente im Register Standard
Lassen Sie das Programm nun innerhalb der Kylix-IDE laufen, indem Sie einfach [F9] drücken. Sie erhalten nach kurzer Zeit ein voll funktionstüchtiges Programmfenster, das Sie in der Position verschieben oder in der Größe verändern können. Ebenso können Sie das Programmfenster mit den drei üblichen Schaltflächen am rechten Rand oben zu einem Icon verkleinern, einem Vollbild vergrößern oder schließen.
Klicken Sie die von Ihnen erzeugten Buttons an. Was passiert? Nichts? Nein, nicht ganz richtig. Zumindest wird das Niederdrücken bereits optisch dargestellt. Aber wir haben noch nicht angegeben, was eigentlich bei einem Klick auf einen der Schaltflächen geschehen soll. Das machen wir jetzt. Beenden Sie also das Programm mit dem Schließbutton.
Wir wenden uns nun dem Objektinspektor zu. Selektieren Sie den obersten Button im Formular und betrachten Sie den Objektinspektor. Wenn dieser nicht sichtbar ist, drücken Sie [F11]. Über den Inspektor können Sie die Eigenschaften der ausgewählten Objekte (also hier des Buttons) sehen und meist auch verändern. Sehr wahrscheinlich wird eine Eigenschaft mit Namen Caption vorselektiert sein, und dort wird der Wert “Button1” stehen. Wenn Sie im Eingabefeld rechts daneben den Text “Ende” eingeben (siehe Abbildung 5), sehen Sie die Wirkung unmittelbar im Formular. Die Beschriftung der ausgewählten Schaltfläche ändert sich mit jedem eingegebenen Zeichen.

Abbildung 5: Die Eigenschaft Caption im Objektinspektor ist für die Beschriftung einer Komponente verantwortlich
Jetzt sollten Sie einen Doppelklick auf die Schaltfläche ausführen. Sie wechseln dadurch automatisch vom Formulardesigner zum Quelltext-Editor. Dort ist durch die Aktion bereits Quellcode generiert worden, der so aussehen sollte:
procedure TForm1.Button1Click(Sender: TObject); begin end;
Fügen Sie zwischen begin und end; folgende Zeile ein:
Application.Terminate;
Beachten Sie, dass Ihnen Kylix hilft, wenn Sie das Wort “Application” und dann einen Punkt eingeben. Im folgenden Popup-Fenster werden alle erlaubten Syntaxstrukturen angezeigt.

Abbildung 6: Im Quelltext-Editor erhalten Sie oft Hilfe, wenn Sie einen Kylix bekannten Begriff (ein Objekt) und einen Punkt eingeben
Was wir hier ausgewählt haben, ist das Programmende. Dieses wird ausgelöst, wenn der Anwender auf diesen Button klickt. Sorgen wir nun noch dafür, dass auch die anderen Schaltflächen eine Funktionalität erhalten. Wechseln Sie zum Formulardesigner ([F12]) und wählen Sie die mittlere Schaltfläche aus. Beschriften Sie diese mit “Löschen”. Dann führen Sie wieder einen Doppelklick darauf aus. In der automatisch generierten Code-Schablone notieren Sie folgende Anweisung:
label1.Caption:=' ';
Dann kümmern wir uns noch um die unterste Schaltfläche. Wechseln Sie zum Formulardesigner und wählen Sie sie aus. Beschriften Sie diese mit “Schreiben”. Nach erneutem Doppelklick auf den Button geben Sie in der Code-Schablone Folgendes ein:
label1.Caption:='Safety First';
Zu guter Letzt passen Sie die Größe des Formulars so an, dass die drei Buttons und das Label ohne Platzverschwendung angezeigt werden. Das können Sie mit der Maus erledigen, aber wir wollen es diesmal mit dem Objektinspektor durchführen. Wählen Sie also das Formular selbst aus und experimentieren Sie mit den Eigenschaften Height und Width: Diese legen Höhe und Breite einer Komponente (und auch des Formulars selbst) fest (siehe Abbildung 7).

Abbildung 7: Über die Eigenschaft Height und Width kann eine Komponente im Objektinspektor in der Größe verändert werden
Lassen Sie das Programm nun laufen ([F9]) und testen Sie die Schaltflächen. Die oberste Schaltfläche beendet das Programm, die mittlere löscht das Label und die unterste beschriftet das Label mit dem angegegebenen Text.
Herzlichen Glückwunsch. Sie haben Ihr erstes Kylix-Programm geschrieben und zum Laufen gebracht. Das war wirklich nicht schwer, aber die Funktionalität scheint auch nicht besonders beeindruckend zu sein. Wenn Sie jedoch versuchen, so ein Programm mit einer anderen Programmierumgebung unter Linux zu realisieren, werden Sie zu schätzen wissen, was Ihnen Kylix an Vereinfachungen geliefert hat. Im nächsten Teil des Workshops wollen wir die IDE von Kylix sowie die Arbeit mit Projekten genauer behandeln. Dazu schauen wir uns die verschiedenen Arten der Kylix-Dateien an und spielen einige weitere Beispiele auf Basis der Grundkomponenten von Kylix durch.
Kasten 1: Die verschiedenen Kylix-Versionen
Kylix gibt es in verschiedenen Versionen. Das beginnt am unteren Ende der Leistungsskala mit der kostenlosen Open Edition. Sie reicht bereits aus, um grafische Programme unter Linux zu erstellen, und kann Hobby-Programmierern und Einsteigern beim Einstieg in die Programmierung helfen. Wir wollen uns in dem Workshop auf die Möglichkeiten dieser Version beschränken. Im Wesentlichen wird in dieser Version statt der vollständigen CLX-Komponentenbibliothek eine eingeschränkte Version (die Open-Source-Variante FreeCLX) verwendet. Dazu kommt, dass die Weitergabe von damit erstellten Programmen auf das GPL-Lizenzmodelle beschränkt ist. Die beiden kommerziellen (und nicht gerade billigen) Versionen von Kylix sind die Professional Edition und die Enterprise-Version. Beide umfassen die Möglichkeiten der Open Edition und bieten zusätzliche Features im Bereich Datenbanken und Web-Programmierung. In der Enterprise-Version kommen WebSnap, SOAP, XML und noch einiges mehr hinzu.
Kasten 2: Bezug von Kylix
Die Open Edition und eine 60-Tage-Trial-Version der kommerziellen Enterprise-Version werden von Borland im Internet zum Download bereitgestellt (http://www.borland.com./products/downloads/download_kylix.html). Leider ist der Download nicht direkt möglich, sondern Sie müssen sich erst als Teil der Borland-Community registrieren. Zwar kann man beide Versionen von Kylix auch von anderen Quellen beziehen, aber außer dem Download spart man sich nichts. Nach der Installation benötigen Sie eine Seriennummer und einen Autorisierungsschlüssel zum Start des Programms, und diese Angaben erhalten Sie nur als Mitglied der Community auf Anforderung über die Web-Seiten von Borland etwa per Mail. Es ist bedauerlich, dass Borland so viele potentielle Kunden von einem Kylix-Test abhält. Lassen Sie sich nicht abschrecken und besorgen Sie sich die Freischaltangaben – Kylix ist den Aufwand wert.
Kasten 3: Die Installation und der erste Start
Bevor Sie mit Kylix arbeiten können, müssen Sie das Programm installieren. Wenn Sie eine Kylix-Version verwenden, die in Ihrer Distribution enthalten ist, erfolgt die Installation mit den zugehörigen Distributions-Tools wie etwa YaST (bei SuSE).
Die Installation von Kylix läuft meist rpm-basiert ab. Wie die genauen Installationsvorgänge ablaufen, hängt vor der Art Ihrer verfügbaren Installationsdatei ab. Wenn Sie eine gepackte Datei haben, extrahieren Sie diese zuerst. Nach der Dekomprimierung liegen die eigentlichen Setup-Dateien vor. Sie bieten mittlerweile den üblichen Komfort – das beinhaltet die Auswahl bestimmter Dateien, die Angabe des Zielverzeichnisses und andere Optionen. Die eigentliche Installation beginnt mit der Anweisung sh setup.sh in der Shell, wobei Sie sich im Verzeichnis befinden müssen, das die Installationsdateien enthält. In der Regel können Sie die Vorgaben der Setup-Routine akzeptieren. Hauptsächlich interessant ist das Verzeichnis, in das Kylix installiert werden soll. Sinnvolle Angaben sind das ~/kylix2 im Home-Verzeichnis des Anwenders (wenn nur ein Anwender damit arbeiten soll), /usr/local oder /opt. /p>
Glossar
-
Quelltext
-
Der vom Programmierer eingegebene Klartext, aus dem das Programm erzeugt wird. Diese Erzeugung nennt man “Compilieren”.
-
CLX
-
Sowohl unter Kylix als auch Delphi ab Version 6 gibt es so genannte CLX-Komponenten (z. B. Buttons, Menüs, Listen, Textfelder). CLX (sprich “Klicks”) steht für Component Library for Cross Platform: Sie soll ermöglichen, dass Quelltext zwischen verschiedenen Betriebssystemen ausgetauscht und dort weitgehend unverändert kompiliert werden kann.
-
IDE
-
Eine integrierte Entwicklungsumgebung oder englisch Integrated Development Enviroment wird kurz IDE genannt. Eine IDE umfasst in der Regel zumindest einen Editor zur Eingabe des Quelltextes, einen Compiler zum Übersetzen, eine Möglichkeit zum Ausführen eines Programms, Module zur Fehlersuche (so genannte Debugger) und noch Einiges mehr. Gerade im Fall “visueller” Entwicklungsumgebungen kommen Komponentenpaletten und andere grafisch bedienbare Tools hinzu. Zentrale Eigenschaft einer IDE ist, dass sämtliche Module aus einer gemeinsamen Oberfläche bedient werden können, ohne das Programmierwerkzeug zu verlassen.
-
Formulardesigner
-
Der Formulardesigner ist die Repräsentation eines Formulars, während das Programm visuell erstellt wird. Auf dem dargestellten Formularbereich können Komponenten platziert und verändert werden. Das kann sowohl mit der Maus, mit dem Objektinspektor als auch über Menüs erfolgen.
-
Objektinspektor
-
Der Objektinspektor zeigt die Eigenschaften und Ereignisse an, die für eine ausgewählte Komponente sinnvoll sind. Die meisten Eigenschaften können dort auch geändert werden. Natürlich verfügen nicht alle Komponenten über identische Eigenschaften und Ereignisse. Deshalb unterscheiden sich die Darstellungen im Objektinspektor je nach ausgewählter Komponente.
-
Anfasser
-
Die viereckigen Markierungen einer selektierten Komponente sind Anfasser (oder Anpacker), über die Sie bei gedrückter linker Maustaste die Größe einer Komponente verändern können. Auch ein Formular selbst kann darüber während des Designs angepasst werden.







