Hallo Zusammen,
die untenstehende Version hat leider noch ein Manko. Wenn man mit Enter eine neue Zeile beginnt, funktioniert es. Ein weiteres Enter erzeugt nicht wie erwartet eine Leerzeile sondern verlässt das Control. Hat jemand eine Idee wie man das umgehen kann? Wie bei jedem Memo soll einfach bei jeder Enter-Taster ein ein <br> Tag hinzugefügt werden.
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;