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

From Lazarus wiki
Jump to navigationJump to search
(New page: {{IDE Window: Extract Procedure}} category:Castellanocategory:Español Abstract: "Extract Procedure" takes some selected pascal statements and creates a new procedure/method from t...)
 
Line 1: Line 1:
 
{{IDE Window: Extract Procedure}}
 
{{IDE Window: Extract Procedure}}
 
[[category:Castellano]][[category:Español]]
 
[[category:Castellano]][[category:Español]]
Abstract: "Extract Procedure" takes some selected pascal statements and creates a new procedure/method from this code. This tool is useful to split big procedures or to easily create a new procedure from some code.
 
  
Basic example:
+
Resumen: "Extraer Procedimiento" toma las sentencias pascal seleccionadas y crea un nuevo procedimiento o método con ese código. Esta utilidad
<pascal>
+
takes some selected pascal statements and creates a new procedure/method from this code. Esta herramienta es útil para dividir procedimientos muy grandes, o para crear fácilmente un nuevo procedimiento a partir de algo de código.
procedure DoSomething;
+
 
 +
Ejemplo básico:
 +
<delphi> procedure DoSomething;
 
  begin
 
  begin
 
   CallSomething;
 
   CallSomething;
  end;
+
  end;</delphi>
</pascal>
+
 
 
Select the line "CallSomething;" and do Extract Proc. A dialog pop ups and
 
Select the line "CallSomething;" and do Extract Proc. A dialog pop ups and
 
you can select the type and name of the procedure to create. For example:
 
you can select the type and name of the procedure to create. For example:

Revision as of 09:37, 3 July 2008

Deutsch (de) English (en) español (es) suomi (fi) français (fr) русский (ru) slovenčina (sk) 中文(中国大陆)‎ (zh_CN)

Resumen: "Extraer Procedimiento" toma las sentencias pascal seleccionadas y crea un nuevo procedimiento o método con ese código. Esta utilidad takes some selected pascal statements and creates a new procedure/method from this code. Esta herramienta es útil para dividir procedimientos muy grandes, o para crear fácilmente un nuevo procedimiento a partir de algo de código.

Ejemplo básico: <delphi> procedure DoSomething;

begin
  CallSomething;
end;</delphi>

Select the line "CallSomething;" and do Extract Proc. A dialog pop ups and you can select the type and name of the procedure to create. For example: procedure, "NewProc". Result:

<pascal>

procedure NewProc;
begin
  CallSomething;
end;

procedure DoSomething;
begin
  NewProc;
end;

</pascal>

You can see, that the new procedure "NewProc" was created with the selection as body and the old code was replaced by a call.

Local Variables and Parameters:
"Extract Proc" scans for used variables and automatically creates the parameter list and local variables. Example:

<pascal>

procedure TForm1.DoSomething(var Erni, Bert: integer);
var
  i: Integer; // Comment
begin
  Erni:=Erni+Bert;
  for i:=Erni to 5 do begin
  |
  end;
end;

</pascal>

Select the for loop and create a new Procedure "NewProc". The local variable i is only used in the selection, so it will be moved to the new procedure. Erni is also used in the remaining code, so it will become a parameter.

Result:

<pascal>

procedure NewProc(const Erni: integer);
var
  i: Integer; // Comment
begin
  for i:=Erni to 5 do begin
  |
  end;
end;

procedure TForm1.DoSomething(var Erni, Bert: integer);
begin
  Erni:=Erni+Bert;
  NewProc(Erni);
end;

</pascal>

You can see "i" was moved to the new procedure (Note: including its comment) and Erni.

Limitations:
Pascal is a very powerful language, so don't expect it will work with every code. Current limits/ToDos:

  • check if selection bounds on statement bounds
  • "with" statements