Einzelnen Beitrag anzeigen

Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.063 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: TWebBrowser und Enter-Taste Leerzeile vermeiden

  Alt 7. Jan 2023, 12:54
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;
  Mit Zitat antworten Zitat