我的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;
答案 0 :(得分:4)
您显示的代码没有任何问题,因此显然IsEmpty
必须在上次删除后返回False而不是返回True,这表明1)并非所有内容都按照您的想法实际删除,或者2 )IsEmpty
是错误的。
答案 1 :(得分:3)
必须致电
advmemo1.RefreshMemo;