Farbliche Kennzeichnung eines Strings in einem Memo

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Linkat
Lazarusforum e. V.
Beiträge: 560
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 22; Lazarus 4.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 64
Wohnort: nr Stuttgart

Farbliche Kennzeichnung eines Strings in einem Memo

Beitrag von Linkat »

Hallo,
ich suche in einem LogFile nach bestimmten Schlüsselwörtern, die ich farblich kennzeichnen möchte. Ich habe keine Ahnung, wie man in einem Memo einzelne Wörter farblich markieren kann. Wer hat einen Tipp?

Gruß, Linkat

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Plattformunabhängig warscheinlich gar nicht. Unter Windows gibts ein paar Delphi Beispiele wie sowas geht. Aber funktioniert dann halt nur im Windows.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 10882
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Für Logfiles ist Synedit mit SynAnySyn ideal.
Einfach verdrahten, dann in die Keywords-Liste deine Schlüsselwörter in GROSSBUCHSTABEN eintragen und dem KeyAttri Farben und oder Style zuweisen.

Linkat
Lazarusforum e. V.
Beiträge: 560
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 22; Lazarus 4.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 64
Wohnort: nr Stuttgart

Beitrag von Linkat »

Zunächst mal Danke Christian und theo,
ich habe jetzt von Memo auf SynEdit umgestellt, waren fast die gleichen Methoden. Die Schlüsselworte kann ich über SysAnySys1.Keywords eingeben. Aber wie verknüpfe ich jetzt SysEdit mit SysAnySyn?

Gruß, Linkat

Benutzeravatar
theo
Beiträge: 10882
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Über das Highlighter Property von Synedit?

Linkat
Lazarusforum e. V.
Beiträge: 560
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 22; Lazarus 4.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 64
Wohnort: nr Stuttgart

Beitrag von Linkat »

ps: Schreibfehler korrigiert (SysAnySys --> SynAnySyn)
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS

Linkat
Lazarusforum e. V.
Beiträge: 560
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 22; Lazarus 4.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 64
Wohnort: nr Stuttgart

Beitrag von Linkat »

Hallo,
habe jetzt mit der Property Highlighter mit den diversen Attributen rumgespielt. Funktioniert soweit sehr gut, solange das Schlüsselwort nur ein Wort ist. Mein Problem aber ist, dass der Suchtext (Fehlermeldungen aus dem Logfile) meist aus mehreren Worten besteht. Dann wird eben nichts markiert.
Hat noch jemand eine Idee?

Gruß, Linkat

Linkat
Lazarusforum e. V.
Beiträge: 560
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 22; Lazarus 4.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 64
Wohnort: nr Stuttgart

Beitrag von Linkat »

Hallo,
das Problem habe ich mit Delphi mit der RichEdit-Komponente gelöst (Tipps im SwissDelphiCenter)

Gruß, Linkat

Benutzeravatar
theo
Beiträge: 10882
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Das kannst du eigentlich auch mit Lazarus und dem IpHTMLPanel.
Einfach den Log-Text mit HTML versehen.
Beispiel:

Code: Alles auswählen

procedure StringToMemStream(AString: string; Strm: TMemoryStream);
var Len: integer;
begin
  if Strm <> nil then
  begin
    Len := Length(AString);
    Strm.Size := Len;
    Strm.Position := 0;
    Strm.Write(PChar(AString)^, Len);
    Strm.Position := 0;
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var MemS:TMemoryStream;
 NewHTML:TIpHtml;
 AHTML:String;
begin
   MemS:=TMemoryStream.Create;
   AHTML:='<html><body>test <b>test</b> test <br>test <font color="red"><b>test</b></font> test </body></html>';
   StringToMemStream(AHTML, MemS);
   NewHTML:=TIpHtml.Create;
   NewHTML.LoadFromStream(MemS);
   IpHtmlPanel1.SetHtml(NewHTML);
   MemS.free;
end;

Antworten