【发布时间】:2013-11-06 16:55:04
【问题描述】:
我编写了以下代码来计算用户输入时的行数和字符数。但是它有一个问题,它在用户输入第一个字符后开始计数,当他按下退格键时它会增加计数器然后开始减少它。
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; var KeyChar: Char;
Shift: TShiftState);
begin
Text1.Text := 'Lines: ' + IntToStr (Memo1.Lines.Count);
Text2.Text := 'Characters: ' + IntToStr (Length(Memo1.Text));
end;
【问题讨论】:
-
从
OnChange事件开始。 -
当我在 OnChange 事件中执行此操作时,它不会更新,除非我按下回车键。
-
感谢马库斯,它有效!
-
如果您的目标是始终显示当前行和字符数,并且如果这将是一个 VCL 项目(我第一次想到的),那么您还需要处理当用户使用弹出菜单粘贴文本,因为这将更改备忘录文本而无需任何按键。不过对于移动平台我不知道你是否需要关心它。
-
是的,即使文本已粘贴但未键入,我也想计算字符数,所以我想最好的解决方案是在 OnChangeTracking 事件上编写我的代码。非常感谢 TLama。
标签: delphi firemonkey delphi-xe5