加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 使用“默认”按钮在表单上的TMemo中换行

发布时间:2020-12-15 04:05:06 所属栏目:大数据 来源:网络整理
导读:我在使用FireMonkey编写的应用程序中有一个表单.在那个(模态)表单上有一个OK按钮,我已将Default属性设置为True.还有一个备忘录组件.现在,如果在输入备忘录时键入enter键,则表单将关闭,而不是在备忘录中插入换行符. 我想要完成的是,当在memo组件中按下enter(
我在使用FireMonkey编写的应用程序中有一个表单.在那个(模态)表单上有一个OK按钮,我已将Default属性设置为True.还有一个备忘录组件.现在,如果在输入备忘录时键入enter键,则表单将关闭,而不是在备忘录中插入换行符.

我想要完成的是,当在memo组件中按下enter(或者像这样输入或smth)时,输入换行符.在其他组件中,您无法键入换行符,我仍然希望按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;

这是有效的,但现在有一个令人讨厌的延迟,在击中输入后和换行符出现之前.我也希望解决方案,这将不那么hacky.

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

解决方法

在备忘录的OnEnter中将btnOk.Default设置为False,并在备忘录的OnExit中将其设置为True

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读