{ *************************************************************************** * * * This source is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This code is distributed in the hope that it will be useful, but * * WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * General Public License for more details. * * * * A copy of the GNU General Public License is available on the World * * Wide Web at . You can also * * obtain it by writing to the Free Software Foundation, * * Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1335, USA. * * * *************************************************************************** } program synedit1; {$mode objfpc}{$H+} uses Classes, LazUTF8, Forms, Graphics, Interfaces, SynEdit, SynHighlighterPas; type TForm1 = class(TForm) SynEdit1: TSynEdit; PascalHighligher: TSynPasSyn; procedure Form1Resize(Sender: TObject); private public procedure LoadDefaultText; procedure LoadText(const Filename: string); constructor Create(TheOwner: TComponent); override; destructor Destroy; override; end; { TForm1 } procedure TForm1.Form1Resize(Sender: TObject); begin with SynEdit1 do SetBounds(10,10,Parent.ClientWidth-10,Parent.ClientHeight-20); end; procedure TForm1.LoadDefaultText; var E: String; begin E:=#13#10; SynEdit1.Lines.Text:= '{'+e+ ' SynEdit Test'+e+ '}'+e+ 'program synedit1;'+e+ ''+e+ '{$mode objfpc}{$H+}'+e+ ''+e+ 'uses'+e+ ' Interfaces, Classes, SysUtils, Forms, Controls, GraphType, Graphics, SynEdit,'+e+ ' SynHighlighterPas;'+e+ ''+e+ 'type'+e+ ' TForm1 = class(TForm)'+e+ ' SynEdit1: TSynEdit;'+e+ ' PascalHighligher: TSynPasSyn;'+e+ ' procedure Form1Resize(Sender: TObject);'+e+ ' private'+e+ ' public'+e+ ' procedure LoadDefaultText;'+e+ ' procedure LoadText(const Filename: string);'+e+ ' constructor Create(TheOwner: TComponent); override;'+e+ ' destructor Destroy; override;'+e+ ' end;'+e+ ''+e+ '{ TForm1 }'+e+ ''+e+ 'procedure TForm1.Form1Resize(Sender: TObject);'+e+ 'begin'+e+ ' with SynEdit1 do'+e+ ' SetBounds(10,10,Parent.ClientWidth-10,Parent.ClientHeight-20);'+e+ 'end;'+e+ ''+e+ 'end.'+e; end; procedure TForm1.LoadText(const Filename: string); begin SynEdit1.Lines.LoadFromFile(Filename); end; constructor TForm1.Create(TheOwner: TComponent); begin inherited CreateNew(TheOwner, 1); SetBounds(10,20,980,700); OnResize:=@Form1Resize; SynEdit1:=TSynEdit.Create(Self); with SynEdit1 do begin Name:='SynEdit1'; Parent:=Self; end; PascalHighligher:=TSynPasSyn.Create(Self); with PascalHighligher do begin Name:='PascalHighligher'; CommentAttri.Foreground:=clBlue; CommentAttri.Style:=[fsBold]; KeyAttri.Style:=[fsBold]; StringAttri.Foreground:=clBlue; SymbolAttri.Foreground:=clRed; end; SynEdit1.Highlighter:=PascalHighligher; if ParamCount > 0 then LoadText(ParamStrUTF8(1)) else LoadDefaultText; OnResize(nil); end; destructor TForm1.Destroy; begin inherited Destroy; end; var Form1: TForm1; begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end.