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 ICQ Log Viewer durch Syntax Hightlighting (https://www.delphipraxis.net/52392-icq-log-viewer-durch-syntax-hightlighting.html)

Stony2k 29. Aug 2005 13:54


ICQ Log Viewer durch Syntax Hightlighting
 
Hoi,

ich hatte vor ein kleines Programm zu schreiben, womit man eine ICQ Logfile einlesen kann.
Habe dann nach Begriffen wir Syntax Hightlighting gesucht, aber nur Dinge gefunden um den Delphi Quelltext farbig zu machen.
Daher meine Frage an euch:
Wie stelle ich es an, ein Programm zu schreiben, womit man eine ICQ Logfile einliest und das Programm dann Dinge wie Sende und Absender in einer bestimmten Farbe einfärbt?

MfG Stony

Sergej 29. Aug 2005 14:01

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Schau die mal das SynEdit-Project an. Das dürfte was für dich sein...


Greetz Sergej

Stony2k 29. Aug 2005 14:26

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Ja, das hatte ich auch gefunden, nur keine Ahnung, wie man genau damit umgeht.
Vllt. hat das ja wer schonmal benutzt und kann mir dabei helfen.

Sergej 29. Aug 2005 14:37

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Also wenn du die Log-Datei anhängen könntest, würd ich mal versuchen einen speziellen Highlighter zu basteln.


Greetz Sergej

Stony2k 29. Aug 2005 15:45

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Jau, habe mal eine test Datei gemacht, kannst ja mal sehen ob du da was hinbekommst.
Wäre auch nett, wenn du mir dann den Source Code zeigen kannst, weil dann kann ich am besten lernen, wie sowas aufgebaut ist.


Zitat:

Zitat von ICQ Logdatei
Stony messages history

Date : 29.08.2005 Time : 16:44
To : Stony
test

Date : 29.08.2005 Time : 16:44
From : Hitman[WoWGer]
test

Date : 29.08.2005 Time : 16:44
To : Stony
test


yankee 29. Aug 2005 15:56

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Bei SynEdit ist eine Anleitung im HTML-Format dabei, wie du dir da eigene Syntaxhighlighter erstellst.

Stony2k 29. Aug 2005 20:34

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Ja das Prob ist, dass ich bei Synedit nicht so ganz durchblicke, darum meinte ich ja, ob wer das schonmal benutzt hat und mir dabei helfen kann. :)
Hoffen wir mal, dass Sergej mir helfen kann.

bigg 29. Aug 2005 21:37

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Liste der Anhänge anzeigen (Anzahl: 2)
moin,

mit Synedit ist das ganz easy und du musst noch nicht mal einen Highlighter dafür entwickeln.
Du könntest den SynGeneralHighlighter oder sogar meine Erweiterung dafür verwenden.
Die Highlighter lassen sich recht gut an deine Bedürfnisse anpassen und sind nicht nur an eine
Sprache gebunden. :)

yankee 29. Aug 2005 22:21

Re: ICQ Log Viewer durch Syntax Hightlighting
 
was gibt es denn an SynEdit zu verstehen?
Du benutzt es genau wie ein memo. Aufs form damit und fertig. Um jetzt auch noch zu highlighten einfach noch ein Highlighter auf's Form und dann bei dem SynEdit unter Highloighter diesen auswählen und schön hast du ein SynEdit mit Highlighting.
Oder was meinst du?

Stony2k 30. Aug 2005 05:41

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Ja, ich habe Delphi 7 und irgentwie bekomme ich es nicht hin, die einzelnen Componenten zu installiern.

Sergej 30. Aug 2005 14:06

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Öhm...also wenn du am Komponenteninstallieren scheiterst...na ich vergneifs mir mal... Was genau bekommst du denn nicht hin? Konkretisier doch dein Problem mal ein bischen, damit wir dir helfen können.


Greetz Sergej

Stony2k 30. Aug 2005 14:22

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Ich entpacke SinEdit 1.1.
Dort ist ein Ordner, nachmens Paackages. Dort sind einige *.dpk-Dateien drin. Nur leider keine für Delphi 7, also nehme ich eine für Delphi 6. Ich öffnet also die Datei SynEdit_D6.dpk und drücke sobald Delphi auf ist, auf compile.
Dann bekomme ich aber nur folgende Fehlermeldung:
[Fatal Error] SynEditReg.pas(43): File not found: 'SynEditStrConst.dcu'

