AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Tabellenähnliche Komponente für Logfiles gesucht
Thema durchsuchen
Ansicht
Themen-Optionen

Tabellenähnliche Komponente für Logfiles gesucht

Ein Thema von faux · begonnen am 30. Mai 2006 · letzter Beitrag vom 1. Jun 2006
Antwort Antwort
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#1

Tabellenähnliche Komponente für Logfiles gesucht

  Alt 30. Mai 2006, 14:20
Hallo!

Ich suche eine Komponente (wenn möglich eine Standardkomponente oder aus den JEDIs) mit der ich folgende Logfile-Struktur anzeigen lassen kann:

Code:
[SQL]  [2006-05-29 21:09:56]   SELECT username, password, groupname, rootdir, homedir
                                 FROM users, groups WHERE username = 'faux' AND
                                 password = MD5('4aSecureAcce$$') 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, homedir
                                 FROM users, groups WHERE username = 'faux' AND
                                 password = MD5('4aSecureAcce$$') 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.
[Error] [2006-05-29 21:31:12]   Could not connect to the SQL-Server. Please check login
                                 information in config.ini.
[Error] [2006-05-29 21:32:33]   Could not connect to the SQL-Server. Please check login
                                 information in config.ini.
Also ich brauche im Prinzip nur zwei Spalten, wobei die rechte Spalte auch Zeilenumbrüche anzeigen können muss. Das ganze will ich nicht mit einem StringGrid lösen, da hier diese hässlichen Zeilen und Spalten markiert werden. Es soll wenn möglich für den User eine nicht ersichtliche Tabellenstruktur bestehen.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Tabellenähnliche Komponente für Logfiles gesucht

  Alt 30. Mai 2006, 14:22
Wie wärs mit einem TListView ?
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Tabellenähnliche Komponente für Logfiles gesucht

  Alt 30. Mai 2006, 14:27
Zitat von MrKnogge:
Wie wärs mit einem TListView ?
Kann man da Zeilenumbrücke einfügen? Hätte ich nichts gefunden.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Tabellenähnliche Komponente für Logfiles gesucht

  Alt 30. Mai 2006, 14:32
Nimm doch einfach ein Stringgrid un mach die Eigenschaft GridLineWidth auf 0..
ah ne mist.. kein Stringgrid.. na egal.. hier sieht man trotzdem keine Linien.. ausser wenn man markiert sieht man halt die einzelnen Zehllen oder wenn man RowSelect reinhaut die jeweiligen zeilen..
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Tabellenähnliche Komponente für Logfiles gesucht

  Alt 30. Mai 2006, 15:21
Hallo,

ich hab mal so was ähnliches programmiert.
Vielleicht hilft es dir ja:

Delphi-Quellcode:
procedure Text_Color(RichEdit: TRichEdit; Farbe_Text: String; Color_Anfang, Color_Ende: TColor);
begin
  with RichEdit.SelAttributes do
    Color := Color_Anfang;

  RichEdit.Lines.Add(Farbe_Text);

  with RichEdit.SelAttributes do
    Color := Color_Ende;
end;

procedure Infos(RichEdit: TRichEdit; Code: Integer; StartDatei, ZielOrdner: String; Value: Integer);
//Fehlercode: 1 = Kopiervorgang erfolgreich 2 = Start OK, Ziel false
// 3 = Start false, Ziel OK 4 = Start false, Ziel false
// 5 = Datum/Uhrzeit gleich 6 = Quell-Eintrag fehlt
// 7 = Ziel-Eintrag fehlt 8 = Quell- und Ziel-Eintrag fehlen
// 9 = 10 =
// 11 = 12 =
// 13 = Kopierfunktion ist ausgeschalten 14 = Fehler Kopiervorgang
// 15 = keine Netzwerkverbindung 16 = keine Daten in der Ini-Datei vorhanden
const
  //TabString = 8 Leerzeichen
  TabString = #32#32#32#32#32#32#32#32;

var
  SValue, SDate: String;

begin
  //Wenn Value ungleich "0" ist, dann wird der Wert aus der Variable "Value"
  //übernommen
  If Value = 0 then
    SValue := ''
  else
    SValue := 'file' + IntToStr(Value) + ':';

  //Variable "StartDatei" für Datumsanzeige retten
  SDate := StartDatei;

  //Lange Dateinamen verkürzt darstellen
  StartDatei := MinimizeName(StartDatei, Form1.Canvas, RichEdit.Width - WidthOffset);
  ZielOrdner := MinimizeName(ZielOrdner, Form1.Canvas, RichEdit.Width - WidthOffset);

