Autor |
Beitrag |
Palmetshofer
      
Beiträge: 44
|
Verfasst: Fr 09.08.02 14:09
Ich habe einen Editor für eine Programmiersprache geschrieben und möchte eine Syntaxhighlightfunktion einbauen. Das heist wenn ich zum Beispiel { eingebe soll das dann blau sein aber nur das zeichen!
Gibts eventuell auch eine Komponente dafür??
Danke im Voraus für eure Hilfe!
_________________ Menschen stolpern nicht über Berge, sondern über Maulwurfshügel.
Konfuzius
|
|
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Fr 09.08.02 14:11
Hallo,
da gibt es einige. Die beliebteste ist SynEdit.
Gruß
Klabautermann
|
|
Palmetshofer 
      
Beiträge: 44
|
Verfasst: Fr 09.08.02 14:33
HHm kann ich da meine eigene Syntax mit eigenen farben und den zu erkennenden zeichen einstellen??? Hab nämlich einen Editor für Macromedia Flash MX ActionScript programmiert bzw. programmiere daran. Ist erst v 1.0 und die nächste version sollte dann Syntaxhighlight beherschen!!
Mfg Matthias
_________________ Menschen stolpern nicht über Berge, sondern über Maulwurfshügel.
Konfuzius
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Fr 09.08.02 17:32
Palmetshofer hat folgendes geschrieben: | HHm kann ich da meine eigene Syntax mit eigenen farben und den zu erkennenden zeichen einstellen |
Ja! Du musst dafür aber eine Ableitung von TSynCustomHighlighter erstellen. Schau Dir am besten vorher einmal die mitgelieferten Highlighter-Klassen (für Pascal, C++, ...) an.
Gruß
TINO
|
|
Palmetshofer 
      
Beiträge: 44
|
Verfasst: Fr 09.08.02 21:09
Hmm die sind ziemlich schwierig aufgebaut. Gibts da nichts einfacheres wo man die keywords einstallen kann und die Farbe dazu ?
mfg matthias
_________________ Menschen stolpern nicht über Berge, sondern über Maulwurfshügel.
Konfuzius
|
|
MathiasH
      
Beiträge: 699
WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
|
Verfasst: Fr 09.08.02 21:49
selber bauen
es ist zwar ne ganze menge QT den du da schreiben musst, aber besonder kompliziert müsste er wohl ich nicht sein, er liefert Stellen die dann im Richedit umgefärbt werden müssen, du musst dich halt mit der Unit "StrUtils" und ähnlichem auskennen.....
MathiasH
_________________ "Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
|
|
Palmetshofer 
      
Beiträge: 44
|
Verfasst: Sa 10.08.02 09:30
Hab erst angefangen delphi zu programmieren. Einfache sachen bekomm ich ja hi aber wenns dann schwierig wird wie sowas da komm ich nicht mehr mit!!
_________________ Menschen stolpern nicht über Berge, sondern über Maulwurfshügel.
Konfuzius
|
|
MathiasH
      
Beiträge: 699
WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
|
Verfasst: Sa 10.08.02 09:43
also die schlüsselwörter uä lassen sich über nen simplen such alog finden, und fett (oder sonst was) machen, das schwierige wären wohl die (und auch string) Kommentar-Umfärbungen, da diese auch über mehrere Zeilen gehen können
Mal schaun, vielleicht poste ich mal ein bisschen code dazu...*denk*
MathiasH
_________________ "Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
|
|
MathiasH
      
Beiträge: 699
WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
|
Verfasst: Sa 10.08.02 10:38
so da binn ich wieder
ich hab ein kleines Progi gebaut das keywords fett darstellt, af dieser basis müsstast du den rest selbst schaffen
hier also die zentrale procedure:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure searchkeywords; var k: integer; Foundpos: integer; begin with Form1 do begin for k := 0 to Memo1.Lines.Count do begin
Foundpos := RichEdit1.FindText(memo1.Lines[k], 0, Length(RichEdit1.Text), [stMatchCase]);
while foundpos <> -1 do begin
//keyword gefunden RichEdit1.selstart := Foundpos; RichEdit1.SelLength := Length(Memo1.Lines[k]); Richedit1.SelAttributes.Style := [fsBold]; Foundpos := RichEdit1.FindText(memo1.Lines[k], Richedit1.SelStart+1, Length(RichEdit1.Text), [stMatchCase]); end;
end; end; end; |
in Memo1 stehen untereinander die keywords und in Richedit1 steht der QT
Viel Spaß damit, ich hoffe ich konnte dir helfen
MathiasH
_________________ "Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
|
|
MathiasH
      
Beiträge: 699
WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
|
Verfasst: So 11.08.02 10:36
Da ich heut gut drauf bin gibts das mit den Klammern auch noch dazu!:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| procedure searchchains(char1, char2: Char); var Foundposopen, Foundposclose: integer; begin with Form1 do begin
Foundposopen := RichEdit1.FindText(Char1, 0, Length(RichEdit1.Text), [stMatchCase]); if Foundposopen <> -1 then begin Foundposclose := Richedit1.FindText(Char2, Foundposopen, Length(Richedit1.Text), [stMatchCase]) end; while foundposopen <> -1 do begin
//keyword gefunden RichEdit1.selstart := Foundposopen; RichEdit1.SelLength := Foundposclose-Foundposopen+1; Richedit1.SelAttributes.Style := [fsItalic]; Richedit1.SelAttributes.Color := clGreen; Foundposopen := RichEdit1.FindText(Char1, Richedit1.SelStart+Richedit1.SelLength+1, Length(RichEdit1.Text), [stMatchCase]); if Foundposopen <> -1 then begin Foundposclose := Richedit1.FindText(Char2, Foundposopen, Length(Richedit1.Text), [stMatchCase]) end; end;
end; end; |
Char1 und 2 sind die Anfangs-und end-Zeichen
MathiasH
_________________ "Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
|
|
Palmetshofer 
      
Beiträge: 44
|
Verfasst: So 11.08.02 12:00
Herzlichen dank!!! Werd mich mit deinem code ein bisschen auseinandersetzen!!! danke!!
_________________ Menschen stolpern nicht über Berge, sondern über Maulwurfshügel.
Konfuzius
|
|
MathiasH
      
Beiträge: 699
WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
|
Verfasst: So 11.08.02 15:56
Wenn du was mit dem Actionscript nicht formatiert bekommst, poste gleich wieder hier, Ich konnte das an Flsh nicht anpassen weil ich davon keinen Schimmer hab
Mathaish
_________________ "Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mo 12.08.02 11:52
Schau Dir doch mal diese Dokumentation an: Syntaxhighlighting im RichEdit!
Gruß
|
|
MrKnogge
      
Beiträge: 76
Win XP, Win 7
Delphi 7 Prof, Delphi 2005 PE, C# (VS 2008)
|
Verfasst: Sa 14.12.02 19:26
Hi
Was ist eigentlich der Unterschied zwischen
SynEdit und SynMemo ?
Könnte mir jemand ein Beispiel zeigen
wie man einen Quelltext dann ausdruckt ?
_________________ MfG MrKnogge
|
|