Und ich weiss bei besten Willen nicht, was ich da machen kann.

bigg 30. Aug 2005 14:38

Re: ICQ Log Viewer durch Syntax Hightlighting
 
moin,

Synedit 1.1 ist viel zu buggy. :)
Ich empfehle dir die aktuelle CVS oder diese Version hier herunterzuladen und zu installieren.

Die Demo lässt sich im übrigen nur mit dem Highlighter im Anhang kompilieren,
wenn du ihn nutzen möchtest, kopiere ihn in den Source- oder Synedit-Ordner, so
dass der alte SynGeneralHighlighter überschrieben wird.

Stony2k 30. Aug 2005 17:17

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Ja, aber soweit ich gelesen habe, soll CVS noch komplizierter sein.
Und auch wenn ich den Highlighter im Anhang, mit der von dem im Syn ordner überschreibe, das Paket compilieren klappt immer noch net..
Edit: Auch wenn ich das SynEdit von dir nehme, das lässt sich zwar installieren, aber wenn ich das Programm von Big compilieren will, bekomme ich immer folgende Fehlermeldung:
Delphi-Quellcode:
[Fatal Error] Unit1.pas(7): File not found: 'SynEditHighlighter.dcu'
Selbst wenn ich ein neues Projekt mache und mir die SynEdit Componente auf die Forum ziehe, konnt die Fehlermeldung.

bigg 30. Aug 2005 18:26

Re: ICQ Log Viewer durch Syntax Hightlighting
 
hi, :)

die Datei, die nicht gefunden wurde, ist in allen Packeten enthalten.
Grundsätzlich sollten alte Packete deinstalliert und Suchpfade älterer Versionen entfernt werden.

Stony2k 30. Aug 2005 19:42

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Das lustige ist ja, dass ich die alten Packete gelöscht habe befor ich das von deinem Link drauf gemacht habe.
Aber das mit den alten Suchpfaden löschen, wie stelle ich das an?

bigg 30. Aug 2005 20:24

Re: ICQ Log Viewer durch Syntax Hightlighting
 
hi, :)

Im Menü unter Tools -> Umgebungsoptionen -> Bibliothek, kannst du die Suchpfade editieren.
Packete kann man im Menü unter Komponente -> "Packages installieren" verwalten.

Stony2k 31. Aug 2005 14:40

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Meine Delphi Pfade sind alle ungeändert, heisst auf Standart gestellt.. darum verstehe ich das ja auch nicht, wieso die Komponenten nicht gefunden werden können.

Edit: Ok, habe da teilweise nun was mitbekommen und die Source geöffnet.
Wo genau stelle ich nun ein, welchen Text, der in welcher Farbe darstellen soll?

Edit 2: Ok habe mich doch geirrt, das Problem, dass er die SynEdit Kompenten, wie z.B. .dcu-Dateien nicht finden kann, besteht immer noch.

bigg 31. Aug 2005 15:06

Re: ICQ Log Viewer durch Syntax Hightlighting
 
hi, :)

wie, hast du es nun installiert bekommen?
Dann öffne meine Demo und klick auf den SynGeneralSyn-Highlighter.
Im Objektinspektor kannst du anschließend die Eigenschaften der Komponente
(in unserem Fall ein Highlighter) ändern.

edit:

Wie installiert man SynEdit:
- die "hier Version" herunterladen
- Entpacken
- SynGeneralSyn-Highlighter in das SynEdit-Verzeichnis kopieren
- DPK mit Borland Delphi öffnen (es gibt nur eine)
- Installieren

Stony2k 31. Aug 2005 15:23

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Japs, genau das habe ich gemacht.
Ich habe mir dann testweise auch eine neue Apllikation gemacht, und die EditEdit Komponente draufgepackt. Compiliert -> Es gint.
Dann habe habe den Hightlighter druaf gezogen. Compiliert -> Fehlemeldung. Diverse .dcu und eine .res Datei, konnte Delphi net finden.

Edit: Ja im Objektinspektor, soweit war ich auch. Aber da ist so viel zum Einstellen, kannste mir sagen, wo man was einstellen muss vielleicht? :)

