AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RichEdit VS SynEdit

Ein Thema von BullsEye · begonnen am 9. Feb 2009 · letzter Beitrag vom 9. Feb 2009
Antwort Antwort
Seite 2 von 2     12   
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#11

Re: RichEdit VS SynEdit

  Alt 9. Feb 2009, 19:25
Kann man bei dem SynEdit eig auch vorne die Zeilennummer anzeigen lassen?
(s. Anhang)
Miniaturansicht angehängter Grafiken
zahlen_110.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#12

Re: RichEdit VS SynEdit

  Alt 9. Feb 2009, 19:33
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.
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#13

Re: RichEdit VS SynEdit

  Alt 9. Feb 2009, 19:46
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"?
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#14

Re: RichEdit VS SynEdit

  Alt 9. Feb 2009, 20:06
Das ich lieber SynEdit nehme 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.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#15

Re: RichEdit VS SynEdit

  Alt 9. Feb 2009, 20:07
Und bei großen Mengen wird das im RichEdit auch nicht gerade performant sein.

Das SynEdit ist einfach dafür da.
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#16

Re: RichEdit VS SynEdit

  Alt 9. Feb 2009, 20:21
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.
Angehängte Dateien
Dateityp: exe demo_139.exe (810,5 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#17

Re: RichEdit VS SynEdit

  Alt 9. Feb 2009, 21:31
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#18

Re: RichEdit VS SynEdit

  Alt 9. Feb 2009, 21:35
Zitat:
Delphi-Quellcode:
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;
Wäre da ein case nicht angebrachter?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#19

Re: RichEdit VS SynEdit

  Alt 9. Feb 2009, 22:42
Zitat von Die Muhkuh:
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.
Hab ich auch germerkt Ich denke, ich werde, sobald ich ein wenig mehr Zeit habe, einmal ein paar Units überarbeiten!



Delphi-Quellcode:
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;
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. !?


Zitat von DeddyH:
Wäre da ein case nicht angebrachter?
Wäre sinnvoller, ja
Ist aber auch nur ne "quick % dirty" Demo.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 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