AGB  ·  Datenschutz  ·  Impressum  







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

RichEdit:Bestimmte Wörter färben

Ein Thema von Merchator · begonnen am 14. Mär 2007 · letzter Beitrag vom 16. Mär 2007
Antwort Antwort
Seite 1 von 2  1 2      
Merchator

Registriert seit: 24. Feb 2007
16 Beiträge
 
Delphi 7 Personal
 
#1

RichEdit:Bestimmte Wörter färben

  Alt 14. Mär 2007, 20:58
Hallo,
ich bins mal wieder
Ihr werdet mich in Zukunft öfter hier "fragen" sehen^^
Nach langem, und leider Erfolglosem Suchen habe ich mich entschieden, hier zu fragen, da ja sicher eine gute Antwort kommen wird.
Und ich hbae auch gelernt, immer ein neues Thema aufzumachen

Nun zu meiner Frage:

Ich will in einen RichEdit1 einen Text laden, dabei soll jedes "!SETZE_HAUS" farbig markiert werden, sagen wir mal rot!
Beispiel:
Delphi-Quellcode:
!SETZE_HAUS 10 20 304 53
!SETZE_HAUS 35 63 634 64
Das !SETZE_HAUS steht immer am anfang der zeile. Die Zahlen dahinter sollen "verschont" bleiben.
Falls fragen aufkommen, es dient als kleiner "Texteditor" für ein Spiel

Danke im Vorraus für die Antworten.
Wenn ihr weitere informationen bracuht, fragt mich ruhig^^
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#2

Re: RichEdit:Bestimmte Wörter färben

  Alt 14. Mär 2007, 21:39
Ich würde dir ein SynEdit mit dem UniSynHighlighter vorschlagen

ist einfach zu bedienen und ein eigenes syntax-highlighting ist ein sch*arbeit


SynEdit Download
UniHighlighter Download

Falls du zu dem Fragen hast...
Ich hab den schon mal benutzt. Zwar nicht so exzessiv, aber dafür sollte es reichen
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: RichEdit:Bestimmte Wörter färben

  Alt 14. Mär 2007, 22:06
Hallo

Zitat von glkgereon:
Ich würde dir ein SynEdit mit dem UniSynHighlighter vorschlagen
Dafür ist das aber leicht übertrieben.

Frag bitte nicht, was der folgende Code nun genau bedeutet. Es hat eine Weile gebraucht, bis ich diesen zusammen hatte, aber bei mir funktioniert es so. Diese seltsamen Strings enthalten die Farbeigenschaften und ähnliches im rtf-Format:

