![]() |
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:
Zeilen die mit [SQL] beginnen, sollen eine eigene Farbe haben, Zeilen mit [Error], [Info] und [Warning] ebenfalls.
[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. Welche Komponente ist hier geeignet und wie kann ich das machen? Wenn möglich mit VCL oder den JEDIs. Grüße Faux |
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; |
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 |
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