if … then …

 

Borland Pascal 7
Datengröße (Data Segment)
Unter Borland Pascal 7.0 als auch unter Delphi 1.0 ist die Datengröße eines Programms auf maximal 64KB festgelegt. Es enthält neben der VMT (virtual method table) der Objekte und den typisierten Konstanten auch sämtliche globalen Variablen (!). Außerdem unter Delphi 1.0 auch noch den Stack (lokale Variablen von Prozeduren und Funktionen -> bei Rekursionen werden die lokalen Variablen so oft angelegt, wie die Rekursionstiefe reicht!), den lokalen Heap und PChar-Literale.
Zur Vermeidung eines Überlaufs sollten die deklarierten Konstanten so klein wie möglich sein. Insbesondere konstante Zeichenketten (Strings) sollten so kurz wie möglich deklariert sein (statt S: String; besser S: String[20] wenn 20 Stellen ausreichen).
siehe auch
http://www.drbob42.com/books/perform.htm
http://www.drbob42.com/delphi/perform.htm
http://www.drbob42.com/articles/index_d.htm
Zum Stack-Überlauf (stack overflow):
http://homepages.borland.com/efg2lab/Library/Delphi/IO/IOResult.htm
http://community.borland.com/article/0,1410,16373,090.html
Programme für OS/2 erzeugen
Mit einem Patch kann Borland Pascal 7.0 auch Programme für OS/2 erzeugen. Matthias Withopf veröffentlichte dazu einen Artikel in der c’t 11/93, S. 240.
Alternativ kann der Virtual Pascal Compiler eingesetzt werden, der 32-Bit Programme erzeugt (siehe unten).
RunTimeError auf schnellen PC’s
Mit der Verwendung der Unit CRT erzeugen alle erstellen Programme auf genügend schnellen PC’s einen RunTimeError. Der Fehler entsteht durch einen Überlauf in der Routine „Delay“. Hier gibt’s den Fix.
RunTimeError von ProtectedMode Programmen unter W2000/WxP
ProtectedMode TurboVision Programme, die unter Windows 2000 bzw. Windows xP ausgeführt werden, lassen sich nicht per Maus steuern. Es wird der Laufzeitfehler 216 erzeugt.
Turbo Vision
Hier einige Links zum Thema Turbo Vision:
DOS Navigator 1.51 – Ein Dateimanager (ein umfangreiches Turbo Vision Programm), das sehr viele Aspekte der (DOS-)Programmierung abdeckt. Dazu gehören 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 Homepage enthält viele weitere Links zum Thema DOS Navigator.
tvDMX – Daten(bank-)management mit Turbo Vision von Randolph Beck
TVGraph – Turbo Vision im Grafikmodus
Pascal-Bibliothek (mittlerweile frei für private Zwecke, Sourcecode erhältlich), die u.a. Turbo Vision im Grafikmodus bietet. Siehe auch unter http://www.math.uni-magdeburg.de/~mkoeppe/mkm/
Borland Turbo Vision – Version für C++ von Borland (download TV.ZIP, ca. 230 KB)
Update für Borland Pascal 7.0 – oder „Delphi does DOS“
Der Delphi Kommandozeilencompiler dcc.exe kann mit den entsprechenden Parametern neben Windows 16-Bit-Programmen auch DOS und Protected Mode Programme übersetzen. Vorteil von Delphi gegenüber dem „alten“ Borland Pascal 7 ist die Möglichkeit der Nutzung der neuen Object Pascal Sprachelemente wie z.B. Klassen und Exceptions. Anleitung im ZIP-File zum download BP8UPD.ZIP, ca. 400 KB.
1995 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 delphi.exe enthalten (download DELPHDOS.ZIP, ca. 10 KB).
Hinweise:
– analog kann man die Delphi-IDE auch für DOS Real Mode Programme patchen
– das Erzeugen von DOS Turbo Vision Programmen ist ebenfalls möglich
– der integrierte Debugger von Delphi kann nicht verwendet werden (oder doch? – wer weiß mehr?)


