Difference between revisions of "IDE Window: Extract Procedure/de"

From Free Pascal wiki
Jump to navigationJump to search
m
m (fix syntax)
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{IDE Window: Extract Procedure}}
 
{{IDE Window: Extract Procedure}}
  
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.
  
Einfaches Beispiel:<br>
+
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;
Sie können sehen, daß die neue Prozedur "NewProc" erzeugt wurde mit der Abgrenzung als Rumpf und der alte Code durch einen Aufruf ersetzt wurde.
+
</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.
  
 
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;
Markieren sie die ''for'' Schleife und erezugen 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.
+
</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.
 +
 
 +
Ergebnis:
  
Ergebnis:<br>
+
<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, daß "i" in die neue Prozedur verschoben wurde (Anmerkung: inklusive des Kommentars) und Erni.
+
Grenzen:
  
Grenzen:<br>
+
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, daß 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