【发布时间】:2012-11-23 07:18:45
【问题描述】:
一直按Ctrl+S 是我的一个很矛盾的习惯。不利的一面是,delphi 在保存时会删除空函数/过程。
有没有办法防止 IDE 在保存时删除具有空主体的函数/过程?
【问题讨论】:
-
这仅发生在事件处理程序中。立即写下它们或用 todo 评论它们
-
@user539484 请把它作为答案发布
一直按Ctrl+S 是我的一个很矛盾的习惯。不利的一面是,delphi 在保存时会删除空函数/过程。
有没有办法防止 IDE 在保存时删除具有空主体的函数/过程?
【问题讨论】:
根据 OP 请求从评论转换而来。我的评论太小了,无法回答,所以我将添加一些可能对 OP 来说已经很明显的细节。
这仅发生在事件处理程序中¹。立即写下它们或 用 todo²
评论他们
¹ 也就是说,event handlers 是 design 类 的方法,它们由 form designer 创建、列出和删除(如果在保存或编译时发现为空) >(这包括数据模块设计器和安装的任何其他自定义设计器)。授予您可能熟悉 C# 背景的代表。其他任何方式均需“人工”管理。
² TODO items(默认键绑定中为 Ctrl+Shift+T)绝对比空白 cmets 更好:
procedure TForm1.MagicButton1Click(Sender: TObject);
begin
{ TODO -ctomorrow : I'm going to write the code, I promise! }
end;
TAction 和AutoCheck 设置必须(请参阅下面Sir Rufo 的评论以了解运行时的另一种可能性)分配其OnExecute 以便成为Enabled。在这种情况下,在设计类中不可避免地会有这样的空白事件处理程序。示例:
procedure TMonitor.AutoCheckActionExecute(Sender: TObject);
begin
// dummy stub
{ DONE -crefactor : merge with other stub(s) }
end;
【讨论】:
只需添加一个空评论,例如//
begin
//
end;
另一种方法是将声明移至published part
type
TForm5 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject); // will be removed if empty
private
{ Private-Deklarationen }
public
published
procedure Button2Click(Sender: TObject); // will not be removed if empty
{ Public-Deklarationen }
end;
【讨论】:
;
; 是一个公平的价格,恕我直言。
begin ; end;,这涉及更少的打字;)
有没有办法防止IDE删除函数/ 保存空体的程序?
IDE 中没有禁用此行为的选项。
【讨论】: