Einzelnen Beitrag anzeigen

jziersch

Registriert seit: 9. Okt 2003
Ort: München
251 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: KeyDown, KeyUp, KeyPress

  Alt 25. Jun 2018, 16:31
Die aktuelle Version von WPTools (8.05) enthält eine Demo "P) Premium\TextBox" welche bei #13 eine Tabellenzeile erzeugt. Diesen code kann man bestimmt gut abwandeln.

Code:
procedure TForm5.WPRichText1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var aRow : TParagraph;
    colnr : Integer;
begin
  aRow := WPRichText1.TableRow;
  if (Key=13) and (aRow<>nil)then
  begin
    if ssCtrl in Shift then
        WPRichText1.InputString(#10)
    else
    begin
        colnr := WPRichText1.TableColNumber;
        aRow := aRow.Duplicate(false, true, false, [wpParCopyStyles,wpDontCopyCellSubParagaraphs]);
        WPRichText1.ActiveParagraph := aRow.ColFirst;
        WPRichText1.TableColNumber := colnr;
        WPRichText1.ReformatAll(false, true);
    end;
    Key := 0;
  end;
end;
Wenn also Ctrl gedrückt wird, wird ein Zeilenumbruch eingefügt (kein neuer Absatz) - ansonsten wird die Tabellen Zeile dupliziert und der cursor in der neuen Zeile platziert.

Die Funktion par.Duplicate hat einen erweiterten Parameter Mode spezielle für das duplizieren von Zeilen. (vgl. manual unter "Create new tablerow on CR".

Hoffentlich hilft das weiter.
WPCubed GmbH
Komponenten für Delphi:
WPTools, wPDF, WPViewPDF
  Mit Zitat antworten Zitat