Delphi if-else语句执行不正确
我的if-else语句有一个非常有趣的行为。开始时,备忘录为空,尝试删除会触发消息。然后,如果我在备忘录中写下一些东西并尝试删除,就会再次出现正确的消息。但是,在最后一次删除后(备忘录现在为空),如果我再次单击删除,我会得到第二条消息,而不是第一条消息(没有要删除的内容。我是否弄乱了if-else语句??这里的正确方法是什么Delphi if-else语句执行不正确,delphi,delphi-7,delphi-xe2,delphi-xe,Delphi,Delphi 7,Delphi Xe2,Delphi Xe,我的if-else语句有一个非常有趣的行为。开始时,备忘录为空,尝试删除会触发消息。然后,如果我在备忘录中写下一些东西并尝试删除,就会再次出现正确的消息。但是,在最后一次删除后(备忘录现在为空),如果我再次单击删除,我会得到第二条消息,而不是第一条消息(没有要删除的内容。我是否弄乱了if-else语句??这里的正确方法是什么 procedure TForm1.AdvGlowButton2Click(Sender: TObject); begin if advmemo1.IsEmpty th
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;
您显示的代码没有问题,因此显然,
IsEmpty
在上次删除后必须返回False,而不是返回True,这表明1)并非所有内容都像您所想的那样被实际删除,或者2)IsEmpty
有问题。您显示的代码没有问题,所以很明显,IsEmpty
在上次删除后必须返回False,而不是返回True,这表明1)并非所有内容都像您所想的那样被删除,或者2)IsEmpty
有问题。保存后必须调用
advmemo1.RefreshMemo;
保存后,你必须打电话
advmemo1.RefreshMemo;
找出
IsEmpty
在您希望返回True时未返回True的原因。或者不要再使用IsEmpty
了,找些别的东西。什么样的“奇怪结果”?如果我只做第一部分,如果advmome1.IsEmpty,那么ShowMessage('Nothing to delete!')就可以了。我可以写delete,memo会检测它是否为空。这个备忘录似乎需要返回到第一行才能检测到空备忘录。WeirdI想我发现了问题所在。。。保存后,必须调用advmemo1.RefreshMemo;那就行了…谢谢你!找出IsEmpty
在您希望返回True时未返回True的原因。或者不要再使用IsEmpty
了,找些别的东西。什么样的“奇怪结果”?如果我只做第一部分,如果advmome1.IsEmpty,那么ShowMessage('Nothing to delete!')就可以了。我可以写delete,memo会检测它是否为空。这个备忘录似乎需要返回到第一行才能检测到空备忘录。WeirdI想我发现了问题所在。。。保存后,必须调用advmemo1.RefreshMemo;那就行了…谢谢你!出于所有实际目的,if/then/else语句都将被正确编译和执行,这一事实可以让您100%放心。如果它没有达到您预期的效果,那么问题就出在您自己的代码中,或者您正在使用的库中。我根本不明白这个例子:首先您清除了备忘录,然后您保存了文件?对于所有实际用途,您可以100%地相信If/then/else语句都将被正确编译和执行。如果它没有达到您期望的效果,那么问题就出在您自己的代码中,或者您正在使用的库中。我根本不理解这个示例:首先您清除备忘录,然后您保存文件?