101 lines
2.8 KiB
ObjectPascal
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.
|
|
|
|
|