Sign in Join
Wiki copytemporary

IDE Window: Extract Procedure/de: what changed

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

Title: IDE Window: Extract Procedure/de

OldNewLine
1+Kurz gefasst: "Prozedur extrahieren" nimmt einige ausgewählte Pascal Anweisungen und erzeugt eine neue Prozedur/Methode aus diesem Code. Dieses Werkzeug ist hilfreich, um große Prozeduren aufzuteilen oder um leicht eine neue Prozedur aus einigem Code zu erzeugen.
2+
3+Ein einfaches Beispiel:
4+
5+``` pascal
6+ procedure DoSomething;
7+ begin
8+ CallSomething;
9+ end;
10+```
11+
12+Markieren sie die Zeile "CallSomething;" und wählen "Prozedur extrahieren". Ein Dialog erscheint und sie können den Typ und Namen der zu erstellenden Prozedur wählen. Zum Beispiel: procedure, "NewProc". Ergebnis:
13+
14+``` pascal
15+ procedure NewProc;
16+ begin
17+ CallSomething;
18+ end;
19+
20+ procedure DoSomething;
21+ begin
22+ NewProc;
23+ end;
24+```
25+
26+Sie können sehen, dass die neue Prozedur "NewProc" erzeugt wurde mit der Abgrenzung als Rumpf und der alte Code durch einen Aufruf ersetzt wurde.
27+
28+Lokale Variablen und Parameter:\
29+"Prozedur extrahieren" scannt nach verwendeten Variablen und erzeugt automatisch die Parameterliste und lokalen Variablen. Beispiel:
30+
31+``` pascal
32+ procedure TForm1.DoSomething(var Erni, Bert: integer);
33+ var
34+ i: Integer; // Kommentar
35+ begin
36+ Erni:=Erni+Bert;
37+ for i:=Erni to 5 do begin
38+ |
39+ end;
40+ end;
41+```
42+
43+Markieren sie die *for* Schleife und erzeugen eine neue Prozedur "NewProc". Die lokale Variable i wird nur in der Auswahl verwendet, daher wird sie in die neue Prozedur verschoben. Erni wird auch im übrigen Code verwendet. Daher wird er ein Parameter.
44+
45+Ergebnis:
46+
47+``` pascal
48+ procedure NewProc(const Erni: integer);
49+ var
50+ i: Integer; // Kommentar
51+ begin
52+ for i:=Erni to 5 do begin
53+ |
54+ end;
55+ end;
56+
57+ procedure TForm1.DoSomething(var Erni, Bert: integer);
58+ begin
59+ Erni:=Erni+Bert;
60+ NewProc(Erni);
61+ end;
62+```
63+
64+Sie können sehen, dass "i" in die neue Prozedur verschoben wurde (Anmerkung: inklusive des Kommentars) und Erni.
65+
66+Grenzen:
67+
68+Pascal ist eine sehr mächtige Sprache. Erwarten sie daher nicht, dass es mit jedem Code funktioniert. Aktuelle Limits/ToDos:
69+
70+- prüfen, ob die Auswahl vollständige Anweisungen enthält
71+- "with" Anweisungen
72+
73+---
74+*From the Free Pascal wiki, page "IDE Window: Extract Procedure/de", as it stood on 2020-05-08 after a change by Kai Burghardt, 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