Delphi   发布时间:2022-04-10  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了delphi – 使用“默认”按钮在表单上的TMemo中换行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在使用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

大佬总结

以上是大佬教程为你收集整理的delphi – 使用“默认”按钮在表单上的TMemo中换行全部内容,希望文章能够帮你解决delphi – 使用“默认”按钮在表单上的TMemo中换行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: