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

From Free Pascal wiki
Jump to navigationJump to search
Line 5: Line 5:
 
Аннотация: "Extract Procedure" [извлечение процедуры] принимает некоторые выбранные инструкции pascal и создает новую процедуру/метод из этого кода. Этот инструмент полезен для разделения больших процедур или для легкого создания новой процедуры из некоторого кода.
 
Аннотация: "Extract Procedure" [извлечение процедуры] принимает некоторые выбранные инструкции pascal и создает новую процедуру/метод из этого кода. Этот инструмент полезен для разделения больших процедур или для легкого создания новой процедуры из некоторого кода.
  
Basic example:
+
Основной пример:
 
<syntaxhighlight>
 
<syntaxhighlight>
 
  procedure DoSomething;
 
  procedure DoSomething;
Line 12: Line 12:
 
  end;
 
  end;
 
</syntaxhighlight>
 
</syntaxhighlight>
Select the line "CallSomething;" and do Extract Proc. A dialog pop ups and
+
Выберите строку "CallSomething;" и сделайте Extract Proc. Откроется диалоговое окно[, где]
you can select the type and name of the procedure to create. For example:
+
вы можете выбрать тип и имя создаваемой процедуры. Например:
procedure, "NewProc". Result:
+
procedure, "NewProc". Результат:
  
 
<syntaxhighlight>
 
<syntaxhighlight>
Line 28: Line 28:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
You can see, that the new procedure "NewProc" was created with the selection
+
Вы можете видеть, что новая процедура "NewProc" была создана с выделением
as body and the old code was replaced by a call.
+
в качестве тела [процедуры], и старый код был заменен [ее] вызовом.
  
Local Variables and Parameters:<br>
+
Локальные переменные и параметры:<br>
"Extract Proc" scans for used variables and automatically creates the
+
«Extract Proc» сканирует используемые переменные и автоматически создает
parameter list and local variables. Example:
+
список параметров и локальные переменные. Пример:
  
 
<syntaxhighlight>
 
<syntaxhighlight>
 
  procedure TForm1.DoSomething(var Erni, Bert: integer);
 
  procedure TForm1.DoSomething(var Erni, Bert: integer);
 
  var
 
  var
   i: Integer; // Comment
+
   i: Integer; // Комментарий
 
  begin
 
  begin
 
   Erni:=Erni+Bert;
 
   Erni:=Erni+Bert;
Line 47: Line 47:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
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.
+
Выберите цикл for и создайте новую процедуру "NewProc". Локальная переменная i используется только в выбранном [тексте], поэтому она будет перенесена в новую процедуру. [Параметр-переменная] Erni также используется в остальном коде, поэтому она станет параметром [новой процедуры].
  
Result:
+
Результат:
  
 
<syntaxhighlight>
 
<syntaxhighlight>
 
  procedure NewProc(const Erni: integer);
 
  procedure NewProc(const Erni: integer);
 
  var
 
  var
   i: Integer; // Comment
+
   i: Integer; // Комментарий
 
  begin
 
  begin
 
   for i:=Erni to 5 do begin
 
   for i:=Erni to 5 do begin
Line 68: Line 68:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
You can see "i" was moved to the new procedure (Note: including its comment) and Erni.
+
Вы можете увидеть, что "i" перенесено в новую процедуру (Примечание: включая ее комментарий) и Erni.
  
Limitations:<br>
+
Ограничения:<br>
Pascal is a very powerful language, so don't expect it will work with every code. Current limits/ToDos:
+
Pascal - очень мощный язык, поэтому не ожидайте, что он будет работать с каждым кодом. Текущие ограничения/ToDo:
* check if selection bounds on statement bounds
+
* проверить, ограничены ли границы выбора на границах операторов
* "with" statements
+
* операторы "with"

Revision as of 16:19, 7 November 2018

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


Аннотация: "Extract Procedure" [извлечение процедуры] принимает некоторые выбранные инструкции pascal и создает новую процедуру/метод из этого кода. Этот инструмент полезен для разделения больших процедур или для легкого создания новой процедуры из некоторого кода.

Основной пример:

 procedure DoSomething;
 begin
   CallSomething;
 end;

Выберите строку "CallSomething;" и сделайте Extract Proc. Откроется диалоговое окно[, где] вы можете выбрать тип и имя создаваемой процедуры. Например: procedure, "NewProc". Результат:

 procedure NewProc;
 begin
   CallSomething;
 end;
 
 procedure DoSomething;
 begin
   NewProc;
 end;

Вы можете видеть, что новая процедура "NewProc" была создана с выделением в качестве тела [процедуры], и старый код был заменен [ее] вызовом.

Локальные переменные и параметры:
«Extract Proc» сканирует используемые переменные и автоматически создает список параметров и локальные переменные. Пример:

 procedure TForm1.DoSomething(var Erni, Bert: integer);
 var
   i: Integer; // Комментарий
 begin
   Erni:=Erni+Bert;
   for i:=Erni to 5 do begin
   |
   end;
 end;

Выберите цикл for и создайте новую процедуру "NewProc". Локальная переменная i используется только в выбранном [тексте], поэтому она будет перенесена в новую процедуру. [Параметр-переменная] Erni также используется в остальном коде, поэтому она станет параметром [новой процедуры].

Результат:

 procedure NewProc(const Erni: integer);
 var
   i: Integer; // Комментарий
 begin
   for i:=Erni to 5 do begin
   |
   end;
 end;
 
 procedure TForm1.DoSomething(var Erni, Bert: integer);
 begin
   Erni:=Erni+Bert;
   NewProc(Erni);
 end;

Вы можете увидеть, что "i" перенесено в новую процедуру (Примечание: включая ее комментарий) и Erni.

Ограничения:
Pascal - очень мощный язык, поэтому не ожидайте, что он будет работать с каждым кодом. Текущие ограничения/ToDo:

  • проверить, ограничены ли границы выбора на границах операторов
  • операторы "with"