mirror of
https://github.com/moparisthebest/Simba
synced 2024-11-04 16:35:15 -05:00
Uhm ScriptSetProp and ScriptGetProp now work with an Enum, ctrl + alt + s is a global shorcut (on windows). f2 is a non-local shortcut to stop the script. Console now hides without losing the information, changed compiler setting for windows, added define mDebug for if you want a more extensive debug.
This commit is contained in:
parent
4697f46d39
commit
51b3c3cf94
@ -1,3 +1,5 @@
|
||||
{ This is an automatically generated lazarus resource file }
|
||||
|
||||
LazarusResources.Add('TScriptFrame','FORMDATA',[
|
||||
'TPF0'#12'TScriptFrame'#11'ScriptFrame'#4'Left'#2#0#6'Height'#3'H'#1#3'Top'#2
|
||||
+#0#5'Width'#3#141#1#12'ClientHeight'#3'H'#1#11'ClientWidth'#3#141#1#8'TabOrd'
|
||||
|
@ -255,11 +255,6 @@
|
||||
<Debugging>
|
||||
<GenerateDebugInfo Value="True"/>
|
||||
</Debugging>
|
||||
<Options>
|
||||
<Win32>
|
||||
<GraphicApplication Value="True"/>
|
||||
</Win32>
|
||||
</Options>
|
||||
</Linking>
|
||||
<Other>
|
||||
<CustomOptions Value="-dUseCThreads
|
||||
|
@ -11,6 +11,9 @@ uses
|
||||
|
||||
|
||||
type
|
||||
|
||||
{ TSimbaPSEventExtension }
|
||||
|
||||
TSimbaPSEventExtension = class(TVirtualSimbaExtension)
|
||||
public
|
||||
constructor Create(FileName: String);
|
||||
@ -31,6 +34,7 @@ type
|
||||
procedure RegisterPSCComponents(Sender: TObject; x: TPSPascalCompiler);
|
||||
procedure RegisterPSRComponents(Sender: TObject; se: TPSExec; x: TPSRuntimeClassImporter);
|
||||
procedure RegisterMyMethods(Sender: TPSScript);
|
||||
procedure OnPSExecute(Sender: TPSScript);
|
||||
|
||||
end;
|
||||
|
||||
@ -38,9 +42,10 @@ type
|
||||
implementation
|
||||
uses
|
||||
uPSC_std, uPSC_controls,uPSC_classes,uPSC_graphics,uPSC_stdctrls,uPSC_forms,
|
||||
uPSC_extctrls, //Compile libs
|
||||
uPSC_extctrls,uPSC_menus, //Compile libs
|
||||
uPSR_std, uPSR_controls,uPSR_classes,uPSR_graphics,uPSR_stdctrls,uPSR_forms,
|
||||
uPSR_extctrls //Runtime-libs
|
||||
uPSR_extctrls,uPSR_menus, //Runtime-libs
|
||||
testunit//Writeln
|
||||
;
|
||||
|
||||
procedure createf;
|
||||
@ -97,27 +102,27 @@ begin
|
||||
PSInstance.OnCompImport:=@RegisterPSCComponents;
|
||||
PSInstance.OnExecImport:=@RegisterPSRComponents;
|
||||
PSInstance.OnCompile:=@RegisterMyMethods;
|
||||
PSInstance.OnExecute:=@OnPSExecute;
|
||||
|
||||
Writeln(Format('%s: Script: %s', [FileName, Self.Script.Text]));
|
||||
formWritelnEx(Format('%s: Script: %s', [FileName, Self.Script.Text]));
|
||||
|
||||
try
|
||||
FEnabled := PSInstance.Compile;
|
||||
finally
|
||||
if FEnabled then
|
||||
writeln('Extension Enabled')
|
||||
formWritelnEx('Extension Enabled')
|
||||
else
|
||||
begin
|
||||
writeln('Extension Disabled - Did not compile');
|
||||
formWritelnEx('Extension Disabled - Did not compile');
|
||||
OutputMessages;
|
||||
end;
|
||||
end;
|
||||
|
||||
FEnabled := InitScript();
|
||||
if FEnabled then
|
||||
writeln('It exists')
|
||||
formWritelnEx('It exists')
|
||||
else
|
||||
writeln('It does not exist - or something went wrong while executing it.');
|
||||
//writeln(PSInstance.ExecuteFunction([], 'test'));
|
||||
formWritelnEx('It does not exist - or something went wrong while executing it.');
|
||||
end;
|
||||
|
||||
function TSimbaPSEventExtension.InitScript: Boolean;
|
||||
@ -137,6 +142,15 @@ end;
|
||||
procedure TSimbaPSEventExtension.RegisterMyMethods(Sender: TPSScript);
|
||||
begin
|
||||
Sender.AddFunction(@createf, 'procedure createf;');
|
||||
Sender.AddFunction(@formWritelnEx,'procedure Writeln(s : string)');
|
||||
Sender.AddRegisteredVariable('Simba','TForm');
|
||||
Sender.AddRegisteredVariable('Simba_MainMenu','TMainMenu');
|
||||
end;
|
||||
|
||||
procedure TSimbaPSEventExtension.OnPSExecute(Sender: TPSScript);
|
||||
begin
|
||||
Sender.SetVarToInstance('simba',Form1);
|
||||
Sender.SetVarToInstance('Simba_MainMenu',Form1.MainMenu);
|
||||
end;
|
||||
|
||||
procedure TSimbaPSEventExtension.RegisterPSCComponents(Sender: TObject; x: TPSPascalCompiler);
|
||||
@ -148,6 +162,7 @@ begin
|
||||
SIRegister_stdctrls(x);
|
||||
SIRegister_Forms(x);
|
||||
SIRegister_ExtCtrls(x);
|
||||
SIRegister_Menus(x);
|
||||
end;
|
||||
|
||||
procedure TSimbaPSEventExtension.RegisterPSRComponents(Sender: TObject; se: TPSExec; x: TPSRuntimeClassImporter);
|
||||
@ -159,6 +174,7 @@ begin
|
||||
RIRegister_stdctrls(x);
|
||||
RIRegister_Forms(x);
|
||||
RIRegister_ExtCtrls(x);
|
||||
RIRegister_Menus(x);
|
||||
end;
|
||||
|
||||
destructor TSimbaPSEventExtension.Destroy;
|
||||
@ -167,7 +183,7 @@ begin
|
||||
FreeAndNil(PSInstance);
|
||||
|
||||
|
||||
WriteLn('Closing extension');
|
||||
formWritelnEx('Closing extension');
|
||||
|
||||
inherited;
|
||||
end;
|
||||
@ -185,14 +201,14 @@ begin
|
||||
begin
|
||||
b := True;
|
||||
with PSInstance.CompilerMessages[l] do
|
||||
writeln(MessageToString);
|
||||
formWritelnEx(MessageToString);
|
||||
{if OnError <> nil then
|
||||
with PSInstance.CompilerMessages[l] do
|
||||
HandleError(Row, Col, Pos, MessageToString,errCompile, ModuleName)
|
||||
else }
|
||||
writeln(PSInstance.CompilerErrorToStr(l) + ' at line ' + inttostr(PSInstance.CompilerMessages[l].Row));
|
||||
formWritelnEx(PSInstance.CompilerErrorToStr(l) + ' at line ' + inttostr(PSInstance.CompilerMessages[l].Row));
|
||||
end else
|
||||
Writeln(PSInstance.CompilerErrorToStr(l) + ' at line ' + inttostr(PSInstance.CompilerMessages[l].Row));
|
||||
formWritelnEx(PSInstance.CompilerErrorToStr(l) + ' at line ' + inttostr(PSInstance.CompilerMessages[l].Row));
|
||||
|
||||
end;
|
||||
end;
|
||||
|
@ -1,12 +1,12 @@
|
||||
object Form1: TForm1
|
||||
Left = 331
|
||||
Left = 345
|
||||
Height = 555
|
||||
Top = 150
|
||||
Top = 260
|
||||
Width = 739
|
||||
ActiveControl = ScriptPanel
|
||||
AllowDropFiles = True
|
||||
Caption = 'THA FUKING SIMBA'
|
||||
ClientHeight = 530
|
||||
ClientHeight = 535
|
||||
ClientWidth = 739
|
||||
KeyPreview = True
|
||||
Menu = MainMenu
|
||||
@ -207,8 +207,8 @@ object Form1: TForm1
|
||||
end
|
||||
object StatusBar: TStatusBar
|
||||
Left = 0
|
||||
Height = 21
|
||||
Top = 509
|
||||
Height = 23
|
||||
Top = 512
|
||||
Width = 739
|
||||
Panels = <
|
||||
item
|
||||
@ -230,7 +230,7 @@ object Form1: TForm1
|
||||
object PanelMemo: TPanel
|
||||
Left = 0
|
||||
Height = 154
|
||||
Top = 355
|
||||
Top = 358
|
||||
Width = 739
|
||||
Align = alBottom
|
||||
ClientHeight = 154
|
||||
@ -250,19 +250,19 @@ object Form1: TForm1
|
||||
Cursor = crVSplit
|
||||
Left = 0
|
||||
Height = 5
|
||||
Top = 350
|
||||
Top = 353
|
||||
Width = 739
|
||||
Align = alBottom
|
||||
ResizeAnchor = akBottom
|
||||
end
|
||||
object ScriptPanel: TPanel
|
||||
Left = 0
|
||||
Height = 326
|
||||
Height = 329
|
||||
Top = 24
|
||||
Width = 739
|
||||
Align = alClient
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 326
|
||||
ClientHeight = 329
|
||||
ClientWidth = 739
|
||||
DockSite = True
|
||||
TabOrder = 4
|
||||
@ -270,7 +270,7 @@ object Form1: TForm1
|
||||
OnDockOver = ScriptPanelDockOver
|
||||
object PageControl1: TPageControl
|
||||
Left = 155
|
||||
Height = 291
|
||||
Height = 294
|
||||
Top = 0
|
||||
Width = 584
|
||||
Align = alClient
|
||||
@ -289,7 +289,7 @@ object Form1: TForm1
|
||||
object SearchPanel: TPanel
|
||||
Left = 0
|
||||
Height = 35
|
||||
Top = 291
|
||||
Top = 294
|
||||
Width = 739
|
||||
Align = alBottom
|
||||
BevelOuter = bvSpace
|
||||
@ -385,7 +385,7 @@ object Form1: TForm1
|
||||
end
|
||||
object LabeledEditSearch: TLabeledEdit
|
||||
Left = 104
|
||||
Height = 27
|
||||
Height = 21
|
||||
Top = 6
|
||||
Width = 174
|
||||
EditLabel.AnchorSideLeft.Control = LabeledEditSearch
|
||||
@ -393,10 +393,10 @@ object Form1: TForm1
|
||||
EditLabel.AnchorSideTop.Side = asrCenter
|
||||
EditLabel.AnchorSideRight.Control = LabeledEditSearch
|
||||
EditLabel.AnchorSideBottom.Control = LabeledEditSearch
|
||||
EditLabel.Left = 67
|
||||
EditLabel.Height = 18
|
||||
EditLabel.Top = 10
|
||||
EditLabel.Width = 34
|
||||
EditLabel.Left = 73
|
||||
EditLabel.Height = 14
|
||||
EditLabel.Top = 9
|
||||
EditLabel.Width = 28
|
||||
EditLabel.Caption = 'Find: '
|
||||
EditLabel.ParentColor = False
|
||||
LabelPosition = lpLeft
|
||||
@ -409,9 +409,9 @@ object Form1: TForm1
|
||||
end
|
||||
object CheckBoxMatchCase: TCheckBox
|
||||
Left = 320
|
||||
Height = 22
|
||||
Height = 17
|
||||
Top = 7
|
||||
Width = 97
|
||||
Width = 72
|
||||
Caption = 'Match case'
|
||||
OnClick = CheckBoxMatchCaseClick
|
||||
TabOrder = 1
|
||||
@ -419,38 +419,34 @@ object Form1: TForm1
|
||||
end
|
||||
object SplitterFunctionList: TSplitter
|
||||
Left = 150
|
||||
Height = 291
|
||||
Height = 294
|
||||
Top = 0
|
||||
Width = 5
|
||||
OnCanResize = SplitterFunctionListCanResize
|
||||
Visible = False
|
||||
end
|
||||
inline frmFunctionList: TFunctionListFrame
|
||||
Height = 291
|
||||
Height = 294
|
||||
Width = 150
|
||||
ClientHeight = 291
|
||||
ClientHeight = 294
|
||||
ClientWidth = 150
|
||||
OnEndDock = nil
|
||||
TabOrder = 3
|
||||
inherited FunctionList: TTreeView
|
||||
Height = 242
|
||||
Top = 22
|
||||
Height = 255
|
||||
Width = 150
|
||||
DefaultItemHeight = 19
|
||||
OnChange = FunctionListChange
|
||||
OnEnter = FunctionListEnter
|
||||
OnExit = FunctionListExit
|
||||
end
|
||||
inherited editSearchList: TEdit
|
||||
Height = 27
|
||||
Top = 264
|
||||
Top = 273
|
||||
Width = 150
|
||||
OnExit = editSearchListExit
|
||||
OnKeyDown = editSearchListKeyDown
|
||||
OnKeyPress = editSearchListKeyPress
|
||||
end
|
||||
inherited FunctionListLabel: TLabel
|
||||
Height = 18
|
||||
Width = 146
|
||||
end
|
||||
end
|
||||
@ -2697,6 +2693,7 @@ object Form1: TForm1
|
||||
object ActionStopScript: TAction
|
||||
Caption = '&Stop'
|
||||
OnExecute = ActionStopExecute
|
||||
ShortCut = 113
|
||||
end
|
||||
object ActionSaveAll: TAction
|
||||
Caption = 'Save All'
|
||||
|
@ -1,9 +1,9 @@
|
||||
{ This is an automatically generated lazarus resource file }
|
||||
|
||||
LazarusResources.Add('TForm1','FORMDATA',[
|
||||
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3'K'#1#6'Height'#3'+'#2#3'Top'#3#150#0#5'Wi'
|
||||
+'dth'#3#227#2#13'ActiveControl'#7#11'ScriptPanel'#14'AllowDropFiles'#9#7'Cap'
|
||||
+'tion'#6#16'THA FUKING SIMBA'#12'ClientHeight'#3#23#2#11'ClientWidth'#3#227#2
|
||||
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3'Y'#1#6'Height'#3'+'#2#3'Top'#3#4#1#5'Widt'
|
||||
+'h'#3#227#2#13'ActiveControl'#7#11'ScriptPanel'#14'AllowDropFiles'#9#7'Capti'
|
||||
+'on'#6#16'THA FUKING SIMBA'#12'ClientHeight'#3#23#2#11'ClientWidth'#3#227#2
|
||||
+#10'KeyPreview'#9#4'Menu'#7#8'MainMenu'#7'OnClose'#7#9'FormClose'#8'OnCreate'
|
||||
+#7#10'FormCreate'#9'OnDestroy'#7#11'FormDestroy'#11'OnDropFiles'#7#13'FormDr'
|
||||
+'opFiles'#10'OnShortCut'#7#13'FormShortCuts'#10'LCLVersion'#6#6'0.9.29'#7'Vi'
|
||||
@ -2814,77 +2814,77 @@ LazarusResources.Add('TForm1','FORMDATA',[
|
||||
+#15'ActionRunScript'#7'Caption'#6#4'&Run'#9'OnExecute'#7#16'ActionRunExecute'
|
||||
+#8'ShortCut'#2'x'#0#0#7'TAction'#17'ActionPauseScript'#7'Caption'#6#6'&Pause'
|
||||
+#9'OnExecute'#7#18'ActionPauseExecute'#0#0#7'TAction'#16'ActionStopScript'#7
|
||||
+'Caption'#6#5'&Stop'#9'OnExecute'#7#17'ActionStopExecute'#0#0#7'TAction'#13
|
||||
+'ActionSaveAll'#7'Caption'#6#8'Save All'#10'ImageIndex'#2#21#9'OnExecute'#7
|
||||
+#20'ActionSaveAllExecute'#8'ShortCut'#3'S`'#0#0#7'TAction'#16'ActionClearDeb'
|
||||
,'ug'#7'Caption'#6#5'Clear'#10'ImageIndex'#2#4#9'OnExecute'#7#23'ActionClearD'
|
||||
+'ebugExecute'#0#0#7'TAction'#15'ActionFindStart'#7'Caption'#6#9'&Find ...'#10
|
||||
+'ImageIndex'#2#26#9'OnExecute'#7#22'ActionFindstartExecute'#8'ShortCut'#3'F@'
|
||||
+#0#0#7'TAction'#9'ActionCut'#7'Caption'#6#4'Cu&t'#10'ImageIndex'#2#3#9'OnExe'
|
||||
+'cute'#7#16'ActionCutExecute'#0#0#7'TAction'#10'ActionCopy'#7'Caption'#6#5'&'
|
||||
+'Copy'#10'ImageIndex'#2#22#9'OnExecute'#7#17'ActionCopyExecute'#0#0#7'TActio'
|
||||
+'n'#11'ActionPaste'#7'Caption'#6#6'&Paste'#10'ImageIndex'#2#11#9'OnExecute'#7
|
||||
+#18'ActionPasteExecute'#0#0#7'TAction'#12'ActionDelete'#7'Caption'#6#7'&Dele'
|
||||
+'te'#10'ImageIndex'#2#23#9'OnExecute'#7#19'ActionDeleteExecute'#8'ShortCut'#2
|
||||
+'.'#0#0#7'TAction'#15'ActionSelectAll'#7'Caption'#6#11'&Select All'#9'OnExec'
|
||||
+'ute'#7#22'ActionSelectAllExecute'#8'ShortCut'#3'A@'#0#0#7'TAction'#10'Actio'
|
||||
+'nUndo'#7'Caption'#6#5'&Undo'#10'ImageIndex'#2#18#9'OnExecute'#7#17'ActionUn'
|
||||
+'doExecute'#8'ShortCut'#3'Z@'#0#0#7'TAction'#10'ActionRedo'#7'Caption'#6#5'&'
|
||||
+'Redo'#10'ImageIndex'#2#12#9'OnExecute'#7#17'ActionRedoExecute'#8'ShortCut'#3
|
||||
+'Y@'#0#0#7'TAction'#14'ActionFindNext'#7'Caption'#6#10'Find &next'#9'OnExecu'
|
||||
+'te'#7#21'ActionFindNextExecute'#8'ShortCut'#2'r'#0#0#7'TAction'#13'ActionRe'
|
||||
+'place'#7'Caption'#6#11'R&eplace...'#9'OnExecute'#7#20'ActionReplaceExecute'
|
||||
+#8'ShortCut'#3'R@'#0#0#7'TAction'#10'ActionExit'#7'Caption'#6#5'&Exit'#10'Im'
|
||||
+'ageIndex'#2#25#9'OnExecute'#7#17'ActionExitExecute'#0#0#7'TAction'#19'Actio'
|
||||
+'nCompileScript'#7'Caption'#6#19'ActionCompileScript'#9'OnExecute'#7#26'Acti'
|
||||
+'onCompileScriptExecute'#8'ShortCut'#3'x@'#0#0#7'TAction'#16'ActionNormalSiz'
|
||||
+'e'#7'Caption'#6#16'ActionNormalSize'#9'OnExecute'#7#23'ActionNormalSizeExec'
|
||||
+'ute'#8'ShortCut'#3'B@'#0#0#7'TAction'#13'ActionConsole'#7'Caption'#6#13'Act'
|
||||
+'ionConsole'#10'ImageIndex'#2#27#9'OnExecute'#7#20'ActionConsoleExecute'#0#0
|
||||
+#0#6'TTimer'#10'DebugTimer'#7'OnTimer'#7#18'ProcessDebugStream'#4'left'#3'8'
|
||||
+#2#3'top'#2'h'#0#0#10'TPopupMenu'#11'ScriptPopup'#6'Images'#7#17'Mufasa_Imag'
|
||||
+'e_List'#7'OnPopup'#7#16'ScriptPopupPopup'#4'left'#3'8'#2#3'top'#3#144#0#0#9
|
||||
+'TMenuItem'#13'PopupItemUndo'#6'Action'#7#10'ActionUndo'#11'Bitmap.Data'#10
|
||||
+':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0
|
||||
+' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#24#166#195
|
||||
+'i'#26#167#196'i'#0#160#196#24#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#160#196']f'#219
|
||||
+#234#178#17#166#194#174#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#160#196'"C'#196#219#252
|
||||
+'C'#197#216#254'#'#166#192#127#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#160#196#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#14#170#203
|
||||
+#254']'#218#233#254'#'#166#192#239#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#160#196#255#0#160#196#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#158#193
|
||||
+#26#2#172#200#255#136#231#242#254#17#162#194#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#5'y}'#17#0#160#196#255'v'#237#251#255#0#160#196#255#0#0#0#0#0#0#0#0#0
|
||||
+#160#196'0'#0#153#185'P'#0#160#196#201'm'#230#245#255'v'#226#239#255#25#163
|
||||
+#193#255#0#0#0#0#0#0#0#0#0#0#0#0#5'y}'#17#0#160#196#255'v'#237#251#255'v'#237
|
||||
+#251#255#0#160#196#255#0#160#196#255#0#160#196#255#0#160#196#255#1#169#196
|
||||
+#255'n'#225#238#255#15#201#223#255'i'#228#242#255#26#164#192#248#0#0#0#0#0#0
|
||||
+#0#0#5'y}'#17#0#160#196#255'v'#237#251#255#4#195#218#255'v'#237#251#255'i'
|
||||
+#234#249#255'i'#234#249#255'i'#234#249#255'i'#234#249#255#5#221#247#255#10
|
||||
+#200#223#255#7#194#216#255'o'#220#235#255#27#163#191#244#0#0#0#0#5'y~'#17#0
|
||||
+#160#196#255'y'#237#251#255'2'#226#248#255','#223#244#255#4#192#214#255#4#192
|
||||
+#214#255#4#192#214#255#29#210#232#255#29#210#232#255#29#210#232#255#11#200
|
||||
+#223#255'j'#229#243#255#27#171#197#248#21#160#188#203#0#0#0#0#0#160#196#255
|
||||
+#173#243#251#255'/'#224#246#255'2'#226#248#255'2'#226#247#255'2'#226#247#255
|
||||
+'/'#224#245#255')'#219#241#255#29#210#232#255#29#210#232#255#29#210#232#255
|
||||
+'6'#217#236#255'@'#205#225#255#22#161#189#202#5'y}'#10#0#0#0#0#5'y}'#10#0#160
|
||||
+#196#255#173#243#251#255'/'#224#246#255'2'#226#247#255')'#219#241#255'/'#224
|
||||
+#245#255')'#219#241#255#22#205#227#255'6'#217#236#255'i'#231#246#255'A'#206
|
||||
+#227#254#19#163#193#228#5'y}2'#0#0#0#0#0#0#0#0#0#0#0#0#5'y}'#17#0#160#196#255
|
||||
+#173#243#251#255'1'#225#246#255' '#227#250#255's'#236#250#255'o'#235#250#255
|
||||
+'n'#232#247#255'l'#232#247#248#20#161#188#212#20#163#193#213#5'y}'#28#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#5'y}'#17#0#160#196#255#173#243#251#255'%'
|
||||
+#228#251#255#0#160#196#255#0#160#196#255#19#161#190#231#21#159#187#207#27#161
|
||||
+#187#164#6'z|'#11#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#5
|
||||
+'y}'#17#0#160#196#255#173#243#251#255#0#160#196#255#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+'Caption'#6#5'&Stop'#9'OnExecute'#7#17'ActionStopExecute'#8'ShortCut'#2'q'#0
|
||||
+#0#7'TAction'#13'ActionSaveAll'#7'Caption'#6#8'Save All'#10'ImageIndex'#2#21
|
||||
+#9'OnExecute'#7#20'ActionSaveAllExecute'#8'ShortCut'#3'S`'#0#0#7'TAction'#16
|
||||
,'ActionClearDebug'#7'Caption'#6#5'Clear'#10'ImageIndex'#2#4#9'OnExecute'#7#23
|
||||
+'ActionClearDebugExecute'#0#0#7'TAction'#15'ActionFindStart'#7'Caption'#6#9
|
||||
+'&Find ...'#10'ImageIndex'#2#26#9'OnExecute'#7#22'ActionFindstartExecute'#8
|
||||
+'ShortCut'#3'F@'#0#0#7'TAction'#9'ActionCut'#7'Caption'#6#4'Cu&t'#10'ImageIn'
|
||||
+'dex'#2#3#9'OnExecute'#7#16'ActionCutExecute'#0#0#7'TAction'#10'ActionCopy'#7
|
||||
+'Caption'#6#5'&Copy'#10'ImageIndex'#2#22#9'OnExecute'#7#17'ActionCopyExecute'
|
||||
+#0#0#7'TAction'#11'ActionPaste'#7'Caption'#6#6'&Paste'#10'ImageIndex'#2#11#9
|
||||
+'OnExecute'#7#18'ActionPasteExecute'#0#0#7'TAction'#12'ActionDelete'#7'Capti'
|
||||
+'on'#6#7'&Delete'#10'ImageIndex'#2#23#9'OnExecute'#7#19'ActionDeleteExecute'
|
||||
+#8'ShortCut'#2'.'#0#0#7'TAction'#15'ActionSelectAll'#7'Caption'#6#11'&Select'
|
||||
+' All'#9'OnExecute'#7#22'ActionSelectAllExecute'#8'ShortCut'#3'A@'#0#0#7'TAc'
|
||||
+'tion'#10'ActionUndo'#7'Caption'#6#5'&Undo'#10'ImageIndex'#2#18#9'OnExecute'
|
||||
+#7#17'ActionUndoExecute'#8'ShortCut'#3'Z@'#0#0#7'TAction'#10'ActionRedo'#7'C'
|
||||
+'aption'#6#5'&Redo'#10'ImageIndex'#2#12#9'OnExecute'#7#17'ActionRedoExecute'
|
||||
+#8'ShortCut'#3'Y@'#0#0#7'TAction'#14'ActionFindNext'#7'Caption'#6#10'Find &n'
|
||||
+'ext'#9'OnExecute'#7#21'ActionFindNextExecute'#8'ShortCut'#2'r'#0#0#7'TActio'
|
||||
+'n'#13'ActionReplace'#7'Caption'#6#11'R&eplace...'#9'OnExecute'#7#20'ActionR'
|
||||
+'eplaceExecute'#8'ShortCut'#3'R@'#0#0#7'TAction'#10'ActionExit'#7'Caption'#6
|
||||
+#5'&Exit'#10'ImageIndex'#2#25#9'OnExecute'#7#17'ActionExitExecute'#0#0#7'TAc'
|
||||
+'tion'#19'ActionCompileScript'#7'Caption'#6#19'ActionCompileScript'#9'OnExec'
|
||||
+'ute'#7#26'ActionCompileScriptExecute'#8'ShortCut'#3'x@'#0#0#7'TAction'#16'A'
|
||||
+'ctionNormalSize'#7'Caption'#6#16'ActionNormalSize'#9'OnExecute'#7#23'Action'
|
||||
+'NormalSizeExecute'#8'ShortCut'#3'B@'#0#0#7'TAction'#13'ActionConsole'#7'Cap'
|
||||
+'tion'#6#13'ActionConsole'#10'ImageIndex'#2#27#9'OnExecute'#7#20'ActionConso'
|
||||
+'leExecute'#0#0#0#6'TTimer'#10'DebugTimer'#7'OnTimer'#7#18'ProcessDebugStrea'
|
||||
+'m'#4'left'#3'8'#2#3'top'#2'h'#0#0#10'TPopupMenu'#11'ScriptPopup'#6'Images'#7
|
||||
+#17'Mufasa_Image_List'#7'OnPopup'#7#16'ScriptPopupPopup'#4'left'#3'8'#2#3'to'
|
||||
+'p'#3#144#0#0#9'TMenuItem'#13'PopupItemUndo'#6'Action'#7#10'ActionUndo'#11'B'
|
||||
+'itmap.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0
|
||||
+#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
,#0#0#157#191#20#0#160#196#255#0#160#196#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#24#166#195'i'#26#167#196'i'#0#160#196#24#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#160#196#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#7'OnClick'#7#17'ActionUndoExecute'#0#0#9'TMenuItem'#13
|
||||
+#160#196']f'#219#234#178#17#166#194#174#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#160#196
|
||||
+'"C'#196#219#252'C'#197#216#254'#'#166#192#127#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#160#196#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#14#170#203#254']'#218#233#254'#'#166#192#239#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#160#196#255#0#160#196#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#158#193#26#2#172#200#255#136#231#242#254#17#162#194#255#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#5'y}'#17#0#160#196#255'v'#237#251#255#0#160#196#255#0#0#0
|
||||
+#0#0#0#0#0#0#160#196'0'#0#153#185'P'#0#160#196#201'm'#230#245#255'v'#226#239
|
||||
+#255#25#163#193#255#0#0#0#0#0#0#0#0#0#0#0#0#5'y}'#17#0#160#196#255'v'#237#251
|
||||
+#255'v'#237#251#255#0#160#196#255#0#160#196#255#0#160#196#255#0#160#196#255#1
|
||||
+#169#196#255'n'#225#238#255#15#201#223#255'i'#228#242#255#26#164#192#248#0#0
|
||||
+#0#0#0#0#0#0#5'y}'#17#0#160#196#255'v'#237#251#255#4#195#218#255'v'#237#251
|
||||
+#255'i'#234#249#255'i'#234#249#255'i'#234#249#255'i'#234#249#255#5#221#247
|
||||
+#255#10#200#223#255#7#194#216#255'o'#220#235#255#27#163#191#244#0#0#0#0#5'y~'
|
||||
+#17#0#160#196#255'y'#237#251#255'2'#226#248#255','#223#244#255#4#192#214#255
|
||||
+#4#192#214#255#4#192#214#255#29#210#232#255#29#210#232#255#29#210#232#255#11
|
||||
+#200#223#255'j'#229#243#255#27#171#197#248#21#160#188#203#0#0#0#0#0#160#196
|
||||
+#255#173#243#251#255'/'#224#246#255'2'#226#248#255'2'#226#247#255'2'#226#247
|
||||
+#255'/'#224#245#255')'#219#241#255#29#210#232#255#29#210#232#255#29#210#232
|
||||
+#255'6'#217#236#255'@'#205#225#255#22#161#189#202#5'y}'#10#0#0#0#0#5'y}'#10#0
|
||||
+#160#196#255#173#243#251#255'/'#224#246#255'2'#226#247#255')'#219#241#255'/'
|
||||
+#224#245#255')'#219#241#255#22#205#227#255'6'#217#236#255'i'#231#246#255'A'
|
||||
+#206#227#254#19#163#193#228#5'y}2'#0#0#0#0#0#0#0#0#0#0#0#0#5'y}'#17#0#160#196
|
||||
+#255#173#243#251#255'1'#225#246#255' '#227#250#255's'#236#250#255'o'#235#250
|
||||
+#255'n'#232#247#255'l'#232#247#248#20#161#188#212#20#163#193#213#5'y}'#28#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#5'y}'#17#0#160#196#255#173#243#251#255
|
||||
+'%'#228#251#255#0#160#196#255#0#160#196#255#19#161#190#231#21#159#187#207#27
|
||||
+#161#187#164#6'z|'#11#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#5'y}'#17#0#160#196#255#173#243#251#255#0#160#196#255#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
,#0#0#0#157#191#20#0#160#196#255#0#160#196#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#160#196#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#7'OnClick'#7#17'ActionUndoExecute'#0#0#9'TMenuItem'#13
|
||||
+'PopupItemRedo'#6'Action'#7#10'ActionRedo'#11'Bitmap.Data'#10':'#4#0#0'6'#4#0
|
||||
+#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0
|
||||
+#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#255#255#255#0#0#0#0#0#0#160#196#24
|
||||
|
@ -41,11 +41,11 @@ uses
|
||||
SynExportHTML, SynEditKeyCmds, SynEditHighlighter,
|
||||
SynEditMarkupHighAll, LMessages, Buttons,
|
||||
stringutil,mufasatypesutil,mufasabase,
|
||||
about, framefunctionlist, ocr, updateform, simbasettings,
|
||||
about, framefunctionlist, ocr, updateform, simbasettings, pseventextension,
|
||||
extensionmanager;
|
||||
|
||||
const
|
||||
SimbaVersion = 585;
|
||||
SimbaVersion = 587;
|
||||
|
||||
type
|
||||
|
||||
@ -188,7 +188,6 @@ type
|
||||
MenuItemUndo: TMenuItem;
|
||||
MenuItemSave: TMenuItem;
|
||||
Mufasa_Image_List: TImageList;
|
||||
MainMenu1: TMainMenu;
|
||||
MenuItemScript: TMenuItem;
|
||||
MenuItemRun: TMenuItem;
|
||||
PanelMemo: TPanel;
|
||||
@ -388,6 +387,9 @@ const
|
||||
var
|
||||
Form1: TForm1;
|
||||
MainDir : string;
|
||||
{$ifdef MSWindows}
|
||||
PrevWndProc : WNDPROC;
|
||||
{$endif}
|
||||
CurrentSyncInfo : TSyncInfo;//We need this for SafeCallThread
|
||||
|
||||
implementation
|
||||
@ -404,6 +406,19 @@ begin
|
||||
TThread.Synchronize(nil,@Form1.Close);
|
||||
Result := true;
|
||||
end;
|
||||
|
||||
|
||||
function WndCallback(Ahwnd: HWND; uMsg: UINT; wParam: WParam;
|
||||
lParam: LParam): LRESULT stdcall;
|
||||
begin
|
||||
if uMsg = WM_HOTKEY then
|
||||
begin
|
||||
Form1.ActionStopScript.Execute;
|
||||
Result := 0;
|
||||
end else
|
||||
Result := Windows.CallWindowProc(PrevWndProc,Ahwnd, uMsg, WParam, LParam);
|
||||
end;
|
||||
|
||||
{$endif}
|
||||
|
||||
var
|
||||
@ -1216,9 +1231,7 @@ begin
|
||||
if CurrScript.SynEdit.Focused or ScriptPopup.HandleAllocated then
|
||||
CurrScript.SynEdit.CopyToClipboard
|
||||
else if Memo1.Focused then
|
||||
Memo1.CopyToClipboard
|
||||
{ else
|
||||
Writeln(Sender.ToString); }
|
||||
Memo1.CopyToClipboard;
|
||||
end;
|
||||
|
||||
procedure TForm1.ActionCutExecute(Sender: TObject);
|
||||
@ -1645,11 +1658,15 @@ begin
|
||||
RecentFiles := TStringList.Create;
|
||||
SimbaSettingsFile := MainDir + DS + 'settings.xml';
|
||||
{$ifdef MSWindows}
|
||||
ConsoleVisible := False;
|
||||
ConsoleVisible := True;
|
||||
PrevWndProc := Windows.WNDPROC(GetWindowLong(self.handle,GWL_WNDPROC));
|
||||
SetWindowLong(Self.Handle,GWL_WNDPROC,PtrInt(@WndCallback));
|
||||
if not RegisterHotkey(Self.Handle,0,MOD_CONTROL or MOD_ALT,VK_S) then
|
||||
mDebugLn('Unable to register ctrl + alt + s as global hotkey');
|
||||
{$else}
|
||||
TT_Console.Visible:= false;
|
||||
InitmDebug;
|
||||
{$endif}
|
||||
InitmDebug;
|
||||
if FileExists(SimbaSettingsFile) then
|
||||
begin
|
||||
Application.CreateForm(TSettingsForm,SettingsForm);
|
||||
@ -1702,10 +1719,13 @@ begin
|
||||
Picker.Free;
|
||||
Manager.Free;
|
||||
PluginsGlob.Free;
|
||||
|
||||
SetLength(DebugStream, 0);
|
||||
RecentFiles.Free;
|
||||
DebugCriticalSection.Free;
|
||||
{$ifdef MSWindows}
|
||||
if not UnRegisterHotkey(Self.Handle,0) then
|
||||
mDebugLn('Unable to unregister ctrl + alt + s as global hotkey');
|
||||
{$endif}
|
||||
end;
|
||||
|
||||
procedure TForm1.FormShortCuts(var Msg: TLMKey; var Handled: Boolean);
|
||||
@ -1961,7 +1981,6 @@ end;
|
||||
|
||||
procedure TForm1.OnLinePSScript(Sender: TObject);
|
||||
begin
|
||||
//Writeln('We just completed a line!!');
|
||||
{$IFDEF ProcessMessages}
|
||||
Application.ProcessMessages; //Don't think that this is neccesary though
|
||||
{$ENDIF}
|
||||
@ -2007,18 +2026,8 @@ begin
|
||||
end;
|
||||
|
||||
procedure TForm1.ButtonTrayClick(Sender: TObject);
|
||||
{var
|
||||
Ext: TSimbaPSEventExtension; }
|
||||
{ FIXME: Turning it into a test button again... }
|
||||
begin
|
||||
Form1.Hide;
|
||||
{ try
|
||||
Ext := TSimbaPSEventExtension.Create(MainDir + DS + 'Extensions' + DS + 'test.pas');
|
||||
Ext.Free;
|
||||
except
|
||||
Writeln('Something went wrong with the Extensions.');
|
||||
end; }
|
||||
|
||||
end;
|
||||
|
||||
procedure TForm1.PageControl1Changing(Sender: TObject; var AllowChange: Boolean
|
||||
@ -2131,22 +2140,26 @@ function TForm1.CreateSetting(Key: string; Value: string): string;
|
||||
begin
|
||||
result := SettingsForm.Settings.GetSetDefaultKeyValue(Key,value);
|
||||
end;
|
||||
|
||||
{$ifdef mswindows}
|
||||
function GetConsoleWindow: HWND; stdcall; external kernel32 name 'GetConsoleWindow';
|
||||
|
||||
procedure TForm1.ShowConsole(ShowIt: boolean);
|
||||
var
|
||||
ProcessId : DWOrd;
|
||||
begin
|
||||
if ShowIt = ConsoleVisible then
|
||||
Exit;
|
||||
if showit then //Console is hidden, get it back!
|
||||
//Check if the console is ours (if it's not, do not hide it!!
|
||||
GetWindowThreadProcessId(GetConsoleWindow,ProcessId);
|
||||
if ProcessId = GetCurrentProcessId then
|
||||
begin
|
||||
AllocConsole;
|
||||
InitmDebug;//Make sure mDebugLn works correctly!
|
||||
if showit then
|
||||
ShowWindow(GetConsoleWindow,SW_SHOWNA)
|
||||
else
|
||||
ShowWindow(GetConsoleWindow,sw_hide);
|
||||
ConsoleVisible:= ShowIt;
|
||||
end else
|
||||
begin
|
||||
FreeConsole;
|
||||
FreemDebug;
|
||||
end;
|
||||
ConsoleVisible:= ShowIt;
|
||||
Writeln('You cannot hide the window, since its not created by Simba');
|
||||
end;
|
||||
{$endif}
|
||||
|
||||
|
@ -222,10 +222,10 @@ begin
|
||||
DownloadSpeed.Visible := false;
|
||||
Self.UpdateLog.Lines.Add('Download stopped at '+inttostr(DownloadProgress.Position)+'%... Simba did not succesfully update.');
|
||||
// more detailed info
|
||||
writeln('EXCEPTION IN UPDATEFORM: We either hit Cancel, or something went wrong with files');
|
||||
mDebugLn('EXCEPTION IN UPDATEFORM: We either hit Cancel, or something went wrong with files');
|
||||
if FileExists(Updater.BasePath + Updater.ReplacementFile + '_') then
|
||||
begin
|
||||
Writeln(Format('Deleting the ghost file (%s)',[Updater.BasePath + Updater.ReplacementFile + '_']));
|
||||
Self.UpdateLog.Lines.Add(Format('Deleting the ghost file (%s)',[Updater.BasePath + Updater.ReplacementFile + '_']));
|
||||
DeleteFile(Updater.BasePath + Updater.ReplacementFile + '_');
|
||||
end;
|
||||
end;
|
||||
|
@ -276,7 +276,9 @@ begin;
|
||||
end;
|
||||
function FindBitmapMaskTolerance(mask: Integer; out x, y: Integer; xs, ys, xe, ye: Integer; Tolerance, ContourTolerance: Integer): Boolean; extdecl;
|
||||
begin;
|
||||
{$ifdef mDebug}
|
||||
mDebugLn('Better be using FindMaskTolerance in combination with CreateMaskFromBitmap, more efficient.');
|
||||
{$endif}
|
||||
with CurrThread.Client do
|
||||
result := MFinder.FindMaskTolerance(MBitmaps[mask].CreateTMask,x,y,xs,ys,xe,ye,tolerance,contourtolerance);
|
||||
end;
|
||||
|
@ -21,9 +21,14 @@
|
||||
Other.inc for the Mufasa Macro Library
|
||||
}
|
||||
|
||||
function psSetScriptProp(Name: String; Value: String): boolean;
|
||||
function psSetScriptProp(prop : TSP_Property; Value: String): boolean; extdecl;
|
||||
begin
|
||||
Exit(CurrThread.Prop.SetProp(Name, Value));
|
||||
Exit(CurrThread.Prop.SetProp(prop, Value));
|
||||
end;
|
||||
|
||||
function psGetScriptProp(prop : TSP_Property; var Value : string) : boolean; extdecl;
|
||||
begin;
|
||||
exit(CurrThread.Prop.GetProp(prop,value));
|
||||
end;
|
||||
|
||||
procedure psWait(t: Integer); extdecl;
|
||||
|
@ -55,6 +55,8 @@ Sender.Comp.AddTypeS('TStringArray','Array of string;');
|
||||
Sender.Comp.AddTypeS('TMousePress', '(mouse_Down, mouse_Up);');
|
||||
Sender.Comp.AddTypeS('Pointer', 'Integer');
|
||||
|
||||
Sender.Comp.AddTypeS('TSP_Property','(SP_WriteTimeStamp)');
|
||||
|
||||
|
||||
Sender.Comp.AddConstantN('mouse_Right','integer').SetInt(ps_mouse_right); //0
|
||||
Sender.Comp.AddConstantN('mouse_Left','integer').SetInt(ps_mouse_left);//1
|
||||
|
@ -130,7 +130,8 @@ AddFunction(@ps_Random,'function Random(Int: integer): integer;');
|
||||
AddFunction(@ClearDebug,'procedure ClearDebug;');
|
||||
AddFunction(@PlaySound,'procedure PlaySound( Sound : string);');
|
||||
AddFunction(@StopSound,'Procedure StopSound;');
|
||||
AddFunction(@psSetScriptProp, 'function psSetScriptProp(Name: String; Value: String): boolean;');
|
||||
AddFunction(@psSetScriptProp, 'function SetScriptProp(Prop : TSP_Property; Value: String): boolean;');
|
||||
AddFunction(@psGetScriptProp, 'function GetScriptProp(Prop : TSP_Property;var Value: String): boolean;');
|
||||
|
||||
|
||||
|
||||
|
@ -7,22 +7,40 @@ interface
|
||||
uses
|
||||
Classes, SysUtils;
|
||||
type
|
||||
|
||||
{ TScriptProperties }
|
||||
|
||||
TSP_Property = (
|
||||
SP_WriteTimeStamp //Writes the time infront of a writeln
|
||||
);
|
||||
TSP_Properties = set of TSP_Property;
|
||||
|
||||
|
||||
TScriptProperties = class(TObject)
|
||||
private
|
||||
FProperties : TSP_Properties;
|
||||
FWriteTimeStamp : boolean;
|
||||
public
|
||||
constructor Create;
|
||||
destructor Destroy; override;
|
||||
function SetProp(Name: String; Value: String): Boolean;
|
||||
constructor Create;
|
||||
destructor Destroy; override;
|
||||
function GetProperty(name: ansistring; var Prop : TSP_Property): boolean;
|
||||
function GetProp(name: ansistring; var Value : ansistring) : Boolean;overload;
|
||||
function GetProp(Prop : TSP_Property; var Value : ansistring) : Boolean;overload;
|
||||
function SetProp(Name: ansistring; Value: ansistring): Boolean;overload;
|
||||
function SetProp(Prop : TSP_Property; Value: ansistring): Boolean;overload;
|
||||
public
|
||||
WriteTimeStamp: Boolean;
|
||||
property WriteTimeStamp : boolean read FWriteTimeStamp;
|
||||
end;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
constructor TScriptProperties.Create;
|
||||
begin
|
||||
inherited;
|
||||
|
||||
WriteTimeStamp := False;
|
||||
FWriteTimeStamp := False;
|
||||
FProperties := [];
|
||||
|
||||
{ set default values }
|
||||
end;
|
||||
@ -32,21 +50,61 @@ begin
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
function TScriptProperties.SetProp(Name: String; Value: String): Boolean;
|
||||
|
||||
function TScriptProperties.GetProperty(name: ansistring; var Prop : TSP_Property): boolean;
|
||||
const
|
||||
Names : array[TSP_Property] of ansistring = ('writetimestamp');
|
||||
var
|
||||
i : integer;
|
||||
begin
|
||||
{
|
||||
Fucking hell. We can't use a String in case statement, and we cannot define
|
||||
hash maps as constants, and we also cannot use variables in case statements.
|
||||
}
|
||||
Name := LowerCase(Name);
|
||||
if Name = 'writetimestamp' then
|
||||
begin
|
||||
WriteTimeStamp := LowerCase(Value) = 'true';
|
||||
Exit(True);
|
||||
Result := false;
|
||||
for i := 0 to length(names)- 1 do
|
||||
if lowercase(name) = Names[TSP_Property(i)] then
|
||||
begin
|
||||
Prop := (TSP_Property(i));
|
||||
Exit(true);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TScriptProperties.GetProp(name: ansistring; var Value: ansistring): Boolean;
|
||||
var
|
||||
Prop : TSP_Property;
|
||||
begin
|
||||
Result := false;
|
||||
if GetProperty(name,prop) then
|
||||
Result := (GetProp(Prop,value));
|
||||
end;
|
||||
|
||||
function TScriptProperties.GetProp(Prop: TSP_Property; var Value: ansistring
|
||||
): Boolean;
|
||||
begin
|
||||
Result := true;
|
||||
case Prop of
|
||||
SP_WriteTimeStamp : Value := BoolToStr(Prop in FProperties,true);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TScriptProperties.SetProp(Name: ansistring; Value: ansistring): Boolean;
|
||||
var
|
||||
Prop : TSP_Property;
|
||||
begin
|
||||
Result := false;
|
||||
if GetProperty(name,prop) then
|
||||
Result := (SetProp(Prop,value));
|
||||
end;
|
||||
|
||||
function TScriptProperties.SetProp(Prop: TSP_Property; Value: ansistring): Boolean;
|
||||
begin
|
||||
case Prop of
|
||||
SP_WriteTimeStamp : if lowercase(value) = 'true' then
|
||||
begin
|
||||
FWriteTimeStamp:= True;
|
||||
FProperties := FProperties + [Prop];
|
||||
end else
|
||||
begin
|
||||
FWriteTimeStamp := False;
|
||||
FProperties := FProperties - [Prop];
|
||||
end;
|
||||
end;
|
||||
{more if bla }
|
||||
Result := False;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -390,11 +390,13 @@ begin
|
||||
end;
|
||||
FreeSpots[FreeSpotsHigh] := Number;
|
||||
end;
|
||||
{ //Just for testing purposes
|
||||
//Just for testing purposes
|
||||
{$ifdef mDebug}
|
||||
if ToDestroy.BmpName = '' then
|
||||
TClient(Self.Client).Writeln(Format('BMP[%d] has been freed.',[number]))
|
||||
mDebug(Format('BMP[%d] has been freed.',[number]))
|
||||
else
|
||||
TClient(Self.Client).Writeln(Format('BMP[%s] has been freed.',[ToDestroy.BmpName])); }
|
||||
mDebug(Format('BMP[%s] has been freed.',[ToDestroy.BmpName]));
|
||||
{$endif}
|
||||
ToDestroy.Free;
|
||||
BmpArray[number] := nil;
|
||||
end;
|
||||
|
@ -3,6 +3,7 @@ unit mufasabase;
|
||||
{$mode objfpc}
|
||||
|
||||
interface
|
||||
{$undefine mDebug}
|
||||
|
||||
uses
|
||||
files, Classes, SysUtils{$ifdef MSWindows},windows{$endif};
|
||||
@ -30,18 +31,11 @@ end;
|
||||
procedure InitmDebug;
|
||||
begin
|
||||
CanDebug := true;
|
||||
{$ifdef MSWindows}
|
||||
IsConsole:= True;
|
||||
SysInitStdIO;
|
||||
{$endif}
|
||||
end;
|
||||
|
||||
procedure FreemDebug;
|
||||
begin
|
||||
CanDebug := false;
|
||||
{$ifdef MSWindows}
|
||||
IsConsole := false;
|
||||
{$endif}
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -283,8 +283,6 @@ implementation
|
||||
Rect := WindowRect;
|
||||
x := x + rect.left;
|
||||
y := y + rect.top;
|
||||
{ if (x<0) or (y<0) then
|
||||
writeln('Negative coords, what now?');}
|
||||
Windows.SetCursorPos(x, y);
|
||||
end;
|
||||
procedure TWindow.HoldMouse(x,y: integer; button: TClickType);
|
||||
|
Loading…
Reference in New Issue
Block a user