防止在保存时删除带有空体的方法

hor*_*rgh 6 ide delphi delphi-7

我永远按下Ctrl + S是一个相当矛盾的习惯.否定的一面是delphi在保存时删除了空函数/过程.

有没有办法防止IDE在保存时删除空体的函数/过程?

OnT*_*Fly 18

根据OP请求从评论转换.我的评论太小而无法回答,所以我要添加一些可能已经很明显的OP细节.

只有事件处理程序才会发生这种情况.把它们写无延迟或评论他们的待办事项 ²

¹也就是说,事件处理程序设计类的方法,它们是由表单设计者创建,列出和删除的(如果在保存或编译时被清空)(这包括数据模块设计者和安装的任何其他自定义设计器).赋予代表你可能熟悉的C#背景.任何其他方法都受"手动"管理.

² TODO项目(Ctrl+Shift+T默认按键绑定)肯定比只是空白的意见更好:

procedure TForm1.MagicButton1Click(Sender: TObject);
begin
  { TODO -ctomorrow : I'm going to write the code, I promise! }
end;
Run Code Online (Sandbox Code Playgroud)

可能的特例

TActionwith AutoCheckset must(请参阅以下Ruru先生的评论,以获取运行时的另一种可能性)将其OnExecute分配为Enabled.在这种情况下,不可避免地在设计类中具有这样的空白事件处理程序.例:

procedure TMonitor.AutoCheckActionExecute(Sender: TObject);
begin
  // dummy stub
  { DONE -crefactor : merge with other stub(s) }
end;
Run Code Online (Sandbox Code Playgroud)

  • +1这是一个写得很好,乐于助人的答案. (2认同)

bum*_*mmi 13

只需添加一个空的评论 //

begin 
//
end;
Run Code Online (Sandbox Code Playgroud)

另一种方法是将声明移到 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;
Run Code Online (Sandbox Code Playgroud)

  • 嗯,我使用IDE的行为对我有利:如果我想删除事件处理程序,我只需删除代码并保存.如果没有这种自动行为,我需要:删除事件块,从接口部分删除它的声明,更改DFM,以便Delphi注意到事件不再存在,遭受一些错误消息告诉我事件处理程序不再存在,需要从组件中删除.我的"虚拟"代码也是**两倍**!我只写``` (7认同)
  • @Konstantin:我认为没有.(除了修补一些二进制文件,可能.:-)) (2认同)

Dav*_*nan 7

有没有办法防止IDE在保存时删除空体的函数/过程?

IDE中没有选项可禁用此行为.