So scheint es halbwegs zu funktionieren.
Wenn ich jedoch am Textende bin und auf Enter klicke wird das Control manchmal verlassen.
Das Control wird überhaupt verlassen wenn mit den Pfeiltasten oben, unten das Ende oder Anfang erreicht ist.
Man merkt das dieses Control ein Fremdkörper ist, es verhält sich einfach anders. So ein Mist.
Delphi-Quellcode:
procedure TfrmHTMLEdit.HTMLEditorOnKeyDown(Sender: TObject;
EventObjIfc: IHTMLEventObj);
var
selectionRange: IHtmlTxtRange;
htmlDoc: IHTMLDocument2;
begin
if not Assigned(HtmlEditor.Document) then
Exit;
htmlDoc := htmlEditor.Document as IHTMLDocument2;
if htmlDoc.parentWindow.event.keyCode = VK_RETURN then
begin
selectionRange := htmlDoc.selection.createRange as IHtmlTxtRange;
selectionRange.pasteHTML('<br>');
htmlDoc.parentWindow.event.returnValue := False;
htmlDoc.parentWindow.event.keyCode := 0;
Keybd_Event(VK_DOWN,0,0,0); //Taste drücken
Keybd_Event(VK_DOWN,0,KEYEVENTF_KEYUP,0); //Taste loslassen
end;
end;