Delphi-IDE

Wie heißen die Compiler-Schalter für die verschiedenen Delphi-Versionen? updated

Folgende Compilerversionen von Borland sind bisher für PCs erschienen. In der ersten Spalte der von Hans Riedel zusammengestellten Liste findet man die Compilerdirektiven für eine von der Compilerversion abhängige Kompilierung:

-----   Turbo Pascal 1.0 for DOS               November 1983
-----   Turbo Pascal 3.0 for DOS              September 1986
-----   Turbo C 1.0 for DOS                        July 1987
VER40   Turbo Pascal 4.0 for DOS               December 1987
-----   Turbo C 1.5 for DOS                     January 1988
VER50   Turbo Pascal 5.0 for DOS                October 1988
VER55   Turbo Pascal 5.5 for DOS                    May 1989
-----   Turbo C 2.0 for DOS                         May 1989
VER60   Turbo Pascal 6.0 for DOS               November 1990
VER10   Turbo Pascal for Windows 1.0                May 1991
VER15   Turbo Pascal for Windows 1.5                    ????
VER70   Turbo Pascal 7.0 for DOS                        ????
-----   Borland C++ 3.0                        February 1992
VER70   Borland Pascal 7.0 (DOS and Windows)    October 1992
VER70   Borland Pascal 7.01(DOS and Windows)      April 1993
VER80   Delphi 1                                 August 1995
VER90   Delphi 2                                   June 1996
VER93   C++ Builder 1.0                                 ????
VER100  Delphi 3                                  March 1997
VER110  C++ Builder 3.0                                 ????
VER120  Delphi 4                                   June 1998
VER125  C++ Builder 4.0                                 ????
VER130  Delphi 5                                 August 1999
VER135  C++Builder 5.0                                  ???? 
VER140  Delphi 6                                    May 2001
Um also eine Anweisung nur vom Delphi 3-Compiler bearbeiten zu lassen, ist der entsprechende Ausdruck in folgende Compiler-Direktiven einzuschließen:

{$IFDEF VER100}
    Anweisung nur für Delphi 3;
{$ENDIF}
Weiterhin gibt es noch folgende Compilerschalter für bedingte Kompilierung:
MSDOS   Borland Pascal 7.0, 
        Target set to DOS
DPMI    Borland Pascal 7.0, 
        Target set to DOS-Protected Mode
WINDOWS Borland Pascal 7.0 and Delphi 1, 
        Target Platform is Windows 16-Bit
WIN32   Delphi 2.0 and higher, 
        Target Platform is Windows 32-Bit
CONSOLE Delphi 3.0 (?) and higher, 
        Target Platform is Windows 32-Bit Console Application
CPU386  Delphi 3.0 (?) and higher, 
        Indicates that the CPU is an Intel 386 or better.
Und so lassen sich z.B. Anweisungen nur für 32Bit-Programme oder 16Bit-Programme kompilieren:

{$IFDEF WIN32}
    Anweisung nur für 32Bit-Programme;
{$ELSE}
    Anweisung nur für 16Bit-Programme;
{$ENDIF}

Fehlende Unit "WinTypes.pas" bei der Komponenteninstalltion

Das Problem liegt darin, daß der Bibliotheksuchpfad bei dir zu lang ist. Der darf nur 1024 Zeichen lang sein. Wird er zu lang, gelten die Alias Einstellungen für die Units nicht mehr. Der Weg aus dem Dilemma ist, möglichst kurze Pfadnamen zu verwenden (z.B. per Subst) oder mehrere Komponenten in ein Verzeichnis zu installieren.

Fehlende "DsgnIntf"-Unit in Delphi 5

Wenn ich in Delphi 5 bestimmte Komponenten installieren möchte, erscheint eine Fehlermeldung [Fataler Fehler] Unit1.pas(7): Datei nicht gefunden: 'DsgnIntf.dcu'. Jedoch hab ich die Datei nicht auf meiner HDD gefunden. Was kann ich denn jetzt machen?

Das liegt daran, daß die entsprechenden Komponenten sich nicht an die Regeln gehalten haben und diese Unit im weiterzugebenden Code importieren. Die Readme.txt-Datei von D5 erklärt die Umstände der Distribution der fraglichen Unit:

"Die Datei DSGNINTF.DCU wird nicht mehr mit Delphi ausgeliefert. Sie sollten daher den Entwurfszeit-Code vom Laufzeit-Code trennen und in eigenen Units verwalten. Verweisen Sie im Laufzeit-Code nicht auf diese Entwurfszeit-Units.

Sie können natürlich auch die Datei DSGNINTF.PAS (im Verzeichnis \source\toolsapi\) compilieren. Diese Methode ist aber nur ein Notbehelf und in künftigen Versionen möglicherweise nicht mehr verfügbar.

Denken Sie auch daran, daß Sie entsprechend der Lizenzbestimmungen keine DCUs weitergeben dürfen, die auf Quellcode von Inprise Corporation basieren, auch wenn Ihnen dieser zur Verfügung steht. Genaue Informationen zu diesem Thema finden Sie in den Textdateien LICENSE.TXT und DEPLOY.TXT, die zusammen mit Delphi installiert werden."

Also: Wenn einem eine solche Komponente unterkommt, sollte man den Author informieren und ihn um eine Korrketur bitten.

Probleme bei der Installation von Komponenten ohne Quellcode

Ich habe ein paar ältere Komponenten ohne Quellcode (nur die *.dcu-Dateien) , die ich gerne in die Delphi 5 - Komponentenpalette aufnehmen würde. In D4 konnte ich die Komponente installieren, in D5 gibt's eine Fehlermeldung, daß die *.pas-Datei nicht gefunden wurde. Mache ich etwas falsch?

[Sven Opitz:] Du machst nichts falsch, aber bisher waren die kompilierten dcu-Dateien immer von Delphi-Version zu Delphi-Version inkompatibel und ich bezweifle, daß sich daran etwas ändern wird. Eine z.B. mit D4 kompilierte Unit läßt sich also ohne Quelltext in einer anderen Delphi-Version nicht installieren. Deshalb setze ich nur Komponenten ein, deren Quelltext ich habe, oder deren Hersteller mir zumindest schriftlich garantiert, daß er ebendiese Komponenten kostenlos oder zu einem Updatepreis an die neuen Delphi-Versionen anpaßt. Letzteres führt bei manchen Herstellern zwar zu Unmut, für mich aber zu Erleichterung.

Zeilen im Quelltexteditor mit Lesezeichen markieren

Mit folgenden Tastenkombinationen kann man im Quelltexteditor der Delphi-IDE Zeilen mit einem Lesezeichen markien und später direkt wieder anspringen:

Ein Lesezeichen setzen/löschen: [Strg]-[K]-[1..9]

Zu einem Lesezeichen springen: [Strg]-[Q]-[1..9]

Wie kann ich Textblöcke im Delphi-Editor einrücken?

Der Block muß markiert sein. Dann CTRL+K und danach I um den Block ein Zeichen einzurücken oder CTRL + K und danach U um den Block ein Zeichen zurückzusetzen.

Weitere Blockbefehle in der IDE:
Strg+Pfeiltasten: Verschiebt die ausgewählte Komponente um jeweils einen Pixel.
Umschalt+Pfeiltasten: Vergrößert/Verkleinert die ausgewählte Komponente um jeweils einen Pixel
Strg+Umschalt+Pfeiltasten: Verschiebt die ausgewählte Komponente um jeweils eine Gitterlinie.

Wie wird der Blockmodus beim Markieren im Quelltexteditor abgeschaltet?

Wenn ich einen Textblock im Delphi-Quelltexteditor mit der Tastatur spaltenweise markieren möchte, halte ich beim Markieren die [Alt]-Taste gedrückt. Wie kann ich den Blockmodus aber wieder abschalten?

Hallo, wenn man das klassische Tastaturlayout verwendet (Umgebungsoptionen -> Editor -> IDE-Klassisch), dann funktionieren folgende Tastenkombinationen:

Blockmode einschalten: Shift + Alt + irgendeine Pfeiltaste
Blockmode ausschalten: Ctrl + K, L

Gibt es eine Übersicht über die verfügbaren Tastenkombinationen in der Delphi-IDE?

Eine Übersicht über die in der Delphi-IDE verfügbaren Tastatur-Tastaturkombinationen findet man in dieser Datei von der Inprise Technical Information Database.

Dort sind nicht nur die Editor-Shortcuts aufgeführt, sondern auch Tastenkombinationen für folgende Teile der IDE:

Wie kann ich eine fremde Hilfedatei in das Delphi-Hilfesystem einbinden?

Bis Delphi 2 benötigte man dafür .kwf-Dateien und das Tool Helpinst, ab Delphi 3 benötigt man jedoch .cnt-Dateien zusätzlich zur eigentlichen Hilfedatei (.hlp).

Ab Delphi 3 sind dann 3 Schritte erforderlich:

1. Hilfedatei ins Verzeichnis \Programme\Borland\Delphi 3\Help\ kopieren.
   (der Pfad könnte natürlich bei Dir anders aussehen)
2. Eine Zeile zur "Index"-Sektion von Delphi3.CNT hinzufügen. Beispiel:
   :Index Signal Display Component Help=ZoomDisp.hlp 
3. Eine Zeile zur "Third-Party Help"-Sektion von DELPHI3.CFG hinzufuegen. Beispiel:
   :Link ZoomDisp.hlp 

Was kann ich tun, wenn das IDE-Fenster mit den Menüs und der Komponentenpalette nicht erscheint?

Versuch mal, die Datei Delphi32.dsk im BIN-Verzeichnis zu löschen oder umzubenennen. Dann sollten beim nächsten Delphi-Start wieder die Standard-Einstellungen des Desktops geladen werden.

Die Komponentenpalette in eine neue Delphi-Installation übernehmen

Ich muß mein Windows neu installieren. Was muß ich sichern, damit ich meine Komponenten, die ich so fantastisch sortiert habe, nicht noch einmal sortieren muss?

Dazu muß man einen bestimmten Zweig der Registrierdatenbank sichern:

1.Registriereditor mittels regedit.exe starten.
2. Den Zweig: "HKEY_CURRENT_USER\Software\Borland" exportieren.
3. Nach der Neuinstallation besagten Zweig wieder importieren.

Das ganze funktioniert auch unter Windows NT/2k, wenn man als Administrator Delphi installiert und konfiguriert hat. Der Admin kann dann den o.g. Zweig auch exportieren und normalen Benutzern zum Import zur Verfuegung stellen.

Die Onlinehilfe zur Windows-API in das Delphi-Hilfesystem integrieren

Wenn ich Hilfe zu einem API-Befehl brauche und per F1 die Onlinehilfe aufrufe, findet das Hilfesystem das Thema nicht, weil es in der Hilfedatei zur Windows-API "Win32.hlp"? steht. Wie kann ich diese Hilfedatei so einbinden, daß auch API-Themen automatisch gefunden werden?

Marco Körner weiß rat: Man muß den Pfad zu der WinApi-Hilfe "reparieren":

1.) D4 beenden
2.) Delphi\Bin\oh.exe starten
3.) Delphi\Help\delphi4.ohp öffnen
4.) Win32.hlp in den Registern "Index" und "Verknüpfung" entfernen und wieder hinzufügen
5.) Speichern und Beenden
6.) D4 starten
7.) z.B. "Rect" in einer Unit eintippen und F1 drücken
8.) Sich freuen
9.) Sich ärgern, daß man das nicht schon vorher wußte