Difference between revisions of "IDE Window: Extract Procedure/de"
m (Spelling) |
m (fix syntax) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
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. | 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. | ||
− | + | Ein einfaches Beispiel: | |
+ | |||
+ | <syntaxhighlight lang=pascal> | ||
procedure DoSomething; | procedure DoSomething; | ||
begin | begin | ||
CallSomething; | CallSomething; | ||
end; | end; | ||
+ | </syntaxhighlight> | ||
+ | |||
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: | 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: | procedure, "NewProc". Ergebnis: | ||
+ | |||
+ | <syntaxhighlight lang=pascal> | ||
procedure NewProc; | procedure NewProc; | ||
begin | begin | ||
Line 19: | Line 25: | ||
NewProc; | NewProc; | ||
end; | end; | ||
+ | </syntaxhighlight> | ||
+ | |||
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. | 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. | ||
Lokale Variablen und Parameter:<br> | Lokale Variablen und Parameter:<br> | ||
"Prozedur extrahieren" scannt nach verwendeten Variablen und erzeugt automatisch die Parameterliste und lokalen Variablen. Beispiel: | "Prozedur extrahieren" scannt nach verwendeten Variablen und erzeugt automatisch die Parameterliste und lokalen Variablen. Beispiel: | ||
+ | |||
+ | <syntaxhighlight lang=pascal> | ||
procedure TForm1.DoSomething(var Erni, Bert: integer); | procedure TForm1.DoSomething(var Erni, Bert: integer); | ||
var | var | ||
Line 32: | Line 42: | ||
end; | end; | ||
end; | end; | ||
+ | </syntaxhighlight> | ||
+ | |||
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. | 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. | ||
− | Ergebnis:< | + | Ergebnis: |
+ | |||
+ | <syntaxhighlight lang=pascal> | ||
procedure NewProc(const Erni: integer); | procedure NewProc(const Erni: integer); | ||
var | var | ||
Line 49: | Line 63: | ||
NewProc(Erni); | NewProc(Erni); | ||
end; | end; | ||
+ | </syntaxhighlight> | ||
Sie können sehen, dass "i" in die neue Prozedur verschoben wurde (Anmerkung: inklusive des Kommentars) und Erni. | Sie können sehen, dass "i" in die neue Prozedur verschoben wurde (Anmerkung: inklusive des Kommentars) und Erni. | ||
− | Grenzen: | + | Grenzen: |
+ | |||
Pascal ist eine sehr mächtige Sprache. Erwarten sie daher nicht, dass es mit jedem Code funktioniert. Aktuelle Limits/ToDos: | Pascal ist eine sehr mächtige Sprache. Erwarten sie daher nicht, dass es mit jedem Code funktioniert. Aktuelle Limits/ToDos: | ||
* prüfen, ob die Auswahl vollständige Anweisungen enthält | * prüfen, ob die Auswahl vollständige Anweisungen enthält | ||
* "with" Anweisungen | * "with" Anweisungen |
Latest revision as of 01:28, 9 May 2020
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
русский (ru) │
slovenčina (sk) │
中文(中国大陆) (zh_CN) │
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.
Ein einfaches Beispiel:
procedure DoSomething;
begin
CallSomething;
end;
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:
procedure NewProc;
begin
CallSomething;
end;
procedure DoSomething;
begin
NewProc;
end;
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.
Lokale Variablen und Parameter:
"Prozedur extrahieren" scannt nach verwendeten Variablen und erzeugt automatisch die Parameterliste und lokalen Variablen. Beispiel:
procedure TForm1.DoSomething(var Erni, Bert: integer);
var
i: Integer; // Kommentar
begin
Erni:=Erni+Bert;
for i:=Erni to 5 do begin
|
end;
end;
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.
Ergebnis:
procedure NewProc(const Erni: integer);
var
i: Integer; // Kommentar
begin
for i:=Erni to 5 do begin
|
end;
end;
procedure TForm1.DoSomething(var Erni, Bert: integer);
begin
Erni:=Erni+Bert;
NewProc(Erni);
end;
Sie können sehen, dass "i" in die neue Prozedur verschoben wurde (Anmerkung: inklusive des Kommentars) und Erni.
Grenzen:
Pascal ist eine sehr mächtige Sprache. Erwarten sie daher nicht, dass es mit jedem Code funktioniert. Aktuelle Limits/ToDos:
- prüfen, ob die Auswahl vollständige Anweisungen enthält
- "with" Anweisungen