Difference between revisions of "IDE Window: Extract Procedure/zh CN"

From Free Pascal wiki
Jump to navigationJump to search
 
m (Fixed syntax highlighting; deleted category included in page template)
 
Line 4: Line 4:
  
 
基本示例:
 
基本示例:
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
  procedure DoSomething;
 
  procedure DoSomething;
 
  begin
 
  begin
Line 14: Line 14:
 
如,选择上述操作后将返回:
 
如,选择上述操作后将返回:
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
  procedure NewProc;
 
  procedure NewProc;
 
  begin
 
  begin
Line 31: Line 31:
 
局部变量和参数:它会自动创建参数列表和局部变量。例如:
 
局部变量和参数:它会自动创建参数列表和局部变量。例如:
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
  procedure TForm1.DoSomething(var Erni, Bert: integer);
 
  procedure TForm1.DoSomething(var Erni, Bert: integer);
 
  var
 
  var
Line 48: Line 48:
 
返回结果:
 
返回结果:
  
<syntaxhighlight>
+
<syntaxhighlight lang=pascal>
 
  procedure NewProc(const Erni: integer);
 
  procedure NewProc(const Erni: integer);
 
  var
 
  var
Line 74: Line 74:
 
* 检查语句选择范围
 
* 检查语句选择范围
 
* with语句
 
* with语句
 
[[Category:zh]]
 

Latest revision as of 10:43, 17 February 2020

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

摘要:选择要抽取的Pascal语句,可以从该代码上创建新过程/方法。这个工具,可以拆分大过程或者创建一个新的过程。

基本示例:

 procedure DoSomething;
 begin
   CallSomething;
 end;

选择CallSomething,以进行抽取过程(右击,选择重构->解析过程;或者,Source菜单下的重构->解析过程),在弹出的对话框中类型:过程,输入过程名,之后点击抽取。

如,选择上述操作后将返回:

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

你可以看到新的NewProc过程被创建和替换。


局部变量和参数:它会自动创建参数列表和局部变量。例如:

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

选择for循环,并创建一个新的过程NewProc。局部变量i仅在使用时选择。所以它会被移到新的程序。Erni会在之后用到,所以作为一个参数。 (右击,选择重构->解析过程;或者,Source菜单下的重构->解析过程),在弹出的对话框中类型:过程,输入过程名,之后点击抽取。

返回结果:

 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;

你可以看到i被转换到新的过程里,包括注释和Erni。

留意:

Pascal是强大的语言,但不要期望它提取的程序都可以工作。

当前限制和待办:

  • 检查语句选择范围
  • with语句