Registriert: Di Nov 29, 2005 21:11 Beiträge: 88 Wohnort: Bonn
Moin!
Ich schreibe eine SDL Anwendung und fäd's toll, wenn sie auch unter Linux und Mac läuft.
Welche Units oder Komponenten darf ich in Delphi7 nicht benutzen, damit das mit der plattformunabhängigkeit alles hinhaut?
Registriert: Do Nov 17, 2005 14:40 Beiträge: 63 Wohnort: Dötlingen
Ich weiß ja nicht, was du zur Zeit so an Libs benutzt, aber wenn du schon mit SDL arbeitest, wäre es sicherlich sinnvoll, zum Laden von Texturen auch gleich SDL_image zu verwenden.
Registriert: Di Nov 29, 2005 21:11 Beiträge: 88 Wohnort: Bonn
Shaddow hat geschrieben:
Ich glaub die Jedis gehen generell nich unter Linux.
Ich dachte das wäre gerade der Sinn hinter SDL, dass es so schön plattformunabhängig ist??
Zitat:
Ich weiß ja nicht, was du zur Zeit so an Libs benutzt, aber wenn du schon mit SDL arbeitest, wäre es sicherlich sinnvoll, zum Laden von Texturen auch gleich SDL_image zu verwenden.
bis jetzt benutz ich neben SDL (ich lad im moment eh nur bmps, da brauch ich SDL_Image noch nicht)
nur SysUtils, die war schon von anfang an eingebunden...
ich habe noch IniFiles eingebunden, aber das muss nicht unbedingt sein, kann ja auch normal aus textdateien lesen
okeh, also werde ich "Windows" nicht einbinden - macht ja auch irgendwie Sinn Wie sieht es mit "Classes" aus? Die wollte ich wegen TList dabei haben, aber wenn das verboten ist, dann nehm ich halt nen Array...
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Also du solltest dir auch mal FreePascal für Windows installieren. Und damit deine Codes mal übersetzen. Wenn es geht dann stehen die Chancen recht gut, dass es auch unter Linux geht. Denke (hoffe) ich. Also ich entwickel mit Delphi und ab und an übersetze ich das mal mit FreePascal. Muss aber gestehen, dass ich noch nichts unter linux übersetzt habe. Ich bin aber zuversichtlich.
FreePascal unterstützt TFileStreams und mit TList ließ es sich bei mir auch übersetzen.
Und ja SDL ist Plattformunabhängig. Ich denke mit "jedis" war die so häufig verwendete jvcl gemeint.
Registriert: Di Nov 29, 2005 21:11 Beiträge: 88 Wohnort: Bonn
kann freepascal eigentlich auch direkt für andere os'se compilieren?
und könnte ich dann direkt das ganze programm unter freepascal schreiben oder ist das unbequemer als delphi7p?
und, etwas offtopic, warum gibt es in delphi7 keine klassenvariablen?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Also mit der FreePascal Consolen IDE komme ich gar nicht klar. Das genügt gerade so dazu, dass ich es kompilieren kann. Allerdings gibt es ja auch noch Lazarus und das ist Delphi nicht unähnlich. Aber wie es genau ist weiß ich nicht.
Mit Freepascal kannst du auch direkt für andere System programmieren. Allerdings so weit ich weiß. Nicht unter Windows für Linux. Andersrum geht aber. Aber bitte nicht drauf festnageln falls es doch gehen sollte.
Linux, FreeBSD, Mac OS X/Darwin, Mac OS classic, DOS, Win32, OS/2, Netware (libc and classic) and MorphOS
Aber soweit ich weiß, nicht DIREKT, Du kannst also nicht in Windows Programme für Mac erzeugen.
Zitat:
und könnte ich dann direkt das ganze programm unter freepascal schreiben oder ist das unbequemer als delphi7p?
Ich sage es nicht gern, aber: es ist schon unbequemer (IDE, Debugger). Es gibt wie Lossy schon erwähnt hat, Lazarus; das ist dem Delphi nachgebildet. Ich selber mache es so: ich schreibe in Delphi und wenn ich damit zufrieden bin, lasse ich es von Free Pascal übersetzen. Geht ausgezeichnet. NACHTEIL: es fehlt die VCL.
Der SourceCode kann dann jederzeit für ein anderes Betriebssystem übersetzt werden: Objekt-Orientientiertes Pascal für eine ziemlich große Auswahl von Betriebssystemen (denn genau DAS hat Free Pascal auf seine Fahnen geheftet).
Zitat:
und, etwas offtopic, warum gibt es in delphi7 keine klassenvariablen?
Ähm, ich verstehe nicht was Du meinst. Könntest Du das etwas präzisieren?
Traude
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Traude hat geschrieben:
Zitat:
Linux, FreeBSD, Mac OS X/Darwin, Mac OS classic, DOS, Win32, OS/2, Netware (libc and classic) and MorphOS
Aber soweit ich weiß, nicht DIREKT, Du kannst also nicht in Windows Programme für Mac erzeugen..
Schau mal unter Projekt -> Compilereinstellungen -> Quelltext. Dort kann man unter Zielplattform was einstellen, allerdings muss man dafür natürlich die Quellen der FPC-Units für das entsprechende Zielsystem haben, sonst wird das nichts.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Di Nov 29, 2005 21:11 Beiträge: 88 Wohnort: Bonn
dann schreibe ich also weiter in delphi7 und teste immer mal wieder, ob freepascal alles mitmacht...
VCL brauch ich doch nicht, wenn ich VCL richtigerweise als Visual Component Library übersetzt habe, weil es eh ne konsolenanwendung ist, die mit SDL Fenster, Usereingaben und Grafik behandelt...
Zitat:
Zitat:
und, etwas offtopic, warum gibt es in delphi7 keine klassenvariablen?
Ähm, ich verstehe nicht was Du meinst. Könntest Du das etwas präzisieren?
In Java kann ich in Klassen Variablen mit static versehen und mache sie somit zu Klassenvariablen, die nicht für jedes Objekt, was ich aus der Klasse instanziiere gelten, sondern für die Klasse im allgemeinen - Google sagte mir, dass gibt es in Delphi7 nicht. Ich weiß aber auch nicht mehr, warum ich das wollte, hab es dann anders gelöst...
Registriert: Di Okt 03, 2006 14:07 Beiträge: 1277 Wohnort: Wien
Doppelreim schrieb:
Zitat:
In Java kann ich in Klassen Variablen mit static versehen und mache sie somit zu Klassenvariablen, die nicht für jedes Objekt, was ich aus der Klasse instanziiere gelten, sondern für die Klasse im allgemeinen
OK, soweit ich weiß gibts das in Delphi wirklich nicht. Delphi hat Klassenmethoden, aber keine Variablen die nur für Klassen gelten.
Zitat:
was sind FPC-Units?
Das ist das gleiche wie die Units in Delphi. Es sind Source-Code Dateien, die einzeln übersetzt und gelinkt werden, aber davon merkt der Benutzer eigentlich wenig. Wenn man sie dazubinden möchte, nimmt man sie in die "Uses"-Klausel auf, eben wie in Delphi. Sie heißen auch meist genauso wie die Delphi-Units.
Traude
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Wenn ich das richtig verstehe schon.
Und zwar gibt es erstens die möglichkeit, einen Typ zu erstellen, der eine Klasse enthält:
Code:
type
TAnyObject =class(TObject)
(* Irgendein Inhalt *)
classprocedure Bla;
end;
Die Prozedur Bla kann ohne weiteres mit TAnyObject.Bla; aufgerufen werden. Es muss dafür kein Objekt erzeugt werden. Ich bin mir aber nicht sicher, ob man auch Variablen damit versehen kann, das müsste man mal ausprobieren.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Nein kann man nicht.
Diese Methode darf natürlich auch nichts mit der Klasseninstanz machen. Der Klassentyp ist aber immer vorhanden. Wenn diese Methode irgendwelche Werte ablegen/lesen möchte, dann muss das eine globale Variable sein. So Referenzzählung der angelegten Instanzen etc. Da diese aber im Implementation Teil stehen kann sieht man sie auch nicht von außen und könnte so etwas ähnliches wie eine Klassenvariable erzeugen. Man muss dafür aber halt etwas Hand anlegen.
Registriert: Di Nov 29, 2005 21:11 Beiträge: 88 Wohnort: Bonn
ich habe mir mittlerweile freepascal besorgt und nach einigem hick hack sogar geschafft, mein projekt zu kompilieren...
dann habe ich spaßeshalber als target plattform linux angegeben und shcon fing er weider an, zu meckern.
habe ein bisschen gesucht und bin schließlich hier gelandet: http://www.stack.nl/~marcov/crossnotes.txt das hat mir dann ein bisschen die lust am cross-kompilieren genommen, wegen der ganzen sachen, die man noch braucht und linker und assembler und was weiß ich noch für abenteuerliche sachen - hab's mir wohl zu einfach vorgestellt
deshalb nun folgende frage: wenn ich meinen source-code mit freepascal für "win32 for i386" kompiliert bekomme, kann ich ihn dann auch auf einer richtigen linux bzw. mac maschine mit freepascal kompilieren. weil das freepascal der anderen os'se müsste doch den linker/assembler/und was noch fehlt für sich dabei haben?
Registriert: So Feb 06, 2005 17:29 Beiträge: 187
Programmiersprache: C, C++
Ich hab für den PGD Wettbewerb zum ersten Mal versucht ein Programm mit SDL plattformunabhängig zu halten, genauer genommen hab zum ersten Mal versucht unter Linux zu entwickeln, wobei das Endprodukt auch unter Windows laufen musste.
Mich hat dann das Crosscompiling auch abgeschreckt, deswegen hab ich fpc und lazarus sowohl unter linux als auch win installiert und das programm immer auf dem jeweiligen OS kompiliert.
Das hat auch gut funktioniert, nur der Vollbildmodus war auf beiden Plattformen unterschiedlich, kann vielleicht aber auch an verschiedenen SDL-Versionen gelegen haben ...
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.