1. Borland Kylix - Allgemein

http://www.edv-buchversand.de/Covers/BOR351.jpg

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.


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

2.1.2. Knoppix

2.1.3. Mandrake

2.1.4. Red Hat

2.2. Kylix 2 über Open Kylix 2 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:

  1. 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

  2. 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.
  3. 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
  4. 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.

  5. 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

6. Alternative

Offizielle Lazarus Homepage: http://www.lazarus.freepascal.org/

OffeneFrage

Warum wurde die Seite auf den Stand von 01.12. zurückgesetzt? Darf ich nichts zu dzchart schreiben?


KategorieProgrammiersprachen

Kylix (zuletzt geändert am 2008-04-22 12:33:57 durch SebastianWild)