77 lines
1.5 KiB
ObjectPascal
77 lines
1.5 KiB
ObjectPascal
unit unmain;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
|
|
LclIntf, LclProc, LclType,
|
|
ecSyntAnal,
|
|
formlexerlib;
|
|
|
|
type
|
|
{ TfmMain }
|
|
|
|
TfmMain = class(TForm)
|
|
bShow: TButton;
|
|
Label1: TLabel;
|
|
procedure bShowClick(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
private
|
|
procedure UpdStatus;
|
|
{ private declarations }
|
|
public
|
|
{ public declarations }
|
|
end;
|
|
|
|
var
|
|
fmMain: TfmMain;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
var
|
|
Manager: TecSyntaxManager;
|
|
|
|
{ TfmMain }
|
|
|
|
procedure TfmMain.bShowClick(Sender: TObject);
|
|
var
|
|
dirAcp: string;
|
|
begin
|
|
dirAcp:= ExtractFileDir(Application.ExeName)+DirectorySeparator+'acp';
|
|
CreateDir(dirAcp);
|
|
|
|
DoShowDialogLexerLib(Manager, dirAcp, 'Courier new', 9);
|
|
if Manager.Modified then
|
|
begin
|
|
UpdStatus;
|
|
Manager.Modified:= false;
|
|
if Application.MessageBox('Lib was modified. Save file?', 'Demo',
|
|
MB_OKCANCEL or MB_ICONQUESTION)=id_ok then
|
|
Manager.SaveToFile(Manager.FileName);
|
|
end;
|
|
end;
|
|
|
|
procedure TfmMain.FormCreate(Sender: TObject);
|
|
var
|
|
fn: string;
|
|
begin
|
|
fn:= ExtractFileDir(Application.ExeName)+DirectorySeparator+
|
|
'lexlib'+DirectorySeparator+'small.lxl';
|
|
Manager:= TecSyntaxManager.Create(Self);
|
|
Manager.LoadFromFile(fn);
|
|
UpdStatus;
|
|
end;
|
|
|
|
procedure TfmMain.UpdStatus;
|
|
begin
|
|
Label1.Caption:= Format('library "%s" has %d lexers',
|
|
[Extractfilename(Manager.FileName), Manager.AnalyzerCount]);
|
|
end;
|
|
|
|
end.
|
|
|