RichEdit VS SynEdit
Welche der beiden Komponenten ist besser bzw was sind Vor und Nachteile?
Oder sollte man ganz auf eine andere Komponente umsteigen? |
Re: RichEdit VS SynEdit
Hallo
Es kommt darauf an, was du damit machen möchtest. Jede dieser Komponente hat seine Vorteile und Nachteile. |
Re: RichEdit VS SynEdit
Eig so als Texteditor.
Syntax Highlighting etc das ganze drum herum. |
Re: RichEdit VS SynEdit
Dann ist SynEdit sicher die bessere Wahl.
Mit TRichEdit kannst du u.a. rtf-Text darstellen. |
Re: RichEdit VS SynEdit
Eigentlich geht es nur um normale "*.txt" Dokumente bzw später vllt ein eigenes Format. Soll kein "High End" Texteditor werden. Nur sowas in Richtung Notepad.
Nur so als Übung halt. Ich hab gerade mal die Synedit Komponenten installiert. Allerdings muss ich jetzt jede Unit mit in den Projekt Ordner kopieren, damit ich das Programm starten kann. Sonst erhalte ich folgende Meldung: Zitat:
|
Re: RichEdit VS SynEdit
Trage den Pfad zu den Sourcen von SynEdit mal in den Suchpfad von Delphi ein. Dann wird auch Dein Programm ohne kopieren funktionieren.
|
Re: RichEdit VS SynEdit
Zitat:
Die Pfade werden ja eig alle richtig angezeigt. Hab Delphi 7. Wo genau muss ich das denn Eintragen? |
Re: RichEdit VS SynEdit
Tools-->Options-->Library Win32, so heißt es unter RAD Studio 2007.
|
Re: RichEdit VS SynEdit
Tools -> Umgebungsoptionen -> Bibliothek -> Bibliothekspfad
dort ; und anschließend SynEdit-Verzeichnis hinzufügen so gehts bei D7. Alternative: Alle SynEdit Dateien in <DelphiVerzeichnis>\Lib kopieren. Ist aber nicht zu empfehlen. |
Re: RichEdit VS SynEdit
-.- War nur nen kleiner "Tippfehler" Aber trotzdem Danke! ;)
|
Re: RichEdit VS SynEdit
Liste der Anhänge anzeigen (Anzahl: 1)
Kann man bei dem SynEdit eig auch vorne die Zeilennummer anzeigen lassen?
(s. Anhang) |
Re: RichEdit VS SynEdit
Schaust im OI unter Gutter, da ist das drin.
Für SynEdit würd ich Dir empfehlen einfach mal damit rumzuspielen, dadurch findet Du das meiste. |
Re: RichEdit VS SynEdit
Besten Dank! Habs gefunden.
Ja, iwie muss ich das vorhin übersehen haben.. Mal so als Frage, welche Erfahrungen habt Ihr zum Thema "Syntax Highlighting beim RichEdit"? |
Re: RichEdit VS SynEdit
Das ich lieber SynEdit nehme :mrgreen: Aber nun Spass beiseite. Beim SynEdit habe ich die Möglichkeit das Highlighting selber zu definieren über den Highlighter Manager oder die fertigen Highlighter mir so einzustellen, wie ich möchte. Bei einem TRichEdit müsstest Du das alles selber machen.
|
Re: RichEdit VS SynEdit
Und bei großen Mengen wird das im RichEdit auch nicht gerade performant sein.
Das SynEdit ist einfach dafür da. |
Re: RichEdit VS SynEdit
Liste der Anhänge anzeigen (Anzahl: 1)
Taugen die vorgefertigten Highlighter denn was? Ich mein, ich kenn jetzt nicht jede Programmiersprache bzw die Tags etc. Also von daher würde das schon einiges an Arbeit abnehmen.
EDIT: hm der PHP Highlighter taugt iwie so gut wie nichts. Noch weniger! Wie kann ich den manuell bearbeiten? Ich hab mal nen Demo Programm angehängt. Wobei es hier mehr um die Funktion als um die Optik etc geht. Mr Source:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, SynHighlighterPHP, SynHighlighterHtml, SynEditHighlighter, SynHighlighterCSS, SynEdit, SynHighlighterIni, SynHighlighterSQL, SynHighlighterUNIXShellScript, SynHighlighterPython, SynHighlighterPerl, SynHighlighterBat, SynHighlighterXML, SynHighlighterVBScript, SynHighlighterJScript, SynHighlighterCpp, SynHighlighterCS, SynHighlighterVB, SynHighlighterPas, SynHighlighterJava; type TForm1 = class(TForm) SynEdit1: TSynEdit; css: TSynCssSyn; html: TSynHTMLSyn; php: TSynPHPSyn; Button1: TButton; ComboBox1: TComboBox; OpenDialog1: TOpenDialog; Button2: TButton; Button3: TButton; SaveDialog1: TSaveDialog; java: TSynJavaSyn; pas: TSynPasSyn; vb: TSynVBSyn; c: TSynCSSyn; cpp: TSynCppSyn; js: TSynJScriptSyn; vbs: TSynVBScriptSyn; xml: TSynXMLSyn; bat: TSynBatSyn; perl: TSynPerlSyn; python: TSynPythonSyn; unix: TSynUNIXShellScriptSyn; sql: TSynSQLSyn; ini: TSynIniSyn; procedure ComboBox1Change(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ComboBox1Change(Sender: TObject); begin IF ComboBox1.ItemIndex = 0 THEN Synedit1.Highlighter := css; IF ComboBox1.ItemIndex = 1 THEN Synedit1.Highlighter := html; IF ComboBox1.ItemIndex = 2 THEN Synedit1.Highlighter := php; IF ComboBox1.ItemIndex = 3 THEN Synedit1.Highlighter := java; IF ComboBox1.ItemIndex = 4 THEN Synedit1.Highlighter := pas; IF ComboBox1.ItemIndex = 5 THEN Synedit1.Highlighter := vb; IF ComboBox1.ItemIndex = 6 THEN Synedit1.Highlighter := c; IF ComboBox1.ItemIndex = 7 THEN Synedit1.Highlighter := cpp; IF ComboBox1.ItemIndex = 8 THEN Synedit1.Highlighter := js; IF ComboBox1.ItemIndex = 9 THEN Synedit1.Highlighter := vbs; IF ComboBox1.ItemIndex = 10 THEN Synedit1.Highlighter := xml; IF ComboBox1.ItemIndex = 11 THEN Synedit1.Highlighter := bat; IF ComboBox1.ItemIndex = 12 THEN Synedit1.Highlighter := perl; IF ComboBox1.ItemIndex = 13 THEN Synedit1.Highlighter := python; IF ComboBox1.ItemIndex = 14 THEN Synedit1.Highlighter := unix; IF ComboBox1.ItemIndex = 15 THEN Synedit1.Highlighter := sql; IF ComboBox1.ItemIndex = 16 THEN Synedit1.Highlighter := ini; end; procedure TForm1.Button1Click(Sender: TObject); begin IF OpenDialog1.Execute THEN SynEdit1.Lines.LoadFromFile(OpenDialog1.FileName); end; procedure TForm1.Button3Click(Sender: TObject); begin SynEdit1.Lines.SaveToFile(SaveDialog1.FileName); end; procedure TForm1.Button2Click(Sender: TObject); begin close; end; end. |
Re: RichEdit VS SynEdit
Die Highlighter sind alle nicht mehr auf dem Stand der Zeit.
Bearbeiten kannst Du ihn: Entweder komplett neu mit den SynGen machen oder die vorhandene Unit ändern. |
Re: RichEdit VS SynEdit
Zitat:
|
Re: RichEdit VS SynEdit
Zitat:
Delphi-Quellcode:
Erst wähle ich Ini1 aus, das wird auch, wie gewollt, gecheckt/ markiert/ abgehackt, wie auch immer. Dann wähle ich Java1 aus. Wird auch gecheckt/ markiert/ abgehackt allerdings beleibt INI1 dann auch gecheckt. !?
function sprache(sprache: TSynCustomHighlighter; name : TMenuItem) : String;
BEGIN frmEdit.mText.Highlighter := sprache; if not (frmEdit.mText.Highlighter = sprache) then begin name.Checked := false; end else begin name.Checked := true; end; frmEdit.sbStatus.Panels[1].Text := name.Caption; END; procedure TfrmEdit.INI1Click(Sender: TObject); begin sprache(ini, ini1); end; procedure TfrmEdit.Java1Click(Sender: TObject); begin sprache(java, Java1); end; Zitat:
Ist aber auch nur ne "quick % dirty" Demo. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:06 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