Sign in Join
Wiki copytemporary

IDE tricks/de: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11# Erzeugen einer neuen Datei mit 'Datei Öffnen'
22
3-Sie können eine neue Datei erzeugen und speichern, oder sie können eine neue Datei erzeugen mit Dateiname und Dateityp in einem Schritt: Gehen sie zu Datei -\> Öffnen <span class="kbd">Ctrl</span>+<span class="kbd">o</span> und wählen eine nicht existierende Datei. Zum Beispiel: unit1.pas. Die IDE wird sie fragen, ob die Datei erzeugt werden soll.
3+Sie können eine neue Datei erzeugen und speichern, oder sie können eine neue Datei erzeugen mit Dateiname und Dateityp in einem Schritt: Gehen sie zu Datei -\> Öffnen `Ctrl`+`o` und wählen eine nicht existierende Datei. Zum Beispiel: unit1.pas. Die IDE wird sie fragen, ob die Datei erzeugt werden soll.
44
55# Den Befehl 'Neue Unit / Neue Form' anpassen
66
77Seit Version 0.9.27 können Sie auf den Knopf 'Neue Unit' (Neue Form) rechts klicken und einstellen, welcher Dateityp erzeugt werden soll. Sie können weitere Dateitypen über das **IDEIntf** oder das **project templates package** registrieren.
88
99# IDE Makros
1010
1111siehe [[IDE Macros in paths and filenames/de|IDE Makros in Pfaden und Dateinamen]]
1212
1313# IDE Direktiven
1414
1515siehe [[IDE directives]]
1616
1717# Die von der IDE erzeugten Compiler-Kommandozeilenparameter erhalten
1818
1919Sie können die Parameter von "Projekt -\> Compilereinstellungen -\> Einstellungen anzeigen" kopieren. Alle Pfade sind relativ zum Projektverzeichnis. Daher können sie sie in den meisten Fällen ohne Anpassung kopieren.
2020
2121Die Parameter werden auch in der Datei "*.compiled" gespeichert. Heißt ihr Projekt zum Beispiel "test1.lpi", dann wird die Datei "test1.compiled" im selben Verzeichnis wie das executable erzeugt. Es ist eine einfache XML-Textdatei. Man kann deshalb einfach die Einstellungen kopieren und die Pfade anpassen, um das Projekt auch auf einem anderen Computer zu kompilieren.
2222
2323Für Packages funktioniert es auf die gleiche Weise.
2424
2525Auf diese Weise können sie ihren (hoffentlich fehlerfreien und funktionierenden) Code auch außerhalb der Lazarus IDE kompilieren.
2626
2727# Schließen aller Editorseiten (außer der aktuellen Seite)
2828
29-Unter GTK (verfügbar für Linux, Mac OS X und FreeBSD) haben die Quelltexteditorseiten einen Schließen-Button rechts von ihrem Seitennamen. Drücken sie die <span class="kbd">Ctrl</span> Taste, während sie auf den Button klicken, werden alle Dateien geschlossen ausgenommen der angeklickten.
29+Unter GTK (verfügbar für Linux, Mac OS X und FreeBSD) haben die Quelltexteditorseiten einen Schließen-Button rechts von ihrem Seitennamen. Drücken sie die `Ctrl` Taste, während sie auf den Button klicken, werden alle Dateien geschlossen ausgenommen der angeklickten.
3030
3131# Komponentenpalette
3232
3333## Finden einer Komponente in der Palette
3434
3535Sie kennen den Komponentennamen, oder einen Teil davon, aber sie wissen nicht, auf welcher Seite sie ist? Dieses Werkzeug findet sie: Klicken sie rechts auf eine Komponente in der Palette um das Popup-Menü zu öffnen. Wählen sie 'Komponente finden'. Geben sie den Teil des Namens ein, um die Liste zu filtern.
3636
3737## Öffnen des Packages einer Komponente in der Palette
3838
3939Klicken sie rechts auf die Komponente um das Popup-Menü zu öffnen, dann wählen sie 'Open Package...'.
4040
4141## Finden der source declaration einer Komponente in der Palette
4242
4343Klicken sie rechts auf die Komponente um das Popup-Menü zu öffnen, dann wählen sie 'Open Unit...'.
4444
4545# Meine Anwendung friert meinen Linux Desktop ein während des Debuggens
4646
4747X (Ihr Desktop) kann einfrieren, wenn eine Anwendung, die die Mausereignisse abfängt, durch gdb (den Debugger) gestoppt wird.
4848
4949## Verwendung einer zweiten X Session
5050
5151Sie können einen zweiten X starten durch:
5252
5353`  X :1 &`
5454
55-mit <span class="kbd">Ctrl</span>+<span class="kbd">Alt</span>+<span class="kbd">F7</span> wechseln Sie zu to :0 und mit <span class="kbd">Ctrl</span>+<span class="kbd">Alt</span>+<span class="kbd">F8</span> wechseln Sie zu :1 Danach können Sie eine zweite Gnome Session starten durch:
55+mit `Ctrl`+`Alt`+`F7` wechseln Sie zu to :0 und mit `Ctrl`+`Alt`+`F8` wechseln Sie zu :1 Danach können Sie eine zweite Gnome Session starten durch:
5656
5757`  gnome-session --display=:1 &`
5858
5959## Verwendung von VNC
6060
6161Sie können vncserver/client verwenden durch installing tightvncserver/realvncserver Starten Sie den Server mit:
6262
6363`  vncserver :1`
6464
6565AFAIK wird auch eine Session gestartet. Sie können zum vncserver verbinden mit vncviewer.
6666
6767## Debuggen der Anwendung auf dem zweiten Server
6868
6969In Lazarus, in den Startparametern für ihr Projekt, prüfen Sie "use display" und geben ein
7070
7171` :1`
7272
7373Jetzt wird Ihre Anwendung auf dem zweiten Server laufen. So kann während des Debuggens nur der zweite Server einfrieren (aber das wird Sie nicht beeinflussen, da Sie auf dem ersten debuggen).
7474
7575# Schnelle Kompilierung der IDE
7676
7777Das Arbeiten an Lazarus selbst erfordert häufig ein Neuerstellen der IDE. Wenn Sie die folgenden Tricks anwenden, genug Arbeitsspeicher und eine aktuelle CPU haben, sollten Sie in der Lage sein, die IDE in einigen Sekunden zu rekompilieren.
7878
7979- Legen Sie die Lazarus Quellen auf einer schnellen Festplatte ab, nicht in einem langsamen Netzwerk-Dateisystem.
8080- Installieren Sie nur die benötigten Packages.
8181- Setzen Sie USESVN2REVISIONINC=0 um das Aktualisieren von revision.inc zu überspringen.
8282- Kompilieren Sie nur Teile. Wenn die packager registration rekompiliert ist, dann sind auch alle installierten Packages rekompiliert. Wenn IDEIntf rekompiliert ist, dann sind alle installierten Entwicklungszeit-Packages rekompiliert.
8383
8484# DebugLn der IDE oder einer LCL Anwendung
8585
8686Die IDE gibt viele hilfreiche Hinweise mittels debugln aus. Unter Windows können Sie diese erhalten, indem Sie Lazarus mit dem Kommandozeilenparameter *--debug-log=filename.txt* starten. Unter Linux/BSD/Mac OS X/Solaris: Starten Sie Lazarus einfach in einem Terminal. Dies ist ein normales LCL Feature.
8787
8888# Finden der Quelldatei eines IDE Fensters
8989
9090- Öffnen Sie das IDE Fenster.
91-- Drücken Sie <span class="kbd">Ctrl</span>+<span class="kbd">Shift</span>+<span class="kbd">F1</span> um den Hilfeeditor zu öffnen.
91+- Drücken Sie `Ctrl`+`Shift`+`F1` um den Hilfeeditor zu öffnen.
9292- Merken Sie sich den Fenster-Klassennamen. Schliessen Sie das Fenster.
9393- Verwenden Sie [[IDE Window: Find in files/de|In Dateien suchen]] um die Quelldatei der Klasse zu finden.
9494
9595# Objektinspektor: Ereignisse: Frames: Sprung zum Quelltext eines geerbten Ereignisses
9696
97-Der Objektinspektor zeigt die Ereignisse von geerbten Ereignissen an als *ClassName.MethodName*. Ein Doppelklick erzeugt ein neues Ereignis. <span class="kbd">Ctrl</span> + Mausklick auf die Kombobox springt direkt zum Rumpf der geerbten Methode, ohne eine neue Methode zu erzeugen.
97+Der Objektinspektor zeigt die Ereignisse von geerbten Ereignissen an als *ClassName.MethodName*. Ein Doppelklick erzeugt ein neues Ereignis. `Ctrl` + Mausklick auf die Kombobox springt direkt zum Rumpf der geerbten Methode, ohne eine neue Methode zu erzeugen.
9898
9999# Ereignisse (Method properties) im Objektinspektor
100100
101101Ereignisse (Method properties) sind spezielle Eigenschaften, weil sie als Wert einen Zeiger auf eine Code-Adresse benötigen, der zur Entwurfszeit nicht existiert. Deshalb verwendet Lazarus den selben Trick wie die Delphi IDE: Jeder Methodenwert kann auf **TMethod** gecasted werden, die "Data" (den Objekt-oder Klassenzeiger) und "Code" (den Adresszeiger) enthält. Zur Laufzeit sind beide gesetzt. Aber zur Entwurfzeit setzt die IDE Data auf einen besonderen Schlüsselwert für ihre interne Nachschlagtabelle und setzt Code auf nil. Das bedeutet:
102102
103103- Zur Laufzeit (wenn das Programm die .lfm-Datei lädt) wird die tatsächliche Methode (Data+Code) verwendet.
104104- Zur Entwurfszeit kann ein Methodenwert entweder eine wirkliche Methode (Data\<\>nil und Code\<\>nil) oder eine Ersatzmethode (Data\<\>nil,Code=nil) sein.
105105- der Compiler hat zur Kompatibilität mit Delphi einige Besonderheiten zum Vergleich von Methodenwerten.
106106
107107Verwenden Sie nicht:
108108
109109``` pascal
110110if OnMyEvent <> nil then OnMyEvent(...); // falsch, weil es auch Data prüft
111111```
112112
113113Weil dies sowohl Data als auch Code prüft, wird die Ersatzmethode ausgeführt und das ergibt einen Sprung zu nil. Dadurch wird nur eine Exception ausgelöst, also wenig Schaden angerichte, aber die IDE zeigt dem Benutzer eine Fehlermeldung. Nehmen Sie stattdessen die Funktion 'Assigned':
114114
115115``` pascal
116116if Assigned(OnMyEvent) then OnMyEvent(...); // korrekt, überprüft nur Code
117117```
118118
119119Verwenden Sie nicht:
120120
121121``` pascal
122122if OnMyEvent = NewValue then exit; // wrong, because it compares only Code
123123```
124124
125125Weil dies nur den Code vergleicht. Nehmen Sie stattdessen:
126126
127127``` pascal
128128if CompareMem(@FOnMyEvent, @NewValue, SizeOf(TMethod)) then exit; // correct, checking both Data and Code
129129```
130130
131131---
132132*From the Free Pascal wiki, page "IDE tricks/de", as it stood on 2020-02-17 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history