Delphi-Quellcode:
procedure TForm1.HighlightMyText;
begin
  // replace line breaks with rtf ones
  RichEdit1.Text := StringReplace(RichEdit1.Text, #13#10, '\par', [rfReplaceAll]);

  // replace '!SETZE_HAUS' with a highlighted rtf version
  RichEdit1.Text := StringReplace(RichEdit1.Text, '!SETZE_HAUS', '\cf1 !SETZE_HAUS\cf0 ', [rfReplaceAll]);

  // here you can highlight other strings, too

  // add rtf specifications
  RichEdit1.Text := '{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\colortbl ;\red255\green0\blue0;}' + RichEdit1.Text + '}';
end;
  Mit Zitat antworten Zitat
Merchator

Registriert seit: 24. Feb 2007
16 Beiträge
 
Delphi 7 Personal
 
#4

Re: RichEdit:Bestimmte Wörter färben

  Alt 15. Mär 2007, 14:10
Hey, danke, funst perfekt!
Hab da aber noch Fragen:
Wie kriege ich es hin, das (zB) !SETZTE_HAUS rot und !SETZE_STRAßE zb blau ist?
Und kann ich diese dick erscheinen lassen?

Wie dem auch sei, trotzdem danke für die Hilfe!

PS.: Wenn ich die procedure unter RichEdit1KeyUp setze, dann springt das Eingabezeichen während der eingabe immer wieder zum anfang zurück. ich möchte aber, das WÄRHEND des schreibenst der text geändert wird...
OnChange funst auch nicht, dann kommt eine fehlermeldung??

Vielen Dank
  Mit Zitat antworten Zitat
Merchator

Registriert seit: 24. Feb 2007
16 Beiträge
 
Delphi 7 Personal
 
#5

Re: RichEdit:Bestimmte Wörter färben

  Alt 15. Mär 2007, 15:40
Zitat von glkgereon:
Ich würde dir ein SynEdit mit dem UniSynHighlighter vorschlagen

ist einfach zu bedienen und ein eigenes syntax-highlighting ist ein sch*arbeit


SynEdit Download
UniHighlighter Download

Falls du zu dem Fragen hast...
Ich hab den schon mal benutzt. Zwar nicht so exzessiv, aber dafür sollte es reichen
Jetzt habe ich bei mir SynEdit installier, um mal zu gucken...
Aber wie benutze ich ihn? Da benötige ich dann doch bitte deine Hilfe
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: RichEdit:Bestimmte Wörter färben

  Alt 15. Mär 2007, 16:06
Zitat von Merchator:
Wie kriege ich es hin, das (zB) !SETZTE_HAUS rot und !SETZE_STRAßE zb blau ist?
Und kann ich diese dick erscheinen lassen?
Du müsstest die Colortable um deine gwünschte Farbe ergänzen und im Text dann entsprechend \cf2 o.entspr. einsetzen.
Aber bei einem RichEdit kann man das auch immer mit SelStart und Sellength und dann Farbe ändern machen.


Was du sonst noch so willst. Also verändern während des Tippens, dazu musst du dich mal in Multithreadanwendeungen einlesen. Sowas wird ganz gerne in einem separaten Thread gemacht.
Ansonsten einfahc die Cursorpoition merken und hinterher wieder setzen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#7

Re: RichEdit:Bestimmte Wörter färben

  Alt 15. Mär 2007, 16:42
Zitat von Merchator:
Zitat von glkgereon:
Ich würde dir ein SynEdit mit dem UniSynHighlighter vorschlagen

ist einfach zu bedienen und ein eigenes syntax-highlighting ist ein sch*arbeit


SynEdit Download
UniHighlighter Download

Falls du zu dem Fragen hast...
Ich hab den schon mal benutzt. Zwar nicht so exzessiv, aber dafür sollte es reichen
Jetzt habe ich bei mir SynEdit installier, um mal zu gucken...
Aber wie benutze ich ihn? Da benötige ich dann doch bitte deine Hilfe
Also einfach ein SynEdit auf die Form, einen UniSynHighlighter dazu und den beim SynEdit als Highlighte setzen.
Dann im FormCreate oder so:

Delphi-Quellcode:
var SynSymbGrp: TSynSymbolGroup;
begin
  with FUniHighlighter do
  begin
    MainRules.Reset; //Erstmal leeren

    SynSymbGrp:=TSynSymbolGroup.Create('',TSynHighlighterAttributes.Create('dummy'));
    SynSymbGrp.KeywordsList.Add('!SETZE_HAUS');
    SynSymbGrp.Attribs.Foreground:=clRed; //rot
    MainRules.AddSymbolGroup(SynSymbGrp);

    SynSymbGrp:=TSynSymbolGroup.Create('',TSynHighlighterAttributes.Create('dummy'));
    SynSymbGrp.KeywordsList.Add('!SETZE_STRAßE');
    SynSymbGrp.Attribs.Foreground:=clBlue; //blau
    MainRules.AddSymbolGroup(SynSymbGrp);

  end;
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Merchator

Registriert seit: 24. Feb 2007
16 Beiträge
 
Delphi 7 Personal
 
#8

Re: RichEdit:Bestimmte Wörter färben

  Alt 15. Mär 2007, 17:57
Ja, das ist natürlich eine Möglichkeit.
Aber ist es nicht einfacher, eine selbst erstellte *.hgl-Datei zu importieren?
Ich habe UniEdit.exe verwendet und "neue Schrift" gemacht, kann man die nicht irgendwie importieren?
Sonst wäre das Tool ja umsonst, oder?
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#9

Re: RichEdit:Bestimmte Wörter färben

  Alt 15. Mär 2007, 18:04
Zitat von Merchator:
Ja, das ist natürlich eine Möglichkeit.
Aber ist es nicht einfacher, eine selbst erstellte *.hgl-Datei zu importieren?
Ich habe UniEdit.exe verwendet und "neue Schrift" gemacht, kann man die nicht irgendwie importieren?
Sonst wäre das Tool ja umsonst, oder?
Keine Ahnung, hab ich nicht ausprobiert *g*
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Merchator

Registriert seit: 24. Feb 2007
16 Beiträge
 
Delphi 7 Personal
 
#10

Re: RichEdit:Bestimmte Wörter färben

  Alt 15. Mär 2007, 18:22
Grr,
ich finde im gesamten I-Net keine Lösung.
Vllt weiß ein anderer hier aus diesem Forum, wie das funktioniert.
Ich wäre für die Hilfe sehr dankbar!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:52 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