{"id":32,"date":"2006-12-19T21:38:39","date_gmt":"2006-12-19T21:38:39","guid":{"rendered":"http:\/\/test.amamo.de\/?page_id=32"},"modified":"2011-06-01T21:16:33","modified_gmt":"2011-06-01T21:16:33","slug":"pascal","status":"publish","type":"page","link":"http:\/\/www.amamo.de\/?page_id=32","title":{"rendered":"if &#8230; then &#8230;"},"content":{"rendered":"<p><strong>Borland Pascal 7<\/strong><br \/>\n<strong>Datengr\u00f6\u00dfe (Data Segment)<\/strong><br \/>\nUnter Borland  Pascal 7.0 als auch unter Delphi 1.0 ist die Datengr\u00f6\u00dfe  eines Programms auf maximal 64KB festgelegt. Es enth\u00e4lt neben der VMT  (virtual method table) der Objekte und den typisierten Konstanten auch s\u00e4mtliche  globalen Variablen (!). Au\u00dferdem unter Delphi 1.0 auch noch den Stack  (lokale Variablen von Prozeduren und Funktionen -&gt; bei Rekursionen werden  die lokalen Variablen so oft angelegt, wie die Rekursionstiefe reicht!),  den lokalen Heap und PChar-Literale.<br \/>\nZur Vermeidung eines \u00dcberlaufs sollten die deklarierten Konstanten  so klein wie m\u00f6glich sein. Insbesondere konstante Zeichenketten (Strings)  sollten so kurz wie m\u00f6glich deklariert sein (statt <em>S: String;<\/em> besser <em>S: String[20]<\/em> wenn 20 Stellen ausreichen).<br \/>\nsiehe auch<br \/>\n<a href=\"http:\/\/www.drbob42.com\/books\/perform.htm\">http:\/\/www.drbob42.com\/books\/perform.htm<\/a><br \/>\n<a href=\"http:\/\/www.drbob42.com\/delphi\/perform.htm\">http:\/\/www.drbob42.com\/delphi\/perform.htm<\/a><br \/>\n<a href=\"http:\/\/www.drbob42.com\/articles\/index_d.htm\">http:\/\/www.drbob42.com\/articles\/index_d.htm<\/a><br \/>\nZum Stack-\u00dcberlauf (stack overflow):<br \/>\n<a href=\"http:\/\/homepages.borland.com\/efg2lab\/Library\/Delphi\/IO\/IOResult.htm\">http:\/\/homepages.borland.com\/efg2lab\/Library\/Delphi\/IO\/IOResult.htm<\/a><br \/>\n<a href=\"http:\/\/community.borland.com\/article\/0,1410,16373,090.html\">http:\/\/community.borland.com\/article\/0,1410,16373,090.html<\/a><br \/>\n<strong>Programme f\u00fcr OS\/2 erzeugen<\/strong><br \/>\nMit <a href=\"http:\/\/www.amamo.de\/pas\/bp7os2.zip\">einem Patch<\/a> kann Borland Pascal 7.0 auch Programme f\u00fcr OS\/2 erzeugen. Matthias Withopf ver\u00f6ffentlichte dazu einen Artikel in der c&#8217;t 11\/93, S. 240.<br \/>\nAlternativ kann der Virtual Pascal Compiler eingesetzt werden, der 32-Bit Programme erzeugt  (siehe unten).<br \/>\n<strong>RunTimeError auf schnellen PC&#8217;s<\/strong><br \/>\nMit der Verwendung der Unit CRT erzeugen alle erstellen Programme auf gen\u00fcgend schnellen PC&#8217;s einen RunTimeError. Der Fehler entsteht durch einen \u00dcberlauf in der Routine &#8222;Delay&#8220;. Hier gibt&#8217;s den <a href=\"http:\/\/www.amamo.de\/pas\/bpcrt.zip\">Fix<\/a>.<br \/>\n<strong>RunTimeError von ProtectedMode Programmen unter W2000\/WxP<\/strong><br \/>\nProtectedMode TurboVision Programme, die unter Windows 2000 bzw. Windows xP ausgef\u00fchrt werden, lassen sich nicht per Maus steuern. Es wird der Laufzeitfehler 216 erzeugt.<br \/>\n<strong>Turbo Vision<\/strong><br \/>\nHier einige Links zum Thema Turbo Vision:<br \/>\n<a href=\"http:\/\/www.ritlabs.com\/dn\">DOS Navigator 1.51<\/a> &#8211; Ein Dateimanager (ein umfangreiches Turbo Vision Programm), das sehr viele Aspekte der (DOS-)Programmierung abdeckt. Dazu geh\u00f6ren beispielsweise Dateimanager, umfangreicher Text Editor, Archiv-Manager, Serielle Verbindungen, Tabellenkalkulation, Taschenrechner, Physical Disk Editor, Terminal einschl. Telefonbuch, Floppy Disk Formatter, Environment Editor, File Uneraser, CD Player, Disk Image Unpacker etc. Die <a href=\"http:\/\/www.ritlabs.com\/dn\">Homepage<\/a> enth\u00e4lt viele weitere Links zum Thema DOS Navigator.<br \/>\n<a href=\"http:\/\/www.byronref.com\/rmb\/tvdmx.htm\">tvDMX<\/a> &#8211; Daten(bank-)management mit Turbo Vision von Randolph Beck<br \/>\nTVGraph &#8211; Turbo Vision im Grafikmodus<br \/>\nPascal-Bibliothek (mittlerweile frei f\u00fcr private Zwecke, <a href=\"http:\/\/sourceforge.net\/projects\/gvision\">Sourcecode erh\u00e4ltlich<\/a>), die u.a. Turbo Vision im Grafikmodus bietet. Siehe auch unter <a href=\"http:\/\/www.math.uni-magdeburg.de\/%7Emkoeppe\/mkm\/\">http:\/\/www.math.uni-magdeburg.de\/~mkoeppe\/mkm\/<\/a><br \/>\n<a href=\"http:\/\/www.borland.de\/\">Borland Turbo Vision<\/a> &#8211; Version f\u00fcr C++ von <a href=\"http:\/\/www.borland.de\/\">Borland<\/a> (download <a href=\"http:\/\/www.amamo.de\/pas\/tv.zip\">TV.ZIP<\/a>, ca. 230 KB)<br \/>\n<strong>Update f\u00fcr Borland Pascal 7.0 &#8211; oder &#8222;Delphi does DOS&#8220;<\/strong><br \/>\nDer Delphi Kommandozeilencompiler <em>dcc.exe<\/em> kann mit den entsprechenden Parametern neben Windows 16-Bit-Programmen auch DOS und Protected Mode Programme \u00fcbersetzen. Vorteil von  Delphi gegen\u00fcber dem &#8222;alten&#8220; Borland Pascal 7 ist die M\u00f6glichkeit der Nutzung der neuen Object Pascal Sprachelemente wie z.B. Klassen und Exceptions. Anleitung  im  ZIP-File zum download <a href=\"http:\/\/www.amamo.de\/pas\/bp8upd.zip\">BP8UPD.ZIP<\/a>, ca. 400 KB.<br \/>\n1995 beschrieb Kevin R. Smith einen Weg, wie man auch mit der integrierten Entwicklungsumgebung (!!) von Delphi DOS Protected Mode Programme erzeugen kann. Im folgenden ZIP-File ist die entsprechende Anleitung zum patchen von <em>delphi.exe<\/em> enthalten (download <a href=\"http:\/\/www.amamo.de\/pas\/delphdos.zip\">DELPHDOS.ZIP<\/a>, ca. 10 KB).<br \/>\nHinweise:<br \/>\n&#8211; analog kann man die Delphi-IDE auch f\u00fcr DOS Real Mode Programme patchen<br \/>\n&#8211; das Erzeugen von DOS Turbo Vision Programmen ist ebenfalls m\u00f6glich<br \/>\n&#8211; der integrierte Debugger von Delphi kann nicht verwendet werden (oder doch? &#8211; wer wei\u00df mehr?)<\/p>\n<hr \/>\n<p><strong>Delphi 1.0 (16-Bit)<\/strong><br \/>\n<strong>(Komponenten-)Bibliotheken<\/strong> (nicht nur in Pascal)<br \/>\n<strong>RX Library<\/strong> &#8211; Delphi Komponentenbibliothek<br \/>\nDie RX Library ist vermutlich die gr\u00f6\u00dfte und freie Komponentensammlung f\u00fcr Delphi 1.0. Sie enth\u00e4lt Komponenten f\u00fcr drei verschiedene Bereiche: allgemeine, visuelle Controls; versch. Zusatzkomponenten sowie  versch. Datenbankkomponenten. Die Bibliothek enth\u00e4lt dar\u00fcberhinaus den  kompletten Quellcode und ist neben der 16-Bit Version (Delphi 1) auch  mit den 32-Bit Versionen (2-5) von Delphi kompatibel. Sie wird jedoch nicht mehr von den urspr\u00fcnglichen Autoren weiterentwickelt (Nachfolgeprojekt  f\u00fcr 32-Bit Systeme JVCL &#8211; siehe Link unten). (Freeware, download <a href=\"http:\/\/www.amamo.de\/pas\/rxlib275.zip\">Version 2.75<\/a>, <a href=\"http:\/\/www.amamo.de\/pas\/rx275fix.zip\">Fix  zu 2.75<\/a>, <a href=\"http:\/\/www.amamo.de\/pas\/rx275ger.zip\">Anpassung Deutsch<\/a>, <a href=\"http:\/\/www.amamo.de\/pas\/rxhelpd5.zip\">engl. Hilfedatei<\/a>)<br \/>\n<strong><a href=\"http:\/\/www.overbyte.be\/\">ICS<\/a><\/strong> &#8211; Internet Component Suite<br \/>\nDie ICS (Aka FPIETTE&#8217;s Components) ist eine umfangreiche Sammlung von Internetkomponenten f\u00fcr die verschiedensten Internetprotokolle (wie z.B. HTTP, FTP, TELNET, NNTP, SMTP, POP3, ICMP, &#8230;) von Fran\u00e7ois PIETTE. Die Bibliothek enth\u00e4lt den kompletten Quellcode und ist neben der 16-Bit Version (Delphi 1) auch  mit den 32-Bit Versionen (2-7) von Delphi sowie mit Kylix und dem C++-Builder  kompatibel. (Freeware, download <a href=\"http:\/\/www.amamo.de\/pas\/ics.zip\">Version 19.07.02<\/a>)<br \/>\n<strong><a href=\"http:\/\/www.gdsoft.com\/swag\/swag.html\">SWAG<\/a><\/strong> &#8211;  Pascal Codefragmente<br \/>\nCodesammlung der &#8222;SourceWareArchiveGroup&#8220;. Das Archiv enth\u00e4lt haupts\u00e4chlich DOS-Code, aber auch Code f\u00fcr Windows. Die Fortf\u00fchrung des Archivs wurde 1997 eingestellt.<br \/>\n<strong><a href=\"http:\/\/www.nomssi.de\/paszlib\/paszlib.html\">PasZLib<\/a><\/strong> &#8211; Pascal Portierung der C-zlib-Bibliothek<br \/>\nOriginalhomepage der C-Bibliothek: <a href=\"http:\/\/www.gzip.org\/zlib\/\">http:\/\/www.gzip.org\/zlib\/<\/a><br \/>\n<strong>TurboPower (ehemals http:\/\/www.turbopower.com)<\/strong> &#8211; diverse Komponentenbibliotheken<br \/>\nDie ehemals kommerzielle Komponentenbibliotheken (Orpheus, AsyncPro,&#8230;), die jetzt (seit Anfang 2003) als Open Source auf <a href=\"http:\/\/sourceforge.net\/\">SourceForge (suche nach TurboPower)<\/a> erh\u00e4ltlich sind! unbedingt mal ansehen!!<br \/>\n<strong>und leider nicht in OBJECT PASCAL:<br \/>\n<a href=\"http:\/\/www.fastio.com\/\">CLibPDF<\/a><\/strong> &#8211; C Library zur PDF-Erstellung von FastIO Systems<br \/>\nF\u00fcr nichtkommerzielle Zwecke frei verwendbare, umfangreiche C-Library zur Erzeugung von PDF-Dateien von <a href=\"http:\/\/www.fastio.com\/\">FastIO Systems<\/a>. Die Weiterentwicklung wurde offenbar eingestellt. Alternativ siehe auch <a href=\"http:\/\/www.pdflib.com\/\">PDFLib<\/a>, eine &#8222;kommerziellere&#8220; C-Library (von Thomas Merz).<\/p>\n<hr \/>\n<p><strong>Tools<\/strong><br \/>\n<a href=\"http:\/\/www.jrsoftware.org\/isinfo.php\"> InnoSetup<\/a> &#8211; Installationsprogramme erstellen (Freeware, incl. Delphi Quellcode)<br \/>\nInnoSetup erstellt Installationspropgramme. Die \u00e4ltere Version 1.2.16 ist die letzte Version, die 16-Bit Windows-Installationen unterst\u00fctzt. (download <a href=\"http:\/\/www.amamo.de\/pas\/isetup16-1.2.16.exe\">Version 1.2.16<\/a>, <a href=\"http:\/\/www.amamo.de\/pas\/issrc-1.2.16.zip\">Quellen<\/a>)<br \/>\n<a href=\"http:\/\/www.calmira.de\/\"> Calmira II<\/a> &#8211; Windows 95 Look f\u00fcr Windows 3.x (Freeware, incl. Delphi Quellcode, GPL), s.a. <a href=\"http:\/\/www.abzone.be\/\">hier<\/a><br \/>\nErsatz f\u00fcr den alten Windows-Programmmanager im Windows 95 Outfit. (download <a href=\"http:\/\/www.amamo.de\/pas\/c32setup.exe\">Version 3.2<\/a>, <a href=\"http:\/\/www.amamo.de\/pas\/cal32src.zip\">Quellen<\/a> , <a href=\"http:\/\/www.amamo.de\/pas\/cal325up.zip\">Update auf Version 3.25<\/a>)<br \/>\n<a href=\"http:\/\/winmerge.sourceforge.net\/\">WinMerge<\/a> &#8211; Programm f\u00fcr den Dateivergleich (C++ OpenSource, GPL)<br \/>\nWinMerge vergleicht Dateien und kann \u00c4nderungen zwischen den Dateien \u00fcbertragen. (download von <a href=\"http:\/\/winmerge.sourceforge.net\/\">SourceForge<\/a>)<br \/>\n<a href=\"http:\/\/www.chmaas.handshake.de\/\">XVI32<\/a> &#8211; Hexeditor (Freeware, kein Quellcode)<br \/>\nIn Delphi entwickelter Hexeditor von Christian Maas f\u00fcr 32-Bit Windowssysteme (download <a href=\"http:\/\/www.amamo.de\/pas\/xvi32.zip\">Version 2.4<\/a>)<br \/>\n<a href=\"http:\/\/www.geocities.com\/medialight\">UDD<\/a> &#8211;  Universal Delphi Decompiler (ehemals Shareware, mailto:Medialight@yahoo.com)<br \/>\nDer Universal Delphi Decompiler erzeugt aus ausf\u00fchrbaren Dateien, die  mit Delphi erzeugt wurden, ein Grundger\u00fcst aus Pascal-Quelldateien und -Formularen mit leeren Methoden. (download Shareware-<a href=\"http:\/\/www.amamo.de\/pas\/UDD.exe\">Version  1.2<\/a>)<\/p>\n<hr \/>\n<p><strong>Weitere Links<\/strong><br \/>\n<a href=\"http:\/\/tdbf.sf.net\/\">TDBF Komponente<\/a> &#8211; Open Source<br \/>\n<a href=\"http:\/\/www.destructor.de\/\">XML und TAR<\/a> &#8211; Delphi 32-Bit Komponenten f\u00fcr XML und TAR von Stefan Heymann<br \/>\n<a href=\"http:\/\/www.dwp42.org\/\">WDOSX<\/a> &#8211; 32-Bit Konsolenprogramme mit Delphi (32-Bit) erstellen<br \/>\n<a href=\"http:\/\/delphi-jedi.org\/\"> Project JEDI<\/a> &#8211; 32-Bit Komponentenbibliothek JVCL<br \/>\n<a href=\"http:\/\/www.glyfx.com\/\">GlyFX<\/a> &#8211; Glyphs f\u00fcr die Programmoptik<br \/>\n<a href=\"http:\/\/www.turboexplorer.com\/\">TurboExplorer<\/a> &#8211; die neuen Turbo&#8217;s von CodeGear<br \/>\n<a href=\"http:\/\/www.delphipraxis.net\/\">DelphiPraxis<\/a> &#8211; das Forum f\u00fcr Delphi Programmierer<br \/>\n<a href=\"http:\/\/www.dsdt.info\/\">DSDT<\/a> &#8211; Delphi Source &#8211; der Delphi Treff<br \/>\n<a href=\"http:\/\/www.qusoft.com\/\">QuickReport<\/a> &#8211; Reportkomponentenbibliothek, Standardversion z.T. in Delphi enthalten, \u00e4ltere Version 2.0K auch f\u00fcr Delphi 1.0<br \/>\nRaveReport &#8211; Reportkomponentenbibliothek, mit Delphi 7 (&gt;=Professional) zusammen ausgeliefert<br \/>\n<a href=\"http:\/\/www.fast-report.com\/en\/\">FastReport<\/a> &#8211; 32-Bit Reportkomponente (\u00e4ltere Version Freeware)<br \/>\n<a href=\"http:\/\/www.freepascal.org\/\"> FreePascal<\/a> &#8211; freier Pascal Compiler (32-Bit, OpenSource)<br \/>\n<a href=\"http:\/\/www.vpascal.com\/\"> Virtual Pascal<\/a> &#8211; Pascal Compiler f\u00fcr OS\/2, WIN32 (32-Bit, Freeware)<br \/>\n<a href=\"http:\/\/sibyl.netlabs.org\/\">(Open)Sibyl<\/a> &#8211; Delphi-\u00e4hnlicher Pascal Compiler f\u00fcr OS\/2 (Projekt OpenSibyl)<br \/>\n<a href=\"http:\/\/www.win31.de\/\">Win31<\/a> &#8211; DIE Internetseite f\u00fcr Windows 3.1<br \/>\n<a href=\"http:\/\/sourceforge.net\/\">SourceForge<\/a> &#8211; die Open-Source-Seiten im Netz, auch mit vielen Delphi Projekten<br \/>\n<em>Sammlungen von Komponenten, Programmen etc.<\/em><br \/>\n<a href=\"http:\/\/delphi.icm.edu.pl\/\">DSP<\/a> &#8211; Delphi Super Page (Polen), oder <a href=\"http:\/\/sunsite.informatik.rwth-aachen.de\/delphi\">deutscher  Mirror<\/a><br \/>\n<a href=\"http:\/\/www.torry.ru\/\">Torry<\/a> &#8211; Torry&#8217;s Delphi Pages (Russland)<br \/>\n<em> und nat\u00fcrlich<\/em><br \/>\n<a href=\"http:\/\/www.borland.com\/\"> Borland<\/a><br \/>\n<a href=\"http:\/\/bdn.borland.com\/\"> Borland Developer Network BDN<\/a> (ehemals Borland Community)<br \/>\n<a href=\"http:\/\/www.borland.com\/newsgroups\">Borland Newsgroups<\/a><\/p>\n<hr \/>\n","protected":false},"excerpt":{"rendered":"<p>Borland Pascal 7 Datengr\u00f6\u00dfe (Data Segment) Unter Borland Pascal 7.0 als auch unter Delphi 1.0 ist die Datengr\u00f6\u00dfe eines Programms auf maximal 64KB festgelegt. Es enth\u00e4lt neben der VMT (virtual method table) der Objekte und den typisierten Konstanten auch s\u00e4mtliche globalen Variablen (!). Au\u00dferdem unter Delphi 1.0 auch noch den Stack (lokale Variablen von Prozeduren <a href='http:\/\/www.amamo.de\/?page_id=32' class='excerpt-more'>[&#8230;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":30,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-32","page","type-page","status-publish","hentry","post-seq-1","post-parity-odd","meta-position-corners","fix"],"_links":{"self":[{"href":"http:\/\/www.amamo.de\/index.php?rest_route=\/wp\/v2\/pages\/32","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.amamo.de\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/www.amamo.de\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/www.amamo.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.amamo.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=32"}],"version-history":[{"count":9,"href":"http:\/\/www.amamo.de\/index.php?rest_route=\/wp\/v2\/pages\/32\/revisions"}],"predecessor-version":[{"id":232,"href":"http:\/\/www.amamo.de\/index.php?rest_route=\/wp\/v2\/pages\/32\/revisions\/232"}],"wp:attachment":[{"href":"http:\/\/www.amamo.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}