IDE Window: Extract Procedure/ru
Deutsch · English · Español · Français · Slovenčina · Suomi · Русский · 中文(中国)
Аннотация: "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"
From the Free Pascal wiki, page "IDE Window: Extract Procedure/ru", as it stood on 2020-02-17 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.