title: Line breaks in TMemo on a form with Default button
body: <p>I have a form in an application written using FireMonkey. On that (modal) form there's an OK button for which I have set Default property to True. There's also a memo component. Now if type press enter while typing in the memo, then the form is closed instead of inserting line break into memo.</p>
  
  <p>What I would like to accomplish, is that when enter (or shift+enter or smth like that) is pressed in memo component, then line break is enter. In other components, where you cannot type line breaks, I would still like hitting enter to close the form. The best I have found thus far is adding following code into forms OnCloseQuery action:</p>
  
  <pre><code>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;
  </code></pre>
  
  <p>This works, but there's now there's a small annoying delay after hitting enter and before the line break appears. Also I would like solution, that would be less hacky.</p>
  
  <p>I should also point out, that I also have forms which contain the OK button, but not the memo component, however a memo will be moved to that form at runtime by changing its parent property.</p>