101 lines
2.8 KiB
ObjectPascal

unit umain;
{
How to write:
- Separate commands by line (only one command in one line)
- Separate parameters by single space ' ' or comma ','
- All parameters are obligatory
- Put strings with double quotes "text"
- Put float numbers as strings "1,5"
- Comments are threated as the first parameter
- Comment with '// comment' and '{ comment }' or '//,comment' and '{,comment}'
- Multi line comments not allowed
- Use 'let' to store values: "let a 100" "let key value"
Error handling:
- If one line fails and program not crash it will continue running other lines
- Empty lines will not run and will not be printed in debug
- Wrong number of parameters will not run and will show an error in debug
- Wrong command name will not run and will show an error in debug
}
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, SynEdit, SynCompletion, SynHighlighterAny, Forms,
Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, BGRAGraphicControl,
BGRABitmap, BCTypes, BGRAScript, BGRAVirtualScreen, BCButton, bgrabitmaptypes;
type
{ TForm1 }
TForm1 = class(TForm)
BCButton1: TBCButton;
BGRAGraphicControl1: TBGRAGraphicControl;
BGRAVirtualScreen1: TBGRAVirtualScreen;
ListBox1: TListBox;
Splitter1: TSplitter;
SynAnySyn1: TSynAnySyn;
SynCompletion1: TSynCompletion;
SynEdit1: TSynEdit;
procedure BCButton1Click(Sender: TObject);
procedure BGRAGraphicControl1Click(Sender: TObject);
procedure BGRAGraphicControl1Redraw(Sender: TObject; Bitmap: TBGRABitmap);
procedure BGRAVirtualScreen1Redraw(Sender: TObject; Bitmap: TBGRABitmap);
procedure FormCreate(Sender: TObject);
procedure ListBox1DblClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.BGRAGraphicControl1Redraw(Sender: TObject; Bitmap: TBGRABitmap);
begin
BGRAScript.ScriptCommandList(SynEdit1.Lines, Bitmap);
end;
procedure TForm1.BGRAVirtualScreen1Redraw(Sender: TObject; Bitmap: TBGRABitmap);
begin
Bitmap.DrawHorizLine(0,Bitmap.Height-3,Bitmap.Width-1,BGRA(215,215,215,255));
Bitmap.DrawHorizLine(0,Bitmap.Height-2,Bitmap.Width-1,BGRA(235,235,235,255));
Bitmap.DrawHorizLine(0,Bitmap.Height-1,Bitmap.Width-1,BGRA(240,240,240,255));
end;
procedure TForm1.BGRAGraphicControl1Click(Sender: TObject);
begin
BGRAGraphicControl1.DiscardBitmap;
end;
procedure TForm1.BCButton1Click(Sender: TObject);
begin
ListBox1.Visible := not ListBox1.Visible;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
BGRAScript.SynCompletionList(SynCompletion1.ItemList);
BGRAScript.SynCompletionList(ListBox1.Items);
end;
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
SynEdit1.Lines.Add(ListBox1.GetSelectedText);
end;
end.