Autor Beitrag
Scotch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101


Delphi 6 Prof
BeitragVerfasst: Do 25.01.07 00:48 
Hallo,
ich arbeite an einem Editor mit Syntax Highlighting.
Als Komponente nehme ich die von SynEdit.
Aber hier erst mal mein Wunsch was ich gerne realisieren würde aber nicht weiß wo ich anfangen soll.
Wenn ich in einem Syntax (PHP) Z.B eine eckige Klamer "{" habe und den Cursor neben diesem Zeichen habe,
dann möchte ich das er mir das dieses und das dazugehörende (alse die schließende klammer"}") Zeichen
in einer anderen Farbe Formatiert.
Ein Beispiel.
Der Cursor ist irgendwo.
Dann ist die Klammer normal Formatiert.
Ist der Cursor in der Position vor oder hinter der offene oder geschlossenen Klamer dann Zeige
formatier beide klammern in Fettschrift und in blau.
Dieses sollte dann auch funktionieren wenn nach der ersten offene Klammer weiter offene und geschlossene
klammern folgen.
Ich hoffe ich habe mich nicht zu kompliziert ausgedrückt.
Kann ja auch sein das es sowas schon bei Synedit gibt und ich es noch nicht gefunden habe.
JoelH
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 806
Erhaltene Danke: 17

Win10
Delphi Alexandria 11.2 Patch 1
BeitragVerfasst: Do 25.01.07 09:39 
Und was ist jetzt das Problem? Du gehst einfach den Text von der Cursorposition durch und zählst sowohl aufgehende wie auch schliesende Klammer, Sprich, du hast zB. die Variable Klammer und die setzt du auf 1, weil die erste Klammer ja öffnende ist. Kommst du nun im weiteren verlauf eine weitere öffnende Klammer dann Inc(Klammer) , bei schliesenden Klammer dementsprechen dec(Klammer) und nach jedem Fund vergleichst du Klammer mit 0, denn wenn Klammer 0 ist dann hast du die richtige schliesende Klammer gefunden.

_________________
mfg. Joel
perry5
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 102



BeitragVerfasst: Fr 26.01.07 01:55 
user profile iconJoelH hat folgendes geschrieben:
Und was ist jetzt das Problem?

Das die benutze Komponente keine Funktion bietet, die das direkt macht. :-D
Scotch Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101


Delphi 6 Prof
BeitragVerfasst: Fr 26.01.07 02:08 
Erst mal danke für die Antworten.
@perry5
besser hätte ich es nicht ausdrücken können *lol*
Na ja ich weis halt nicht ob die Komponente diese Funktion her gibt.
Ich kenne eine Texteditor der mit Delphi erstellt wurde und auf der Synedit Komponente aufgebaut ist.
Leider wurde das Projekt eingestellt und es gibt soviel ich weiß auch nirgends den Code, so das man dran
weiterarbeiten könnte.
Das Programm lief auch ganz gut und war Freeware aber aus irgend welchen gründen will das Prog. nicht mehr
laufen. Support gibt es natürlich auch nicht mehr :-(
Da dachte ich mir ich versuche es mal mit selber Programmieren.

Mein anliegen hier war halt als Frage gedacht, ob jemand weiß ob Synedit diese Funktion irgendwo schon hat
oder ich diese selber programmieren muss. (wollte das Rad ja nicht nochmal erfinden)

Gruß Ingo
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Fr 02.02.07 04:46 
Moin!

http://www.swissdelphicenter.ch/de/showcode.php?id=2150

Funktioniert wunderbar, ist leicht zu verstehen und bearbeiten und arbeitet ganz einfach mit einem TMemo.
Scotch Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101


Delphi 6 Prof
BeitragVerfasst: Fr 02.02.07 15:14 
Hallo Karlson,
danke für den Link, werde ich mir das mal ansehen.
Auch wenn ich jetzt eine bessere Funktion gefunden habe.
Code Floding für die SynEdit Komponente.
Gruß Ingo
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Sa 03.02.07 00:39 
Okay, das ist natürlich noch besser.
Ich fand den Code nur so genial...der macht das Highlighten mit WM_Paint. Find ich einfach ne super Idee :lol:
Musste dir mal anschauen ;)