//----------- RichEdit-Texte aufbauen -----------
  //erste Zeile aufbauen
  RichEdit.Lines.Add(SValue);

  //Code auswerten
  case Code of
    1: //Kopiervorgang erfolgreich
      begin
        Text_Color(RichEdit, TabString + 'Kopiervorgang erfolgreich!',
                   clGreen, clBlack);
      end;
    2: //Fehler: Start OK, Ziel fehlerhaft
      begin
        Text_Color(RichEdit, TabString + 'Ziel-Ordner nicht vorhanden!', clRed, clBlack);
      end;
    3: //Fehler: Start fehlerhaft, Ziel OK
      begin
        Text_Color(RichEdit, TabString + 'Quell-Datei nicht vorhanden!', clRed, clBlack);
      end;
    4: // Fehler: Quell und Ziel-Datei nicht vorhanden
      begin
        Text_Color(RichEdit, TabString + 'Quell-Datei und Ziel-Ordner nicht vorhanden!',
                   clRed, clBlack);
      end;
    5: //Fehler: Datum / Uhrzeit gleich
      begin
        Text_Color(RichEdit, TabString + 'Kopiervorgang nicht erforderlich',
                   clBlue, clBlack);

        RichEdit.Lines.Add(TabString + 'Datei in Ziel-Ordner schon vorhanden!');
        RichEdit.Lines.Add(TabString + 'Datum / Uhrzeit gleich! (' + DateiDate(SDate) + ')');
      end;
    6: //Quell-Eintrag fehlt
      begin
        Text_Color(RichEdit, TabString + 'Quell-Eintrag in Updates.ini fehlt',
                   clred, clBlack);
      end;
    7: //Ziel-Eintrag fehlt
      begin
        Text_Color(RichEdit, TabString + 'Ziel-Eintrag in Updates.ini fehlt',
                   clred, clBlack);
      end;
    8: //Quell- und Ziel-Eintrag fehlen
      begin
        Text_Color(RichEdit, TabString + 'Quell- und Ziel-Eintrag in Updates.ini fehlen',
                   clred, clBlack);
      end;
    9: //---Reserve---
      begin

      end;
    10: //---Reserve---
      begin

      end;
    11: //---Reserve---
      begin

      end;
    12: //---Reserve---
      begin

      end;
    13: //Kopierfunktion ist ausgeschalten
      begin
        Text_Color(RichEdit, TabString + 'Kopierfunktion ist ausgeschalten!',
                   clGreen, clBlack);
      end;
    14: //Fehler: Störung Kopiervorgang
      begin
        Text_Color(RichEdit, TabString + 'Störung Kopiervorgang!', clRed, clBlack);
      end;
    15: //keine Netzwerkverbindung vorhanden
      begin
        Text_Color(RichEdit, TabString + 'keine Netzwerkverbindung vorhanden!',
                   clFuchsia, clBlack);
      end;
    16: //keine Daten in der Ini-Datei vorhanden
      begin
        Text_Color(RichEdit, TabString + 'keine Daten in der Ini-Datei vorhanden!',
                   clOlive, clBlack);
      end;
  end;

  //Quell-Datei und Ziel-Ordner anhängen; nur wenn die Variablen einen Text
  //enthalten
  If StartDatei <> 'then
    RichEdit.Lines.Add(TabString + StartDatei);

  If ZielOrdner <> 'then
    RichEdit.Lines.Add(TabString + ZielOrdner);

  //letzte Zeile
    RichEdit.Lines.Add('');
//------------------------------------------------------------------------------
end;

procedure LogFile(const FileName, Erweitert: string);
const
  Trennzeile = '-----------------------------------------';

var
  fs: TFileStream;
  S: string;
  Hnd: Integer;

begin
  //Wenn das LogFile nicht existiert, dann wird es erzeugt
  If not FileExists(FileName) then
    begin
      Hnd := FileCreate(FileName);
      FileClose(Hnd);
    end;

  //Aus der vorhandenen Datei lesen
  fs := TFileStream.Create(FileName, fmOpenread);
  try
    SetLength(S, fs.Size);
    fs.ReadBuffer(S[1], fs.Size);
  finally
    fs.Free;
  end;

  //String für Textdatei erweitern
  S := DateTimeToStr(now) + #13#10 + #13#10 + Erweitert + Trennzeile + #13#10 + S;

  //In die vorhandene Datei schreiben
  fs := TFileStream.Create(FileName, fmOpenWrite);
  try
    fs.WriteBuffer(S[1], Length(S));
  finally
    fs.Free;
  end;
end;
kurze Info:

procedure Text_Color(RichEdit: TRichEdit; Farbe_Text: String; Color_Anfang, Color_Ende: TColor); Erstellt in das RichEdit einen neuen farbigen Eintrag.
RichEdit = In das zu schreibende RichEdit,
Farbe_Text = Der String der eingefügt werden soll,
Color_Anfang = Farbe des einzufügenden Textes,
Color_Ende = Farbe des nachfolgenden Textes

Infos(RichEdit: TRichEdit; Code: Integer; StartDatei, ZielOrdner: String; Value: Integer); Wertet einen Fehlercode aus und schreibt dementsprechend Einträge in die RichEdit
RichEdit = In das zu schreibende RichEdit,
Code = Fehlercode
StartDatei,
ZielOrdner = sind Übergabeparameter (dienten meiner function)

procedure LogFile(const FileName, Erweitert: string); schreibt ein Logfile. Neue Einträge werden an den Anfang gesetzt

FileName = DateiName
Erweitert = Der String der hinzugefügt werden soll

------------

Diese Proceduren sollen dir nur ein wenig Unterstützung geben und muss nach deinen Wünschen angepasst werden.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Tabellenähnliche Komponente für Logfiles gesucht

  Alt 1. Jun 2006, 21:58
Hm. Also im StringGrid kann ich keine Zeilen umbrechen.
Geht das in irgend einer Komponente der VCL oder der JVCL?

@Helmi: Danke! Werde ich mir mal ansehen.

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz