PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Delphi --> Kylix



Crash-Override
24.08.2004, 03:25
Ich programmier ja einen RPG-Maker und hab mir überlegt ihn auch für Linux (in Kylix dann halt) zu proggen.

Jetzt mal ein paar fragen

1. Gibts von Kylix auch ne Testversion (sry. hab grad keine Zeit um mich durch die Borland seite zu kämpfen ;))

2. Kann man Delphi Projekte auch in Kylix öffnen?

3. Kylix läuft doch auch auf Fedora (2.A) oder?

4. Muss man bei Kylix viel umcoden?

[in so einem Linux heft war als Kylix-Beispiel der Quellcode eines einfachen Texteditors, da haben die beim Öffnen die Datei erst in nen Filestream eingelesen, dann 100 Byte weise ins Memeo übertragen und halt immer überprüft ob noch mehr als 100 Byte übrig bleiben und wenn nicht die byte einzeln eingelen [da ist mir schon schlecht geworden gibts da nicht den Standart Memo1.Lines.LoadFromFile('x.txt'); ???])

5. Geht unter Kylix auch MDI und gibt es dort z.B. die Paintbox (Delphi Komponente)?

6. Wie installiert man diese besch***** rpm Pakete? im Red Hat Magazin steht man müsse

rpm ivh paketname.rpm eingeben und das wars, aber WO?

(ok, das gehört ins PC-Forum, aber man muss ja net immer gleich wegen jeder Kleinigkeit nen Thread erstellen und die Datenbank belasten (<-- Admin einschleimer *bääh*))

Also ich hoffe das ist net zu schwer zu beantworten aber ich will euch doch nur was gutes...

http://www.picupload.net/files/20042308/1093239921.png

http://forum.rpg-ring.com/forum/showthread.php?s=&threadid=41339

Jesus_666
25.08.2004, 18:24
Original geschrieben von Crash-Override
1. Gibts von Kylix auch ne Testversion (sry. hab grad keine Zeit um mich durch die Borland seite zu kämpfen ;))
Wenn du nur Open Source-Programme schreiben willst kannst du dir die Kylix Open Edition (http://www.borland.com/kylix/open/index.html) ziehen. Download ist hier (http://www.borland.com/products/downloads/download_kylix.html).
ACHTUNG: Paß' auf, ob dein Programm Open Source sein darf! Wenn du irgendeine Engine oder sonstige Bibliothek, die nicht bei Delphi dabei war, benutzt könnte es sein, daß du dein Projekt nicht als OSS veröffentlichen kannst!


2. Kann man Delphi Projekte auch in Kylix öffnen?
Nach dem, was ich auf die Schnelle gefunden habe: Ja. Allerdings muß man sie u.U. anpassen, mehr Infos (leider nur auf englisch) dazu gibt's hier (http://community.borland.com/article/images/27534/migrating_delphi5.pdf).
Achtung, du mußt unter Linux die Standardbibliothek irgendwie mitliefern (Infos (http://www.freebyte.com/programming/delphi/kylix/#installing)).


3. Kylix läuft doch auch auf Fedora (2.A) oder?
Ich habe beiGoogle nur herausgefunden, daß offenbar einige User Probleme hatten, Kylix auf Rechnern mit 2.6-Kernel zu installieren. Könnte aber auch laufen.


4. Muss man bei Kylix viel umcoden?

[in so einem Linux heft war als Kylix-Beispiel der Quellcode eines einfachen Texteditors, da haben die beim Öffnen die Datei erst in nen Filestream eingelesen, dann 100 Byte weise ins Memeo übertragen und halt immer überprüft ob noch mehr als 100 Byte übrig bleiben und wenn nicht die byte einzeln eingelen [da ist mir schon schlecht geworden gibts da nicht den Standart Memo1.Lines.LoadFromFile('x.txt'); ???])
Zumindest bei Kylix 3 scheint das auch zu gehen.


5. Geht unter Kylix auch MDI und gibt es dort z.B. die Paintbox (Delphi Komponente)?
Offenbar ja und offenbar ja.


6. Wie installiert man diese besch***** rpm Pakete? im Red Hat Magazin steht man müsse

rpm ivh paketname.rpm eingeben und das wars, aber WO?
Das tust du in der Shell. Unter Linux kannst du da viel Zeit verbringen... Ich gebe dir mal eine kleine Einführung. (Achtung, ich habe keine Ahnung, wie du unter GNOME eine Shell öffnest.)
1.) Du öffnest ein Shellfenster. Unter KDE startest du dazu das Programm Konsole, das findest du im K-Menü unter Systemstart -> Terminal. In einem startmenülosen Fenstermanager wie TWM rechtsklickst du auf den Hintergrund und wählst im Menü xterm aus.
2.) Du wirst zu root. Sprich: Du gibst su ein und gibst dem Rechner das root-Passwort.
3.) rpm -ivh paketname.rpm (rpm -Uvh paketname.rpm, wenn du ein Paket updaten willst)
4.) Schließe das Shellfenster; es ist ungesund, zu lange root zu sein.

Du könntest auch schnell X verlassen und später zurückkehren (mit [Strg+F2] bis [STRG+F6] gehst du auf die Shell, mit [Strg+F7] zurück in X), aber ein Shellfenster ist komfortabler.

Crash-Override
25.08.2004, 19:13
Danke, das bring mich echt weiter. RPM entpacken (installieren wie Linux meldet) funzt ganz gut, aber wohin hat der das Installiert...? Hilfe... Da stand er hätte es installiert, aber jetzt weis ich net wo... naja


Schon gelöst bin im Startmenü [heißt doch auch bei Linux so, oder?] auf Anwendung ausführen gegenagen und dhab den Namen des Programms eingetippt und schon gings xD


