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.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
