1

我的 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;
4

2 回答 2

4

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

于 2012-06-04T23:23:47.363 回答
3

保存后你必须打电话

advmemo1.RefreshMemo;
于 2012-06-05T00:31:30.887 回答