gpt4 book ai didi

delphi - 带有“默认”按钮的表单上 TMemo 中的换行符

转载 作者:行者123 更新时间:2023-12-03 14:49:01 24 4
gpt4 key购买 nike

我在使用 FireMonkey 编写的应用程序中有一个表单。在该(模态)表单上有一个“确定”按钮,我已将其“默认”属性设置为“True”。还有一个备忘录组件。现在,如果在输入备忘录时按 Enter 键,则表单将关闭,而不是在备忘录中插入换行符。

我想要完成的是,当在备忘录组件中按下 Enter (或 Shift+Enter 或类似的东西)时,就会输入换行符。在其他无法键入换行符的组件中,我仍然想按 Enter 键关闭表单。到目前为止,我发现的最好的方法是将以下代码添加到表单 OnCloseQuery 操作中:

if (Focused.GetObject.ClassName = 'TMemo') and (ModalResult = mrOk) then
begin
CanClose := False;
Memo := TMemo(Focused.GetObject);
Memo.InsertAfter(Memo.CaretPosition, sLineBreak, [TInsertOption.ioMoveCaret,
TInsertOption.ioCanUndo]);
end
else
CanClose := True;

这可行,但现在在按 Enter 键后和换行符出现之前有一个小的令人讨厌的延迟。我也想要解决方案,这样不会那么麻烦。

我还应该指出,我还有包含“确定”按钮的表单,但不包含备忘录组件,但是备忘录将在运行时通过更改其父属性移动到该表单。

最佳答案

设置btnOk.DefaultFalse在你的备忘录中 OnEnter ,然后返回True在备忘录的 OnExit

关于delphi - 带有“默认”按钮的表单上 TMemo 中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15448189/

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