gpt4 book ai didi

delphi - 在备忘录上打字时如何计算字符和行数

转载 作者:行者123 更新时间:2023-12-03 03:23:40 26 4
gpt4 key购买 nike

我编写了以下代码来计算用户键入时的行数和字符数。但它有一个问题,它在用户输入第一个字符后开始计数,当他按退格键时,它会增加计数器,然后开始减少它。

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;

最佳答案

OnChangeTracking 编写一个处理程序事件。我第一次在这里留下评论时,我错过了您正在编写 FMX 应用程序,因此我使用 OnChange 事件的建议是错误的。您可以在 VCL 项目中使用它,但在 FMX 中使用 OnChange有不同的含义。

OnChangeTracking的引用状态:

Occurs when the text in the memo control is modified. Write an OnChangeTracking event handler to respond immediately to any changes made to the text in the memo control. The Text property of the memo control will already be updated to reflect any changes. This event provides the first opportunity to respond to modifications that the user makes by typing into the memo control.

The difference between OnChangeTracking and OnChange is that OnChangeTracking occurs at each modification of text in the memo control.

所以,如果您将代码移至 OnChangeTracking事件处理程序,你应该让它工作:

procedure TForm1.Memo1ChangeTracking(Sender: TObject);
begin
Text1.Text := 'Lines: ' + IntToStr (Memo1.Lines.Count);
Text2.Text := 'Characters: ' + IntToStr (Length(Memo1.Text));
end;

关于delphi - 在备忘录上打字时如何计算字符和行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19817988/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com