Delphi 1.0 (16-Bit)
(Komponenten-)Bibliotheken (nicht nur in Pascal)
RX Library – Delphi Komponentenbibliothek
Die RX Library ist vermutlich die größte und freie Komponentensammlung für Delphi 1.0. Sie enthält Komponenten für drei verschiedene Bereiche: allgemeine, visuelle Controls; versch. Zusatzkomponenten sowie versch. Datenbankkomponenten. Die Bibliothek enthält darüberhinaus 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ünglichen Autoren weiterentwickelt (Nachfolgeprojekt für 32-Bit Systeme JVCL – siehe Link unten). (Freeware, download Version 2.75, Fix zu 2.75, Anpassung Deutsch, engl. Hilfedatei)
ICS – Internet Component Suite
Die ICS (Aka FPIETTE’s Components) ist eine umfangreiche Sammlung von Internetkomponenten für die verschiedensten Internetprotokolle (wie z.B. HTTP, FTP, TELNET, NNTP, SMTP, POP3, ICMP, …) von François PIETTE. Die Bibliothek enthält 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 Version 19.07.02)
SWAG – Pascal Codefragmente
Codesammlung der „SourceWareArchiveGroup“. Das Archiv enthält hauptsächlich DOS-Code, aber auch Code für Windows. Die Fortführung des Archivs wurde 1997 eingestellt.
PasZLib – Pascal Portierung der C-zlib-Bibliothek
Originalhomepage der C-Bibliothek: http://www.gzip.org/zlib/
TurboPower (ehemals http://www.turbopower.com) – diverse Komponentenbibliotheken
Die ehemals kommerzielle Komponentenbibliotheken (Orpheus, AsyncPro,…), die jetzt (seit Anfang 2003) als Open Source auf SourceForge (suche nach TurboPower) erhältlich sind! unbedingt mal ansehen!!
und leider nicht in OBJECT PASCAL:
CLibPDF
– C Library zur PDF-Erstellung von FastIO Systems
Für nichtkommerzielle Zwecke frei verwendbare, umfangreiche C-Library zur Erzeugung von PDF-Dateien von FastIO Systems. Die Weiterentwicklung wurde offenbar eingestellt. Alternativ siehe auch PDFLib, eine „kommerziellere“ C-Library (von Thomas Merz).


Tools
InnoSetup – Installationsprogramme erstellen (Freeware, incl. Delphi Quellcode)
InnoSetup erstellt Installationspropgramme. Die ältere Version 1.2.16 ist die letzte Version, die 16-Bit Windows-Installationen unterstützt. (download Version 1.2.16, Quellen)
Calmira II – Windows 95 Look für Windows 3.x (Freeware, incl. Delphi Quellcode, GPL), s.a. hier
Ersatz für den alten Windows-Programmmanager im Windows 95 Outfit. (download Version 3.2, Quellen , Update auf Version 3.25)
WinMerge – Programm für den Dateivergleich (C++ OpenSource, GPL)
WinMerge vergleicht Dateien und kann Änderungen zwischen den Dateien übertragen. (download von SourceForge)
XVI32 – Hexeditor (Freeware, kein Quellcode)
In Delphi entwickelter Hexeditor von Christian Maas für 32-Bit Windowssysteme (download Version 2.4)
UDD – Universal Delphi Decompiler (ehemals Shareware, mailto:Medialight@yahoo.com)
Der Universal Delphi Decompiler erzeugt aus ausführbaren Dateien, die mit Delphi erzeugt wurden, ein Grundgerüst aus Pascal-Quelldateien und -Formularen mit leeren Methoden. (download Shareware-Version 1.2)


Weitere Links
TDBF Komponente – Open Source
XML und TAR – Delphi 32-Bit Komponenten für XML und TAR von Stefan Heymann
WDOSX – 32-Bit Konsolenprogramme mit Delphi (32-Bit) erstellen
Project JEDI – 32-Bit Komponentenbibliothek JVCL
GlyFX – Glyphs für die Programmoptik
TurboExplorer – die neuen Turbo’s von CodeGear
DelphiPraxis – das Forum für Delphi Programmierer
DSDT – Delphi Source – der Delphi Treff
QuickReport – Reportkomponentenbibliothek, Standardversion z.T. in Delphi enthalten, ältere Version 2.0K auch für Delphi 1.0
RaveReport – Reportkomponentenbibliothek, mit Delphi 7 (>=Professional) zusammen ausgeliefert
FastReport – 32-Bit Reportkomponente (ältere Version Freeware)
FreePascal – freier Pascal Compiler (32-Bit, OpenSource)
Virtual Pascal – Pascal Compiler für OS/2, WIN32 (32-Bit, Freeware)
(Open)Sibyl – Delphi-ähnlicher Pascal Compiler für OS/2 (Projekt OpenSibyl)
Win31 – DIE Internetseite für Windows 3.1
SourceForge – die Open-Source-Seiten im Netz, auch mit vielen Delphi Projekten
Sammlungen von Komponenten, Programmen etc.
DSP – Delphi Super Page (Polen), oder deutscher Mirror
Torry – Torry’s Delphi Pages (Russland)
und natürlich
Borland
Borland Developer Network BDN (ehemals Borland Community)
Borland Newsgroups