AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RichEdit formatieren

Ein Thema von Nalincah · begonnen am 6. Nov 2003 · letzter Beitrag vom 7. Nov 2003
 
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: RichEdit formatieren

  Alt 6. Nov 2003, 09:50
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
Frank
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz