MS-DOS-Anwendung mit Delphi-Klassen?
Moin moin,
gibt es eine Möglichkeit, meine Klassen weiter zu verwenden und mit ihnen eine Anwendung für MS-DOS zu erstellen*? So weit ich weiß, unterstützt Turbo Pascal keine Klassen und alle Delphi-Versionen, die auf Object Pascal basieren, können keine 16-Bit-Anwendungen erstellen... Gruß Malte *Bitte nicht Konsolenanwendung mit 16-Bit MS-DOS-Anwendung verwechseln |
Re: MS-DOS-Anwendung mit Delphi-Klassen?
mit Delphi1 kann man soweit ich weiß auch Konsolenanwendungen erstellen (16bit) allerdings weiß ich nicht ob diese auch unter Dos laufen oder nur unter win3.11
Die grafischen Sachen sind unter Dos natürlich nicht vorhanden da diese auf die Windowsbibliotheken aufbauen. Aber nicht visuelle Dinge sollten nicht das Problem sein. |
Re: MS-DOS-Anwendung mit Delphi-Klassen?
Die Delphi-Rt setzt auf die Windows-API auf. Du wirst also mit Delphi keine Programme entwickeln können, welche auf reinem Dos funktionieren ohne eine alterantive RTL zu verwenden. Es gab mal Ansetzte dafür.
http://tippach.business.t-online.de/wdosx/ |
Re: MS-DOS-Anwendung mit Delphi-Klassen?
D1 wäre (wie schon geschrieben) die einzige offizielle versuch. Ob man mit D > 1 und irgendwelchen DOS-Extendern was machen könnte (War da nich mal vor ein paar Jahrem in "Entwickler-Magazin" ein Artikel :gruebel:) müsste man sich ergoogeln.
Aber in Zeiten von .NET 2/3 und Win64 wäre es wohl mehr als Verschwendung wenn man noch in einer aktuellen Delphi-Version für 16-DOS kompilieren könnte. |
Re: MS-DOS-Anwendung mit Delphi-Klassen?
Hallo Malte,
die DWPL-Bibliothek setzt auf dem DOS-Extender WDosX von Michael Tippach auf. Das Projekt ist aber offenbar eingeschlafen, die letzte Version der Bibliothek stammt aus dem Jahr 2004. Ein relativ neuer DOS-Extender ist HX DOS. Auch er verspricht eine Zusammenarbeit mit Delphi und soll sogar OpenGL-Anwendungen unter DOS ermöglichen. Gruß Hawkeye |
Re: MS-DOS-Anwendung mit Delphi-Klassen?
@SirThornberry: Soweit ich weiß, ist Win 3.x (und auch 9x und ME) nichts anderes als ein graphischer Aufsatz auf MSDOS, Win 3.x musste man sogar noch über MSDOS starten. Das heißt also, wenn die Anwendungen unter Win 3.x laufen, laufen sie definitiv auch unter DOS.
|
Re: MS-DOS-Anwendung mit Delphi-Klassen?
naja, consolenanwendungen die unter win95 laufen bringen trotzdem unter Dos ab und an die Meldung das sie nicht in Dos-Mode laufen. Aber bei Win3.11 bin ich mir auch zu 99,9% sicher das es nur ein grafisches "Programm" war was unter Dos läuft. Allerdings weiß ich nicht sicher ob Programme feststellen konnten ob sie innerhalb dieses "programmes" ausgeführt wurden.
|
Re: MS-DOS-Anwendung mit Delphi-Klassen?
Delphi-Quellcode:
turbo pascal ab version 5.5 unterstützt klassen. diese werden ebenfalls wieder in delphi 2006 unterstützt, du kannst daher die codes zwischen TP5.5 und D2006 austauschen und einfach neu kompilieren.
program Project2;
{$APPTYPE CONSOLE} uses SysUtils; type ttest = object constructor init; destructor done; procedure main; end; constructor ttest.init; begin //initialisierung der klasse resp. des objekts end; destructor ttest.done; begin //aufräumarbeiten end; procedure ttest.main; begin //hier liegt der code (hauptschleife) writeln('inside object'); end; var t: ^tTest; begin new(t); //instanz erzeugen t^.init; //objekt initialiseren t^.main; //objekt ausführen t^.done; //allokierten speicher freigeben dispose(t); //intanz freigeben readln; end. du kannst aber mit delphi keine DOS anwendungen kompilieren, diese sind nur quelltextkompatibel... während du mit TP7 z.b. WIN programme erstellen kannst... wenn du also wirklich noch etwas für DOS erstellen willst, so rate ich dir, hohl dir den TP compiler aus dem museum und verwende ihn... die codes kannste dann 1:1 mit delphi weiterverwenden. noch einen schönen sonntag. |
Re: MS-DOS-Anwendung mit Delphi-Klassen?
Zitat:
tja, noch einen schönen sonntag. |
Re: MS-DOS-Anwendung mit Delphi-Klassen?
@grenzgaenger: wird vererbung in dieser TP-Version auch schon unterstützt?
|
Re: MS-DOS-Anwendung mit Delphi-Klassen?
TP kennt aber nur die alte Pascal-OOP (Object).
|
Re: MS-DOS-Anwendung mit Delphi-Klassen?
ja, die vererbung wird auch schon unterstützt. du musst hierfür nur das wort class gegen object austauschen. z.b.
Delphi-Quellcode:
die vererbung war seit tp5.5 implementiert. andere features kammen aber erst zu einem späteren zeitpunkt hinzu, so, dass nicht mehr mit der dereferenzierung auf die methoden zugegriffen werden muss, dafür um das auseinanderzuhalten, hatte dann borland das schlüsselwort object gegen class getauscht (da fielen dann auch new und dispose weg).
type ttest = object
constructor init; destructor done; procedure main; end; punkt = object(ttest) x, y: integer; end; kreis = object(punkt) radius: integer; end; wie gesagt, wenn man sich an den PASCAL sprachvorrat hält, und nicht die delphi spezifischen erweiterungen verwendet, so kann man auch mit delphi programme entwickeln, welche auf DOS ebene rekompiliert weden können. hier muss man aber auch mit den units aufpassen... das beispiel wurde mit d2006 erstellt und somit ist die unit sysutils vorhanden, diese gab es aber zu TP's zeiten nicht. auch gibts z.b. keine class operatoren, operator overloading, properties, etc.... allso alles was das leben schön macht... :-) pascal hat sich ja auch weiterentwickelt und nicht grad zum schlechteren :-) grüsse und noch einen schönen sonntag. |
Re: MS-DOS-Anwendung mit Delphi-Klassen?
Zitat:
|
Re: MS-DOS-Anwendung mit Delphi-Klassen?
Hallo,
natürlich ist es möglich, die "alten" Objekte zu verwenden, sie werden von allen bisherigen Delphi-Version unterstützt. Eine (Rück-)Portierung von vorhandenem Object-Pascal-Quellcode auf den Stand von Delphi 1 oder gar Turbo Pascal dürfte allerdings mit einem hohen Aufwand verbunden sein: - neuere Sprachelemente dürfen nicht eingesetzt werden (z.B. dynamische Arrays, Interfaces,...) - es dürfen nur ShortStrings verwendet werden (max. 255 Zeichen) - Sichtbarkeits-Direktiven existieren nicht (ganz oder teilweise) - Properties existieren nicht (Turbo Pascal) - Überschreiben von Routinen mit VIRTUAL statt OVERRIDE (Fehlerquelle!) - 64-KByte-Grenze für Code und Daten (jedenfalls ohne Overlays, XMS, EMS o.ä.) Dies sind nur einige Punkte, die zu beachten sind. Eine Verwendung der genannten DOS-Extender ist sicher mit einem anfänglichen Aufwand verbunden. Wenn aber die ersten Hürden überwunden sind, kann man mit dieser Kombination recht komfortabel sehr komplexe Anwendungen für DOS entwickeln. Immo Waches Dokumentation zu DWPL zeigt, daß diese Lösung im industriellen Bereich eingesetzt wurde - und vielleicht auch noch wird. Neuentwicklungen werden wahrscheinlich eher auf Windows CE oder Linux aufsetzen. Gruß Hawkeye |
Re: MS-DOS-Anwendung mit Delphi-Klassen?
Man könnte auch die Lauffähigkeit auf FPC testen.
|
Re: MS-DOS-Anwendung mit Delphi-Klassen?
Zitat:
es gibt doch noch TP, warum sollte man da auf dos extender zurückgreifen? frag mich aber, wieso soll das noch DOS sein? das system ist doch praktisch ausgestorben.... |
Re: MS-DOS-Anwendung mit Delphi-Klassen?
Zitat:
Zitat:
Vielen Dank, jetzt hab ich erstmal ganz viel zum Basteln :coder: Gruß Malte |
Re: MS-DOS-Anwendung mit Delphi-Klassen?
Zitat:
Die alten, mit TP5 eingeführte OOP mit dem Schlüsselwort OBJECT wird von allen (nicht .Net)Delphiversionen unterstützt. Zitat:
} |
Re: MS-DOS-Anwendung mit Delphi-Klassen?
@grenzgaenger: Was hat TP mit Delphi2006 zu tun? Die Turbos haben mit TP ja wohl außer dem Namen rien garnix zu tun.
|
Re: MS-DOS-Anwendung mit Delphi-Klassen?
doch, haben sie. die codes aus TP lassen sich in d2006 kompilieren...
@mkinzler: kommt drauf an, was du als .Net-delphi bezeichnest.. in D2005 wurde, soviel ich weiss, die OBJECT unterstützung herausgenommen... zu D6 war sie zuvor noch drin. muss mich daher teilweise korrigieren. grüsse und noch 'n schönen sonntag. |
Re: MS-DOS-Anwendung mit Delphi-Klassen?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz