Delphi-IDE
Wie heißen die Compiler-Schalter für die verschiedenen Delphi-Versionen?
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 2001Um 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} |
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