![]() |
AW: Wörter in Zeichenstring fett schreiben
Zitat:
Eventuell so:
Delphi-Quellcode:
RE: string; begin RE:= AnsiLowercase(ARichEdit.Text); .. X:= PosEx(AnsiLowercase(S), RE, X); |
AW: Wörter in Zeichenstring fett schreiben
@Bojerk
Es wird immer das Falsche fett markiert -.- |
AW: Wörter in Zeichenstring fett schreiben
Nochmal zum mitschreiben:
Delphi-Quellcode:
procedure DoColorWork (ARichEdit: TWasAuchImmerFuerEinRichEdit; const S: string);
var I, X, L: integer; F: boolean; RE: string; begin RE:= AnsiLowerCase(ARichEdit.Tex); // !! ARichEdit.Lines.BeginUpDate; L:= Length(S); X:= 1; F:= true; while F do begin X:= PosEx(AnsiLowerCase(S), RE, X); / !! if X <> 0 then begin with ARichEdit do // !! begin SelStart:= X-1; SelLength:= L; SelAttributes.Color:= clNavy; SelAttributes.Style:= [fsBold]; SelAttributes.Name:= Font.Name; SelAttributes.Size:= Font.Size; end; Inc(X, L); end else F:= false; end; ARichEdit.SelLength:= 0; ARichEdit.Lines.EndUpDate; end; // Aufruf: DoColorWork (WasAuchImmerFuerEinRichEdit, 'HÖHE:'); |
AW: Wörter in Zeichenstring fett schreiben
Alternative:
Delphi-Quellcode:
procedure DoColorWork (ARichEdit: TWasAuchImmerFuerEinRichEdit; const S: string);
var I, X, L: integer; F: boolean; begin ARichEdit.Text:= StringReplace(AnsiLowerCase(ARichEdit.Text), AnsiLowerCase(S), S, [rfReplaceAll]); ARichEdit.Lines.BeginUpDate; L:= Length(S); X:= 1; F:= true; while F do begin X:= PosEx(S, ARichEdit.Text, X); if X <> 0 then begin with ARichEdit do begin SelStart:= X-1; SelLength:= L; SelAttributes.Color:= clNavy; SelAttributes.Style:= [fsBold]; SelAttributes.Name:= Font.Name; SelAttributes.Size:= Font.Size; end; Inc(X, L); end else F:= false; end; ARichEdit.SelLength:= 0; ARichEdit.Lines.EndUpDate; end; // Aufruf: DoColorWork (WasAuchImmerFuerEinRichEdit, 'HÖHE:'); |
AW: Wörter in Zeichenstring fett schreiben
Liste der Anhänge anzeigen (Anzahl: 1)
Siehe Anhang.
|
AW: Wörter in Zeichenstring fett schreiben
Ich glaub man versteht mich hier nicht.. ja der Code funktioniert Bjoerk, jedoch wenn ich einen Text hab und dazwischen Bilder.. dann findet er nichts -.-
DeddyH's Methode ist da einsichtiger... jedoch hab ich noch immer keinen Plan wie ich FindText anwenden soll :( Ja die Funktion kenn ich und auch die Parameter aber bei meinem Problem check ichs nicht. |
AW: Wörter in Zeichenstring fett schreiben
Versuch mal, ob es hiermit geht:
Delphi-Quellcode:
Aufruf (Button1):
procedure {TfrmDemo.}MarkKeyword(RE: TRichEdit; const s: string;
CaseSensitive: Boolean); var FoundAt: LongInt; StartPos, ToEnd: Integer; SearchTypes: TSearchTypes; begin Assert(Assigned(RE)); if CaseSensitive then SearchTypes := [stMatchCase] else SearchTypes := []; StartPos := 0; ToEnd := Length(RE.Text); FoundAt := RE.FindText(s, StartPos, ToEnd, SearchTypes); while FoundAt > -1 do begin RE.SelStart := FoundAt; RE.SelLength := Length(s); RE.SelAttributes.Style := RE.SelAttributes.Style + [fsBold]; RE.SelLength := 0; StartPos := FoundAt + Length(s); ToEnd := Length(RE.Text) - StartPos; FoundAt := RE.FindText(s, StartPos, ToEnd, SearchTypes); end; end;
Delphi-Quellcode:
Ggf. musst Du eben die Typen noch anpassen, ich habe die JVCL nicht installiert und kann daher nicht nachsehen, wie das da heißen muss.
procedure TfrmDemo.Button1Click(Sender: TObject);
begin RichEdit1.Lines.BeginUpdate; try MarkKeyword(RichEdit1, 'Höhe:', CheckBox1.Checked); MarkKeyword(RichEdit1, 'Breite:', CheckBox1.Checked); MarkKeyword(RichEdit1, 'Tiefe:', CheckBox1.Checked); finally RichEdit1.Lines.EndUpdate; end; end; |
AW: Wörter in Zeichenstring fett schreiben
@DeddyH
Ich habs jetzt auf TJvRichEdit abgeändert.. und bin den Code auf nem Blatt papier durchgegangen... jetzt verstehe ich... was die ganzen Funktionen auf sich haben.... Es funktioniert :)) Danke DeddyH... ich wär viel Glücklicher wenn ichs selber Rausgefunden hätte -.- aber trotzdem danke (Prof. ;) ) DeddyH |
AW: Wörter in Zeichenstring fett schreiben
Na siehste :zwinker:
|
AW: Wörter in Zeichenstring fett schreiben
Hallo
Ich hätte da noch eine kleine Frage.. wie kann ich die markierten wörter zudem auch noch Groß schreiben... ?_? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:51 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