Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Memoähnliche Komponente für Zeilenhervorhebung (https://www.delphipraxis.net/70675-memoaehnliche-komponente-fuer-zeilenhervorhebung.html)

faux 2. Jun 2006 15:52


Memoähnliche Komponente für Zeilenhervorhebung
 
Hallo!

Also ich habe zur Zeit ein Memo auf meiner Form, mit dem ich ja keinen Text färben kann (oder?).
Ich will jetzt folgendes Logfile sozusagen Highlighten:
Code:
[SQL]   [2006-05-29 21:09:56]   SELECT username, password, groupname, rootdir, homedirFROM users, groupsWHERE username = 'faux' AND password = MD5('19010203')AND groups.id = `group`LIMIT 1
[Info]   [2006-05-29 21:09:56]   Login information of "faux" had been queried
[SQL]   [2006-05-29 21:09:59]   SELECT username, password, groupname, rootdir, homedirFROM users, groupsWHERE username = 'faux' AND password = MD5('1901020')AND groups.id = `group`LIMIT 1
[Error]   [2006-05-29 21:31:03]   Could not connect to the SQL-Server. Please check login information in config.ini.
[SQL]   [2006-05-31 19:42:17]   SELECT username, password, groupname, rootdir, homedir FROM users, groups WHERE username = 'faux' AND password = '19010203' AND groups.id = `group` LIMIT 1
[Info]   [2006-06-01 21:44:53]   Login information of "faux" had been queried.
[Error]   [2006-06-02 15:49:28]   Could not connect to the SQL-Server. Please check login information in config.ini.
Zeilen die mit [SQL] beginnen, sollen eine eigene Farbe haben, Zeilen mit [Error], [Info] und [Warning] ebenfalls.
Welche Komponente ist hier geeignet und wie kann ich das machen?
Wenn möglich mit VCL oder den JEDIs.

Grüße
Faux

dfried 2. Jun 2006 15:55

Re: Memoähnliche Komponente für Zeilenhervorhebung
 
Wir verwenden für solche Sachen TRichEdit.
Zum einfärben machen wir dann z.B. folgendes:
Delphi-Quellcode:
  // Fehler rot darstellen
  if pError then
    meLog.SelAttributes.Color := clRed
  else
    meLog.SelAttributes.Color := clBlack;

faux 2. Jun 2006 15:57

Re: Memoähnliche Komponente für Zeilenhervorhebung
 
Dazu muss ich den entsprechenden Text aber vorher markieren, oder?
Ich laden den ganzen Text jedoch per LoadFromStream ins Memo, wodurch ich dann den ganzen Text parsen müsste, und wenn ich dann jede Zeile einzeln markiere, dauert das bei einem groß Logfile sher lange, würde ich mal sagen.
Gibts da einen Ausweg?
Kann ich dazu SynEdit ev. benutzen?

Grüße
Faux

marabu 2. Jun 2006 17:17

Re: Memoähnliche Komponente für Zeilenhervorhebung
 
Hallo Faux,

da deine Protokolldateien offensichtlich eine Zeilenstruktur besitzen, würde ich sie in einer StringList verwalten und in einer virtuellen ListView anzeigen. Wenn die Dateien vollständig in den Hauptspeicher geladen werden dürfen, dann kannst du sie einfach mit der Methode LoadFromFile() einlesen. Sind die Dateien zu groß oder möchtest du den Hauptspeicher lieber nicht belasten, dann ist auch ein gepufferter Direktzugriff möglich. Das zeilenweise Einfärben einer ListView sollte kein Problem darstellen, allerdings würde ich eher mit Icons arbeiten wollen.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 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 by Thomas Breitkreuz