zu Kylix:

Habs drauf gemacht und es geht, aber warum will der die Projekte net starten. Ich plazier z.B. nur ein Memo auf der Form (oder gar nichts ist dann genauso) drücke auf Ausführen, und dann hängt alles. Die Maus geht sau lahm. Ich kann ihn noch net mal ausmachen oder neustarten... (Kylix lässt sich net Beenden [und ich hab festgestellt das man mit Strg-Alt-Entf net in den Task Manager kommt [Windows-Freak]])...

Woran könnte das liegen?

[Edit]
@Blackeye:
Toll klar ist Linux ein Betriebssystem. Aber Kylix ist ja speziel für Linux -.-

blackeye
26.08.2004, 04:14
Warscheinlich liegts daran , dass Linux n anderes Betriebssystem is.
Und wie Jesus_666 bereits schrieb hatten auch einige User Probleme mit dem Prog unter Fedora.
Nja weiter kann ich auch net helfen.

blackeye:D

Ineluki
26.08.2004, 05:03
strg+alt+backspace oder strg+alt+f1 koennten helfen

raiel
26.08.2004, 17:17
4. Muss man bei Kylix viel umcoden?

[in so einem Linux heft war als Kylix-Beispiel der Quellcode eines einfachen Texteditors, da haben die beim Öffnen die Datei erst in nen Filestream eingelesen, dann 100 Byte weise ins Memeo übertragen und halt immer überprüft ob noch mehr als 100 Byte übrig bleiben und wenn nicht die byte einzeln eingelen [da ist mir schon schlecht geworden gibts da nicht den Standart Memo1.Lines.LoadFromFile('x.txt'); ???])


Das haengt ganz von den funktionen und der art der programmierung deines Programmes ab.
Was man prinzipiell beachten sollte ist folgendes:

- Projekte immer als CLX projekt anlegen, nicht VCL
- In der hilfe bei funktionen immer unter CLX schauen
- Finger weg von jeglichen Windows API funktionen (sollte man eh machen :D)
- Auf die warnings achten beim compilieren, meldungen wie "Warning: Unit Filectrl is platform specific" sind ernstzunehmen
- Moeglichst keine externen programme starten wollen, das gibt unter kylix dann reichlich arbeit da unter linux mit fork's gearbeitet werden muss um Prozesse zu starten. Shellapi ist uebrigens auch Windows API, also finger weg

Wenn man das alles beruecksichtigt ist man schon sehr kompatibel zu kylix, denn was unter CLX mit standard delphi-komponentent laeuft geht auch alles unter kylix. Wichtig ist das auch da bei vcl die forms als dfm format abgelegt werden und einige properties nicht unter kylix vorhanden sind. Fuer Kylix heissen die forms xfm.
Bei einem CLX/Kylix projekt muessen aber sowohl unter windows als auch unter linux die Borland QT library mitgegeben werden.
Unter windows ist das die qtinft.dll (Knapp 4MB). Kann in das selbe verzeichnis wie die exe gepackt werden dann laeuft alles wie gewohnt.
Unter Linux sind das:
"libborqt-6.9.0-qt2.3.so"
"libqtintf-6.9.0-qt2.3.so"
zusammen 8.5 MB
Dazu kommen noch 4 Symbolic Links die ich grad nicht im kopf habe.

Diese muessen irgendwo im LD_LIBRARY_PATH verfuegbar sein.
Am besten packst du die in ein unterverzeichnis zu deiner binary und machst dir dann noch ein Shellscript was die Librarys dynamisch in den PATH eintraegt. Ausserdem solltest du noch die sprache setzen da die QT dialoge und Fenster von den System Locales abhaengig sind.

Hier mal ein kleines Shellscript was die librarys in einem unterverzeichnis namens lxlib vorraussetzt und dann das Programm "HelloWorld" startet.


#!/bin/sh

# determine location of this script
HERE=`echo $0 | sed 's,[^/]*$,.,'`
PROG=`echo $0 | sed 's,.*/,,'`

# The following incantation takes both our initial guess and the
# contents of $PATH to construct a series of shell commands that
# will look for the executable. We rely on the shell's short cut
# evaluation of || and && to produce the desired result.

# The convoluted quoting exists to make this work even if there
# are spaces in directory and file names.

HERE=`echo $PATH\
| awk -F: 'BEGIN { print "(test -x '"'$HERE/$PROG'"'\\\\";
print " && echo '"'$HERE'"')\\\\"}\
{ for (i=1; i<=NF; i++) {
print "|| (test -x '"'"'"$i"/'"$HERE'"'\\\\";
print " && echo '"'"'"$i"'"'"')\\\\"} }\
END { print "|| exit 1" }'\
| sh || echo Error determining HERE >&2`

# get absolute path
HERE=`cd $HERE; pwd`

# Now we know where we are, lets proceed
#------------------------------------------------------------------------

echo running HelloWorld

if [ -n "$LD_LIBRARY_PATH" ]; then
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HERE/lxlib
else
export LD_LIBRARY_PATH=$HERE/lxlib
fi

if [ -z "$LANG" ]; then
export LANG="de_DE@euro"
fi

echo Exported: $LD_LIBRARY_PATH
echo Exported: $LANG
echo running...

$HERE/HelloWorld $*



Ausserdem sollte man gerade im Bereich bildbearbeitung aufpassen, unter kylix funktionieren TBitmap und TPicture zum teil anders. Einige properties gibt es gar nicht, andere dafuer haben andere funktionen. Da muss man sich dann durch die hilfe schlagen. Bilder solltest du generell immer als png benutzen.
die gif und jpg units von windows funktionieren beide nicht unter linux. Da erledigt das alles TPicture und TGraphic weil die formate alle von QT verarbeitet werden.