Foren
Computer & Internet
Forum durchsuchen:

 

Thema: Delphi

Übersicht

Passende Referate zum Thema "Delphi" findest du auf der Startseite
(589x gelesen)

Seiten: 1

Du mußt dich registrieren, bevor Du einen Beitrag bzw. eine Antwort erstellen kannst.

Beitrag von Lesimir

24.08.2008 01:51:58

Lesimir

Profilbild von Lesimir ...

Themenstarter
Lesimir hat das Thema eröffnet...

Hi
hat irgendwer zufällig mal delphi programmiert und erinnert sich oder hat sogar aktuell auf dem schirm, wie man folgendes problem lösen könnte:
Ich möchte in einem richedit objekt einen bestimmten, sich wiederholenden Textteil suchen und diesen dann so farbig markieren, dass die Formatierung im rtf dokument sichtbar ist. (Mir ist ziemlich egal, wie diese Markierung aussieht. Also von mir aus kann es auch einfach kursiv gedruckt oder fett sein oder sonst was).

Sprich: ich habe einen Text in dem immer wieder das Wort "Hund" vorkommt, und will jetzt, dass das Programm noch während ich tippe oder auch nach Abschluß durch einen extra button jedes vorkommen des wortes hund im Text sucht und das dann da farbig markiert.





Alternative:
Ich ersetze innerhalb des Textes durch eine Funktion schon jedes "X" durch dieses vorbestimmtes Wort - ich könnte also auch an dieser Stelle einfach formatierten Text einfügen, wie geht das?





Danke!

Profil | Livenachricht | SMS senden | Gästebuch | Nachricht | Bildergalerie


Beitrag von cyberion

24.08.2008 10:26:20

cyberion

Profilbild von cyberion ...

procedure MarkThisWord(RE: TRichEdit; TheWord: String; Color: TColor; Style:
TFontStyles);
var
i, CharPos, noChars: Integer;
begin
CharPos := 0;
noChars := 0;
for i := 0 to Pred(RE.Lines.Count) do
noChars := noChars + Length(RE.Lines[i]);
CharPos := RE.FindText(TheWord, CharPos, noChars, [stWholeWord]);
RE.SelStart := CharPos;
RE.SelLength := Length(TheWord);
RE.SelAttributes.Color := Color;
RE.SelAttributes.Style := Style;
end;

procedure MarkAllWords(RE: TRichEdit; TheWord: String; Color: TColor; Style:
TFontStyles);
var
i, CharPos, CharPos2, noChars: Integer;
begin
CharPos := 0;
noChars := 0;
for i := 0 to Pred(RE.Lines.Count) do
noChars := noChars + Length(RE.Lines[i]);
repeat
CharPos2 := RE.FindText(TheWord, CharPos, noChars, [stWholeWord]);
CharPos := CharPos2+1;
RE.SelStart := CharPos2;
RE.SelLength := Length(TheWord);
RE.SelAttributes.Color := Color;
RE.SelAttributes.Style := Style;
until charpos = 0;
end;

Syntax:

procedure TForm1.Button1Click(Sender: TObject);
begin
MarkThisWord(RichEdit1, 'the', clRed, [fsBold]);
MarkAllWords(RichEdit1, 'to', clTeal, [fsItalic, fsBold]);
end;

Profil | Livenachricht | SMS senden | Gästebuch | Nachricht | Bildergalerie


Seiten: 1

Du mußt dich registrieren, bevor Du einen Beitrag bzw. eine Antwort erstellen kannst.


Weitere interessante Beiträge aus dem Forum:
Referat Bundeskanzler
Delphi Druckabfrage
delphi .exe
Delphi-Probierversion
Hilfe bei Delphi 6!!!
delphi ordner-größe auslesen
Reaktionsprogramm mit Delphi


289 Mitglieder online


 
...