Edit 2: Ok, mit viel rumprobieren, habe ich es nun herausgefunden.
Doch da habe ich noch ein paar Fragen:
Wenn ich als Keyword z.B. "Date" nehme, dann geht es, wenn ich aber "Date :" nehmen, dann nicht. Wieso?

Und ist es irgentwie möglich, Dinge wie
Zitat:

Date : 29.08.2005 Time : 16:44
To : Stony
test
Alles was nach "Date :" kommt und noch vor "Time : 16:44" ist auch einzufärben, bzw. bestimmte String zu ersetzen?

Stony2k 1. Sep 2005 13:01

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Keiner ne Idee?
Bigg müsstest das doch eigentlich wissen :)

bigg 1. Sep 2005 13:58

Re: ICQ Log Viewer durch Syntax Hightlighting
 
hi, :)

mit dem SynGeneralSynHighlighter geht das leider nicht, ich bin davon ausgegangen,
das du nur die wesentlichen Wörter einfärben möchtest, jedoch nicht bestimmte Bereiche.
Ich kenne auch keinen ähnlichen Highlighter, an den du dich orientieren könntest.

Du könntest dir aber einen eigenen Highlighter schreiben, der es kann.
Überleg dir erstmal, wie es aussehen und was es highlighten sollte und schau dir anschließend
einige Highlighter aus dem Synedit-Packet an.

Stony2k 1. Sep 2005 18:21

Re: ICQ Log Viewer durch Syntax Hightlighting
 
gibt es eine Möglichkeit die vertikale Scrollbar nur einzublenden, wenn es nötig ist, heisst, wenn die geladene textdatei nach rechts weiter läuft, als das Fenster vom Hightlighter groß ist?
Und wenn ma weiter nach rets scrolls, sieht man eine vertikale Linie, ist es möglich, diese auszublenden ?

bigg 1. Sep 2005 19:37

Re: ICQ Log Viewer durch Syntax Hightlighting
 
moin, :)

die Randlinie kann man über die Eigenschaft "RightEdge" = 0 verdecken bzw. ausschalten.
Die vertikale Scrollbar kann man im Set "Options", eoHideShowScrollbars anzeigen oder verstecken.

Stony2k 2. Sep 2005 13:57

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Ok danke.
Hat wer schonmal versucht eine Suchfunktion mit dem SynEdit zum laufen zu bringen?
Weil ich habe es probiert, aber bin daran gescheitert. Habe mir dann mal die Demo dazu runtergeladen, aber daraus bin ich auch net schlau geworden.
Kann mir einer helfen, eine Suchfunktion einzubauen ?

Stony2k 3. Sep 2005 10:27

Re: ICQ Log Viewer durch Syntax Hightlighting
 
*Thread nochmal hochschiebt*

Stony2k 3. Sep 2005 15:22

Re: ICQ Log Viewer durch Syntax Hightlighting
 
So, ich habe nun diese Funktion gefunden

Delphi-Quellcode:
procedure TForm1.SearchFind1FindDialogFind(Sender: TObject);
var
  I, J, PosReturn, SkipChars: Integer;
begin
  for I := 0 to Memo1.Lines.Count do
  begin
    PosReturn := Pos(SearchFind1.Dialog.FindText,Memo1.Lines[I]);
    if PosReturn <> 0 then {found!}
    begin
      SkipChars := 0;
      for J := 0 to I - 1 do
        SkipChars := SkipChars + Length(Memo1.Lines[J]);
      SkipChars := SkipChars + (I*2);
      SkipChars := SkipChars + PosReturn - 1;

      Memo1.SetFocus;
      Memo1.SelStart := SkipChars;
      Memo1.SelLength := Length(SearchFind1.Dialog.FindText);
      Break;
    end;
  end;
Diese Funktion funktioniert auch soweit, nur das Problem ist, dass das "weitersuchen" nicht funktioniert.
Kann mir wer sagen, wie ich das mit dem "weitersuchen" hibekommen kann?

Stony2k 7. Sep 2005 15:26

Re: ICQ Log Viewer durch Syntax Hightlighting
 
Gut, habe es heraus gefunden.
Wer nachlesen wie, der möge bitte hier nachsehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:33 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