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

From Free Pascal wiki
Jump to navigationJump to search
m (Fixed syntax highlighting)
 
Line 6: Line 6:
  
 
Основной пример:
 
Основной пример:
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
  procedure DoSomething;
 
  procedure DoSomething;
 
  begin
 
  begin
Line 16: Line 16:
 
procedure, "NewProc". Результат:
 
procedure, "NewProc". Результат:
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
  procedure NewProc;
 
  procedure NewProc;
 
  begin
 
  begin
Line 35: Line 35:
 
список параметров и локальные переменные. Пример:
 
список параметров и локальные переменные. Пример:
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
  procedure TForm1.DoSomething(var Erni, Bert: integer);
 
  procedure TForm1.DoSomething(var Erni, Bert: integer);
 
  var
 
  var
Line 51: Line 51:
 
Результат:
 
Результат:
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
  procedure NewProc(const Erni: integer);
 
  procedure NewProc(const Erni: integer);
 
  var
 
  var

Latest revision as of 10:42, 17 February 2020

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"