if else语句没有正确执行

时间:2012-06-04 22:30:38

标签: delphi delphi-7 delphi-xe2 delphi-xe

我的if else语句非常有趣。在启动时,备忘录为空,尝试删除会触发该消息。然后,如果我在备忘录中写了一些内容并尝试删除,那么就会出现正确的消息。但是,在最后一次删除(备忘录现在为空)之后,如果我再次点击删除,我得到第二条消息而不是第一条消息(没有要删除。我是否搞乱if else语句?这里的正确方法是什么?

procedure TForm1.AdvGlowButton2Click(Sender: TObject);
begin
   if advmemo1.IsEmpty then
      ShowMessage('Nothing to delete !')
   else  
   begin
     if MessageDlg('Delete everything?',
                     mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin
       advmemo1.Lines.Clear;
       advmemo1.Lines.SaveToFile(ExtractFilePath(Application.ExeName)+ '\memo.txt');
     end;
   end;
end;

2 个答案:

答案 0 :(得分:4)

您显示的代码没有任何问题,因此显然IsEmpty必须在上次删除后返回False而不是返回True,这表明1)并非所有内容都按照您的想法实际删除,或者2 )IsEmpty是错误的。

答案 1 :(得分:3)

保存后

必须致电

advmemo1.RefreshMemo;