Inhaltsverzeichnis
1. Borland Kylix - Allgemein
Homepage: http://www.borland.de/kylix/
Kylix wird von Borland inzwischen nicht mehr verkauft und die Weiterentwicklung wurde eingefroren. Die Rechte an Kylix sind bei der Ausgliederung der Tools-Sparte zusammen mit den anderen Entwicklungstools an die neu gegruendete Tochterfirma CodeGear http://www.codegear.com uebertragen worden. Die ehemals kostenlos downloadbare Open Edition ist nicht mehr verfuegbar.
- RAD - Programmierung unter Linux
- sieht genauso aus und wird genauso benutzt wie Delphi
- Kylix 3 hat jetzt auch Unterstützung für C++, also sollten sich damit C++ Builder Programme portieren lassen.
- Delphi 6 / 7 - Code kann unter Linux compiliert und als Linux-Programm ausgeführt werden
- integrierter Source Level Debugger
Delphi 7 ab professional aufwärts kommt jetzt mit der korrespondierenden Kylix3-Version (Delphi only, also keine C++ Unterstützung) -- twm
2. Tipps & Tricks zu Kylix
2.1. Kylix auf nicht offiziell unterstützten Distributionen
2.1.1. Debian
- Debian 2.2: Die Entwicklungsumgebung habe ich nicht probiert, dafür ist der Rechner unterdimensioniert, aber die erzeugten Programme liefen unter Debian 2.2. -- twm
- Debian 3.0 stable / testing: Sowohl die Programme als auch die Entwicklungsumgebung (Kylix 3) funktionieren ohne Probleme. -- twm
2.1.2. Knoppix
- Knoppix 3.2 / 3.3 / 3.4: Unter Knoppix funktioniert es tadellos (Kylix 3 professional aus der Delphi 7 Lieferung) -- twm
2.1.3. Mandrake
Mandrake 9.1: Im übrigen läuft Kylix 3 Pro bei mir auf Mandrake 9.1 ohne Probleme -- RüdigerBiernat 2003-01-14 10:48:36
2.1.4. Red Hat
- Red Hat 8: Habe versucht Kylix3 unter Red Hat 8 zum Laufen zu kriegen. Installation bricht ab. Supportforum sagt, daß RH8 im Moment nicht unterstützt wird und sie auch im Moment keinen Workaround haben.
Hier haben es Leute zum Laufen gebracht : http://www.linuxquestions.org/questions/history/34634 -- Sven Laufersweiler
Und hier gibt es jede Patches für Kylix 3, wobei die meisten Probleme beseitigt werden : http://www.kylixforum.de (Inzwischen nicht mehr: Das ist jetzt nur noch eine weitere Google-Spam Seite, die sich als Searchengine tarnt.)
2.2. Kylix 2 über Open Kylix 2 installieren
Wer OpenKylix 2 installiert hat und danach Kylix 2 Professional drüber installieren will, zerstört sich sowohl seine OpenKylix-Installation als auch die Neuinstallation. Einzige Lösung: OpenKylix deinstallieren, danach Kylix 2 Professional installieren.
2.3. Probleme mit SUSE 8.x und Kylix 3 / MySQL beheben
Unter SUSE 8.x KYLIX-Anwendungen lauffähig machen
In der Konsole:
VIM /etc/ld.so.conf
Öffnet den Editor VIM. Bitte die Einfügen-Taste drücken und an der entsprechenden Stelle /usr/local/kylix3/bin einen Eintrag setzen. Mit ESC den Einfügen-Modus verlassen und shift und q, drücken. Es erscheint ein Doppelpunkt links unten. Dahinter „qw!“ eingeben
Den Befehl ldconfig ausführen.
Die Programme laufen jetzt ohne Kylix.
Datenbankverbindung konfigurieren
Am Anfang einer MySQL-Verbindung wird die Komponente TSQLConnection von dbExpress dem Formular hinzugefügt. Durch einen Doppelklick mit der linken Maustaste lässt sich diese Komponente komplett konfigurieren.
DriverName = MySQL HostName = 192.168.0.34 Database = test User_Name = root Passwort = hallo BlobSize = -1 …
Durch einen Klick auf den Haken im Kopf des Fensters kann man die MySQL-Verbindung testen.
Problem: libmysql.so kann nicht geöffnet werden Wir gehen in das Verzeichnis /usr/local/kylix3/bin und erstellen einen Softlink mit:
ln –s libdl.so.2 /lib/libdl.so.3
oder
ln –s libdl.so.3 /lib/libdl.so.2
Nun sollte es gehen, es sei denn sie stoßen auf das folgende Problem….
Problem: libmysqlclient.so kann nicht geöffnet werden
Mit „find / –name libmysqlclient.so“ erhalten wir kein Ergebnis. Wenn wir allerdings mit „find / –name libmysqlclient.so.*“ suchen, bekommen wir in /usr/lib/ eine Datei „libmysqlclient.so.10“ angezeigt. Diese kopieren wir mit „cp /usr/lib/libmysqlclient.so.10 /usr/local/kylix3/bin/libmysqlclient.so“ ohne die Endung „.10“ in das Bibliotheksverzeichnis von Kylix. Verbindung erfolgreich aufgebaut Wenn wir diese Probleme beseitigt haben, ist die Kylix-Umgebung mit SUSE 8.x für eine SQL-Connection bereit.
3. Erfahrungen
3.1. Dokumentation von Kylix 2 Prof.
Die mitglieferte Dokumentation ist grauenhaft! Ich habe mir vor wenigen Tagen für über 300 Euro "Borland Kylix 2 Prof." gekauft, hauptsächlich wegen den Handbüchern, denn ansonsten hätte mir auch die Open Kylix 2 - Version genügt. Jedoch bin ich von den Büchern schwer enttäuscht: Was ich bisher gelesen habe ist voller Fehler. Besonders grobe Schnitzer sind wohl darin enthalten, da man nicht komplett von Englisch nach Deutsch übersetzt hat. Aber auch richtig große Patzer sind enthalten, wie Menüpunkte ansprechen, die nicht existieren, oder vom rechten Mausklick sprechen, obwohl linker notwendig ist, etc. Besonders die "Erste Schritte"-Doku, die sich an die Anfänger richten soll, beinhaltet sehr große Fehler, die wohl jeden Anfänger verzweifeln lassen!
3.2. Portieren von Komponenten
Für Delphi geschriebene VCL-basierte Komponenten sind teilweise mit erstaunlich wenig Aufwand nach CLX zu portieren. Die beiden Bibliotheken sind sehr verwandt. In der JEDI VCL (http://jvcl.sf.net) findet man diverse Beispiele und Hilfen dazu.
4. Fragen und Antworten
4.1. Stand-Alone Executables
Ich habe Kylix2 erstanden. Nun habe ich ein einfaches Programm geschrieben (Hallo Welt) und kompiliert. Alle Dateien befinden sich in einem Ordner. Doppel-klicke ich nun die einzige Datei, die als ausführbar gekennzeichnet ist, um diese zu starten, passiert nichts! Wie kriege ich meine eigenen Kylix2-Programme OHNE Kylix2 zum Laufen?
Es gibt diverse Webseiten, die das beschreiben, z.B. http://www.efg2.com/Lab/Library/Kylix/deployment.htm
Einfacher geht es mit Installmade (http://www.superobject.com/installmade/), einem kommerziellen Installer für Kylix-Programme.
Eine weitere Möglichkeit bietet makeself, Beschreibung siehe dort.
4.2. Cross Plattform Entwicklung
Theoretisch kann man mit Delphi 6/7 und Kylix Programme schreiben, die sowohl für Windows als auch für Linux (i386) compiliert werden. Dabei sind aber diverse Fallstricke zu beachten:
- Nur Delphi-Programme, die mit der Borland CLX (Class Library for Crossplatform development) entwickelt wurden können direkt mit Kylix compiliert werden.
Problem: Die CLX hat massive Speicherlecks, die erst nach und nach gefixed werden. Auf http://www.kylix-patch.de.vu/ gibt es inoffizielle Patches, die viele dieser Probleme beheben. Sehr empfehlenswert. -- twm
Normalerweise wird unter Windows die VCL (Visual Class Library) verwendet. Solche Programme lassen sich zwar in der Regel mit vertretbarem Aufwand nach CLX portieren, häufig reicht es aus, die in der Uses-Clause verwendeten Units auszutauschen (z.B. Forms -> QForms), die Formular-Defiinitionen von der Delphi Namenskonvention (*.DFM) nach Kylix zu kopieren (*.XFM) und die {$R *.DFM} Anweisung in {$R *.XFM} zu ändern. Das kann man auch in conditional defines kapseln, so dass der Code wahlweise unter Delphi für VCL oder unter Kylix für CLX compiliert werden kann (natürlich auch unter Delphi für CLX, wenn man das will).
- Übernommene Formulare von Delphi, verwenden in Kylix eine viel zu kleine Schriftart, so dass hier einiges an Nachbesserung zu tun ist.
- Wenn man ActiveX-Controls verwendet, hat man ein Problem: ActiveX und COM sind Windows spezifisch und nicht portierbar.
- Meine persönliche (inzwischen mehrjährige und leidvolle) Erfahrung mit ActiveX und COM ist, dass man damit in der Regel mehr Probleme hat als sie Vorteile bieten. Man sollte sie von Anfang an vermeiden und stattdessen auf Delphi-Komponenten setzen. Bei denen besteht dann auch zumindest eine Chance, sie auf Linux/CLX zu portieren. Leider hat man oft nicht die Wahl, da die Entscheidung bereits anderweitig gefallen ist, insbesondere bei Visual Basic orientierten Firmen. -- twm
Bei der Behandlung von Dateinamen sollte man sich niemals auf das Vorhandensein von Laufwerksbuchstaben oder Backslashes verlassen. Die Units SysUtils und FileUtils bieten Funktionen für die Betriebssystem-unabhängige Behandlung von Dateinamen.
- Unter Windows (in pre-Dot-Net Zeiten) werden/wurden Benutzereinstellungen in der Regel in der Registry gespeichert. Unter Linux gibt es keine Registry, stattdessen werden dort Konfigurationsdateien verwendet, meist unter /etc für systemweite Einstellungen und eine mit "." beginnende Datei unter $HOME/, z.b. $HOME/.myconfig. Es empfiehlt sich, den Zugriff zu abstrahieren (z.B. mittels einer Klasse, hat mal wer 'nen Link? Sowas gibt es doch unter Garantie schon! Meine eigene ist leider nicht frei verfügbar. -- twm), so dass man nicht ständig mit conditional defines arbeiten muss. Seit Dot-Net ist die Registry völlig "out" und XML-basierte Config-Dateien sind "in". Es würde sich hier eigentlich anbieten, sie auch für normale Programme zu benutzen, wenn Windows ein Home-Verzeichnis vernünftig unterstützen würde...
5. mit Kylix entwickelte Programme
Config-Tool für opt_dyndns auf http://www.dummzeuch.de. Dieses war ursprünglich mit Delphi 5 und der VCL geschrieben, wurde dann mit Kylix 1 auf CLX portiert, was sich in diesem Fall darauf beschränkte, die Formulardateien umzubenennen und ein paar conditional defines einzubauen, und für einige Zeit parallel für VCL und CLX weiterzuentwickeln. Die aktuelle Version compiliert mit Kylix 3 und Delphi 7 und ist komplett CLX-basiert.
die Jedi Code Library http://jcl.sf.net kann mit einigen Einschränkungen auch mit Kylix 3 benutzt werden. Getestet habe ich das aktuelle (2005-02-06) Release 1.94. Die JCL steht unter MPL.
6. Alternative
Kylix wird nicht mehr weiterentwickelt und auch nicht mehr vertrieben. Jedoch gibt es mit dem auf FreePascal basierenden Projekt "Lazarus" eine Kylix und Delphi sehr ähnlich IDE. Wer mal Delphi oder Kylix programmiert hat der findet sich dort sofort zu Hause. Die Lazarus Entwickler haben sogar ein Tool geschrieben mit dem man Delphi/Kylix Projekte in Lazarus übernehmen kann. Sowohl Lazarus als auch der Freepascal Compiler sind neben Linux auch noch für etliche andere Plattformen verfügbar!
Offizielle Lazarus Homepage: http://www.lazarus.freepascal.org/
Warum wurde die Seite auf den Stand von 01.12. zurückgesetzt? Darf ich nichts zu dzchart schreiben?