Autor Beitrag
Palmetshofer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Fr 09.08.02 14:11 
Hallo,

da gibt es einige. Die beliebteste ist SynEdit.

Gruß
Klabautermann
Palmetshofer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 699

WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
BeitragVerfasst: Fr 09.08.02 21:49 
selber bauen :wink:

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..... :wink:


MathiasH

_________________
"Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
Palmetshofer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 699

WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 699

WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
BeitragVerfasst: 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:

ausblenden 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 :wink:

MathiasH

_________________
"Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
MathiasH
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 699

WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
BeitragVerfasst: So 11.08.02 10:36 
Da ich heut gut drauf bin gibts das mit den Klammern auch noch dazu!:

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 699

WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
BeitragVerfasst: 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 :oops:

Mathaish

_________________
"Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mo 12.08.02 11:52 
Schau Dir doch mal diese Dokumentation an: Syntaxhighlighting im RichEdit!

Gruß
MrKnogge
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 76

Win XP, Win 7
Delphi 7 Prof, Delphi 2005 PE, C# (VS 2008)
BeitragVerfasst: 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