AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Richedit Parsen und Fontcolor auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi Richedit Parsen und Fontcolor auslesen

Ein Thema von ReVenGer · begonnen am 7. Apr 2013 · letzter Beitrag vom 7. Apr 2013
Antwort Antwort
ReVenGer

Registriert seit: 11. Okt 2005
Ort: Hannover
50 Beiträge
 
Delphi XE7 Architect
 
#1

Delphi Richedit Parsen und Fontcolor auslesen

  Alt 7. Apr 2013, 12:34
Hi,
ich möchte in einem Richedit den Text inkl. Fontcolor auslesen, und Fontcolor durch vorgegebene Strings ersetzen und in ein anderes Richedit Feld einlesen.

als Beispiel: (clyellow)Hallo(clred)welt! -> _gelb_Hallo_rot_welt

Nur leider finde ich keine Info wie ich die Fontfarbe parsen und ersetzen kann.

Gruß
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Delphi Richedit Parsen und Fontcolor auslesen

  Alt 7. Apr 2013, 12:44
Erzeug Dir doch einfach mal bunten Text im Wordpad und schau dir den RTF-Code an. Ich bezweifle allerdings, das Du dort Farbennamen sehen wirst, höchstens RGB-Werte.
  Mit Zitat antworten Zitat
ReVenGer

Registriert seit: 11. Okt 2005
Ort: Hannover
50 Beiträge
 
Delphi XE7 Architect
 
#3

AW: Delphi Richedit Parsen und Fontcolor auslesen

  Alt 7. Apr 2013, 12:45
Die RGB Werte reichen ja schon als Identifikation. Die könnte ich dann entsprechend ersetzen und den Text inkl. verarbeitetem RGB Code in ein anderes Richedit einfügen.
Nur wie Parse ich das?

void __fastcall TForm7::Button1Click(TObject *Sender)
{
int textLength, i;
TConsistentAttributes textAttribute;
TColor textColor;

textLength = RichEdit1->Text.Length() ;

for (i = 0; i < textLength; i++) {
RichEdit1->SelStart = i;
RichEdit1->SelLength = 1;
textAttribute = RichEdit1->SelAttributes->ConsistentAttributes;
if (textAttribute.Contains(caColor))
{
textColor = RichEdit1->SelAttributes->Color;
if (textColor == clRed) {

}

}

}

So würde ich es in C++ machen.

Geändert von ReVenGer ( 7. Apr 2013 um 13:42 Uhr)
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#4

AW: Delphi Richedit Parsen und Fontcolor auslesen

  Alt 7. Apr 2013, 14:14
Hallo,

warum ConsistentAttributes? Aus der OH:
Zitat:
property ConsistentAttributes: TConsistentAttributes read GetConsistentAttributes;
Zeigt an, welche der Eigenschaften des TTextAttributes-Objekts innerhalb der aktuellen Auswahl im RTF-Steuerlement konsistent sind.
Bei nur einem selektiert Zeichen kann nicht viel konsistent/inkonsitent sein.

Mit Deinem Ansatz:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  s : string;
  i : Integer;
  c : TColor;
begin
  RichEdit1.SelStart := i;

  c := RichEdit1.SelAttributes.Color;
  if c < $7FFFFFFF then
    Inc (c)
  else
    Dec (c);

  s := '';
  for i := 1 to Length (RichEdit1.Text) do
    begin
      RichEdit1.SelStart := i;
      if c <> RichEdit1.SelAttributes.Color then
        begin
          c := RichEdit1.SelAttributes.Color;
          s := s + '_' + ColorToString (c) + '_'
        end;
      s := s + RichEdit1.Text [i]
    end
end;
Sollte dann Hallowelt! -> _gelb_Hallo_rot_welt! als Ergebnis kommen.

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
ReVenGer

Registriert seit: 11. Okt 2005
Ort: Hannover
50 Beiträge
 
Delphi XE7 Architect
 
#5

AW: Delphi Richedit Parsen und Fontcolor auslesen

  Alt 7. Apr 2013, 21:06
Vielen Dank Volker,
deshalb hat das mit ConsistentAttributes auch nicht funktioniert..

Gruß
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 18:58 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