请刘麻子等已经用上Delphi2006的富翁进来一下,帮个小忙(关于代码折叠功能) ( 积分: 0 )

  • 主题发起人 主题发起人 陷队之士
  • 开始时间 开始时间

陷队之士

Unregistered / Unconfirmed
GUEST, unregistred user!
最近看到很多富翁都装上Delphi2006了,都说不错,心里很痒啊![:D]
不过,还有些疑问。看到刘麻子在线,想请你帮忙抓个图给我展示一下。
procedure GetName;
var
Lst: TStringList;
i: Integer;
begin
Lst := TStringList.Create;
i := 0;
try // 1: try..finally..end
case i of // 2: case..end
0: Lst.Add('0');
1:
begin // 3: begin..end
Lst.Add('aaaaaaaa');
Lst.Add('aaaaaaaa');
end;
end;
finally
Lst.Free;
end;
end;
请用Delphi2006展示一下上面这段代码的3处地方的代码折叠功能。
多谢!!!
 
最近看到很多富翁都装上Delphi2006了,都说不错,心里很痒啊![:D]
不过,还有些疑问。看到刘麻子在线,想请你帮忙抓个图给我展示一下。
procedure GetName;
var
Lst: TStringList;
i: Integer;
begin
Lst := TStringList.Create;
i := 0;
try // 1: try..finally..end
case i of // 2: case..end
0: Lst.Add('0');
1:
begin // 3: begin..end
Lst.Add('aaaaaaaa');
Lst.Add('aaaaaaaa');
end;
end;
finally
Lst.Free;
end;
end;
请用Delphi2006展示一下上面这段代码的3处地方的代码折叠功能。
多谢!!!
 
啊? 帮忙倒是可以, 但图片如何传给您呢? :~)
 
试了一下, 只有"procedure GetName();"处, 也就是整个函数可以折叠, 而try/case没有..
 
?????只有函数头部可以???
那有什么用啊?!
我的信箱:Sword-Light@163.com,保存成.gif或.jpg文件,小一些。
 
刘麻子:
请看CSDN的这个帖子,好像可以,你再看看
http://community.csdn.net/Expert/topic/4445/4445241.xml?temp=6.899661E-02
你把邮箱留下,我给你发一个图,是网上一个小软件的抓图,感觉不错!
 
Delphi的代码折叠的确只能折叠到函数或者类型定义
已经发了个图, 连 Begin 和 End 之间都不能
 
lich大侠,我给你发了一封信,有图片附件,你看看吧
 
不过我觉得代码折叠的功能很有创意,但实际上没有多大的实用价值

我一般是不用的,即使要用也会觉得比较麻烦
 
这个功能真不错,
我非常喜欢代码折叠的功能,
2006中函数中的代码折叠功能都有了,呵呵其实也有很多用处的啊,
折叠起来以后看着更清晰啊,尤其是折叠的名字也同时起到了注释的左右,对整个流程看的比较直观
 
lich大侠,我以前和你的看法一样,但后来改变了,觉得代码折叠功能确实很有用啊!
尤其是在看别人源码的时候,有时遇到大段大段的、结构复杂的代码时,代码折叠功能
可以帮助你很快理顺源码的结构,不至于头晕眼花的。但象Delphi2005、2006中那样,
仅仅将函数折叠了,倒是意义不大。
 
来如风:
据说这样可以实现任意代码的折叠,

“而且你可以选中要折叠的代码块,然后右键菜单->Surround-> region 就可以把要折叠的代码块折叠起来,而且这个折叠的代码块还可以自由命名,比如:

{$REGION '我的代码块'}
begin
ShowMessage('Hello!');
end;
{$ENDREGION}

你把以上代码拷贝到编辑器里看一下就知道了

你帮我看看怎样能使代码中所有的begin..end折叠呢?多谢!
 
用{$region 'try..finally..end'}和 {$endregion}
可实现折叠

procedure GetName;
var
Lst: TStringList;
i: Integer;
begin
Lst := TStringList.Create;
i := 0;
{$region 'try..finally..end'}
try // 1: try..finally..end
{$region 'case..end'}
case i of // 2: case..end
0: Lst.Add('0');
1:
begin // 3: begin..end
Lst.Add('aaaaaaaa');
Lst.Add('aaaaaaaa');
end;
end;
{$endregion}
finally
Lst.Free;
end;
{$endregion}

end;
 
wangminqi:
多谢!
每段想要折叠的功能都需要自己手工设置吗?还是在某个地方设置一下,以后就变成自动
的了呢?
 
to 陷队之士:
我说的 函数<中>的代码折叠 就是你的那个意思,比如折叠后成为
if .. then
这里干这个
else
那么就干这个吧

这样看着很直观的啊:) 注释短的话用region的名字就可以代替了

对于所有的begin end折叠我也不知道,也许cnpack很快就有了吧,既然begin end之间可以画线提示,那么前后加上 region 也不会很难的吧:)
 
来如风:
看来还是不能做到“自动”,必须自己手工设置,而且设置一段,折叠一段,再设置一段
再折叠一段。唉……这很麻烦啊!!!我自己要是知道哪些代码属于一个代码块,那还用
什么折叠啊?!不爽!!!
 
函数、过程是自动的,而自己需要的要手工加
 
wangminqi:
我需要的是编辑器能够自动识别、折叠、展开下列代码块:
1、所有begin..end
2、所有try..end
3、所有case..end
4、所有超过两行以上的连续注释
至于函数折叠,真是没什么必要
 
在编辑器上是否有此功能我不清楚
但我有个笨办法就是由替换文本的方法,把begin 替换成
{$REGION 'Begin'} begin
把try替换成
{$REGION 'try'} try
把 end 替换成 end {$ENDREGION}
就可以了
 
wangminqi:
就目前的情况,看来也只有用你这个方法了。
不过,我还有点疑问,你帮我测试一下,就是如果在注释块中出现了begin..end,那会不
会也被折叠呢?按理来说,这种情况下的begin..end是不应该被折叠的。
你帮我看一下。
比如:
{
begin
sdfadsfasdfasd
end;
}
多谢!
 
后退
顶部