在达到最大长度时第二次避免使用相同的警告消息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在达到最大长度时第二次避免使用相同的警告消息相关的知识,希望对你有一定的参考价值。

我有这个 :

procedure TForm1.cxMemo1PropertiesChange(Sender: TObject);
begin
  if not  (trim(cxmemo1.lines.Text) = '')  then begin
    AdvSmoothWin8Marquee1.Animate :=True;
    AdvSmoothWin8Marquee1.Visible :=True;
    cxlabel1.Visible:=True;
    cxlabel1.caption := 'Letters left : ' + inttostr(cxmemo1.Properties.MaxLength - Length(cxmemo1.Text));
    if Length(cxMemo1.Text) = cxMemo1.Properties.MaxLength then    //when maximum lenght reached
      if MessageDlg(
        'Maximum lenght reached (200).'+ #13#10 +'Extend maximum lenght to 500?',
        mtWarning, 
        [mbNo, mbYes], 
        0) = mrYes then
          cxmemo1.Properties.MaxLength:=500;
    cxlabel1.caption := 'Letters left : ' + inttostr(cxmemo1.Properties.MaxLength - Length(cxmemo1.Text));
  end else  begin
    AdvSmoothWin8Marquee1.Animate :=False;
    AdvSmoothWin8Marquee1.Visible :=False;
    cxmemo1.Properties.MaxLength:=200 ;
    cxlabel1.Visible:=False;
  end;
end;

如果用户在备忘录中达到500个字符或者至少告诉他已经达到最大奖励(500),我该如何避免显示警告信息?

答案

在这里,重做......

procedure TForm1.cxMemo1PropertiesChange(Sender: TObject);
begin
if not  (trim(cxmemo1.lines.Text) = '')  then  begin
AdvSmoothWin8Marquee1.Animate :=True;
AdvSmoothWin8Marquee1.Visible :=True;
cxlabel1.Visible:=True;
cxlabel1.caption := 'Letters left : ' + inttostr(cxmemo1.Properties.MaxLength - Length(cxmemo1.Text));
end else begin
AdvSmoothWin8Marquee1.Animate :=False;
AdvSmoothWin8Marquee1.Visible :=False;
cxmemo1.Properties.MaxLength:=200 ;
cxlabel1.Visible:=False;
end;
  if Length(cxMemo1.Text) = cxMemo1.Properties.MaxLength then begin
  case cxmemo1.Properties.MaxLength of
  200:
  if MessageDlg('Maximum lenght reached (200).'+ #13#10 +'Extend memo maximum lenght to 400?',
  mtWarning, [mbNo, mbYes], 0) = mrYes then  begin
  cxmemo1.Properties.MaxLength:=400;
  cxlabel1.caption := 'Letters left : ' + inttostr(cxmemo1.Properties.MaxLength - Length(cxmemo1.Text));
  end;
  400: 
  ShowMessage('No more extensions.');
  end;
  end;
  end;
end;

以上是关于在达到最大长度时第二次避免使用相同的警告消息的主要内容,如果未能解决你的问题,请参考以下文章

如何避免在 iOS 中使用 Facebook SDK 时出现“重复状态消息”错误?

达到条目最大长度时的 Xamarin DisplayAlert

React Native - 第二次挂载时出现 setState 警告

Ajax 表单提交在第一次提交时返回错误,但在第二次单击时提交

在 Android 应用程序中使用 MultiDex 运行 ProGuard 两次,只有第二次出现警告/注释?

Linux进程间通信——使用消息队列