Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi RichEdit formatieren (https://www.delphipraxis.net/11407-richedit-formatieren.html)

Nalincah 6. Nov 2003 08:44


RichEdit formatieren
 
Ich bins nochmal..Hab noch mal eine Frage zum RichEdit..Diesmal das normale..

Wenn ich diesen Code ausführe, hab ich nen schönen roten Text da stehen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  RichEdit1.SelAttributes.Color := clRed;
  RichEdit1.Lines.Add('asda');
end;
Was mach ich aber wenn ich so einen Text hinzufügen will:

"Hab irgendwie kein Plan"

???

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  RichEdit1.SelAttributes.Style := [fsUnderLine];
  RichEdit1.Text := RichEdit1.Text + 'Hab';
  RichEdit1.SelAttributes.Style := [fsUnderLine, fsItalic];
  RichEdit1.Text := RichEdit1.Text + 'irgendwie';
  .....
end;

Sourcemaker 6. Nov 2003 09:50

Re: RichEdit formatieren
 
Hi Sebastian,

diesen Quellcode benutze ich in meiner RTF-Form (ist von den Demo abgeleitet).
Im Gegensatz zum Demo-Code werden hier alle Style richtig angewandt und kombiniert.
Für dich sollte es möglich sein die grundsätzliche Technik abzuleiten.

Delphi-Quellcode:
procedure TFRtfForm.SetStyle(lSet: Boolean; xStyle: TFontStyles);
var
   i : integer;
   nStart : integer;
   nLength : integer;
   xMerkStyle: TFontStyles;
   nStartMerker : integer;
   lCopy       : Boolean;
   edText3      : TRxRichEdit;
begin
   bUpdating := True;
   try
      nStart := edText.SelStart;
      nLength := edText.SelLength;
      if nLength = 0 then
      begin
         if lSet then
            edText.SelAttributes.Style := edText.SelAttributes.Style + xStyle
         else edText.SelAttributes.Style := edText.SelAttributes.Style - xStyle;
         Exit;
      end;
      lCopy  := False;
      edText3 := edText;
      i := nStart+1;
      edText3.SelStart := i;
      edText3.SelLength := 1;
      nStartMerker    := nStart;
      xMerkStyle := edText3.SelAttributes.Style;
      while i < nStart+nLength do
      begin
         edText3.SelStart := i;
         if xMerkStyle = edText3.SelAttributes.Style then
         begin
            Inc(i);
            Continue;
         end;
         if not lCopy then
         begin
            CopyRxRichEditText(edText, edText2);
            edText3 := edText2;
            lCopy  := True;
            edText3.SelStart := i;
         end;
         xMerkStyle      := edText3.SelAttributes.Style;
         edText3.SelStart := nStartMerker;
         edText3.SelLength := i-nStartMerker-1;
         if lSet then
            edText3.SelAttributes.Style := edText3.SelAttributes.Style + xStyle
         else edText3.SelAttributes.Style := edText3.SelAttributes.Style - xStyle;
         nStartMerker := i-1;
         Inc(i);
      end;

      edText3.SelStart := nStartMerker;
      edText3.SelLength := i-nStartMerker;
      if lSet then
         edText3.SelAttributes.Style := edText3.SelAttributes.Style + xStyle
      else edText3.SelAttributes.Style := edText3.SelAttributes.Style - xStyle;

      if lCopy then
         CopyRxRichEditText(edText3, edText);
      edText.SelStart := nStart;
      edText.SelLength := nLength;
   finally
      bUpdating := False;
   end;
end;
Gruß

Frank

Nalincah 7. Nov 2003 12:35

Re: RichEdit formatieren
 
Danke, hat weitergeholfen


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz