mirror of
https://github.com/moparisthebest/Simba
synced 2024-11-26 03:02:15 -05:00
Split the TMMLPSThread into a superclass (ps independant) TMThread and a subclass (implementing ps) TPSThread. Had to remove (comment out) some threadcalling stuff i don't understand yet. Will reimplement later once i figure it out.
git-svn-id: http://www.villavu.com/repositories/merlijn/mufasa@466 3f818213-9676-44b0-a9b4-5e4c4e03d09d
This commit is contained in:
parent
843c57a8d8
commit
278ab8d88b
@ -25,7 +25,7 @@ object ScriptFrame: TScriptFrame
|
||||
OnDragDrop = SynEditDragDrop
|
||||
OnDragOver = SynEditDragOver
|
||||
OnKeyDown = SynEditKeyDown
|
||||
Gutter.Width = 57
|
||||
Gutter.Width = 53
|
||||
Gutter.MouseActions = <
|
||||
item
|
||||
Shift = []
|
||||
@ -602,7 +602,7 @@ object ScriptFrame: TScriptFrame
|
||||
Width = 23
|
||||
end
|
||||
object TSynGutterLineNumber
|
||||
Width = 17
|
||||
Width = 13
|
||||
MouseActions = <>
|
||||
MarkupInfo.Background = clBtnFace
|
||||
MarkupInfo.Foreground = clNone
|
||||
|
@ -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'
|
||||
@ -7,7 +9,7 @@ LazarusResources.Add('TScriptFrame','FORMDATA',[
|
||||
+'h'#7#7'fpFixed'#12'Font.Quality'#7#16'fqNonAntialiased'#11'ParentColor'#8#10
|
||||
+'ParentFont'#8#9'PopupMenu'#7#17'Form1.ScriptPopup'#8'TabOrder'#2#0#10'OnDra'
|
||||
+'gDrop'#7#15'SynEditDragDrop'#10'OnDragOver'#7#15'SynEditDragOver'#9'OnKeyDo'
|
||||
+'wn'#7#14'SynEditKeyDown'#12'Gutter.Width'#2'9'#19'Gutter.MouseActions'#14#1
|
||||
+'wn'#7#14'SynEditKeyDown'#12'Gutter.Width'#2'5'#19'Gutter.MouseActions'#14#1
|
||||
+#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#5'cc'
|
||||
+'Any'#8'ClickDir'#7#6'cdDown'#7'Command'#2#13#9'MoveCaret'#8#6'Option'#2#0#8
|
||||
+'Priority'#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#7'mbRight'#10
|
||||
@ -119,7 +121,7 @@ LazarusResources.Add('TScriptFrame','FORMDATA',[
|
||||
+'d'#7#25'SynEditProcessUserCommand'#19'OnSpecialLineColors'#7#24'SynEditSpec'
|
||||
+'ialLineColors'#14'OnStatusChange'#7#19'SynEditStatusChange'#0#244#18'TSynGu'
|
||||
+'tterPartList'#0#0#15'TSynGutterMarks'#0#5'Width'#2#23#0#0#20'TSynGutterLine'
|
||||
+'Number'#0#5'Width'#2#17#12'MouseActions'#14#0#21'MarkupInfo.Background'#7#9
|
||||
+'Number'#0#5'Width'#2#13#12'MouseActions'#14#0#21'MarkupInfo.Background'#7#9
|
||||
+'clBtnFace'#21'MarkupInfo.Foreground'#7#6'clNone'#10'DigitCount'#2#2#30'Show'
|
||||
+'OnlyLineNumbersMultiplesOf'#2#1#9'ZeroStart'#8#12'LeadingZeros'#8#0#0#17'TS'
|
||||
+'ynGutterChanges'#0#5'Width'#2#4#13'ModifiedColor'#4#252#233#0#0#10'SavedCol'
|
||||
|
@ -69,7 +69,7 @@ type
|
||||
ScriptName : string;//The name of the currently opened/saved file.
|
||||
ScriptDefault : string;//The default script e.g. program new; begin end.
|
||||
ScriptChanged : boolean;//We need this for that little * (edited star).
|
||||
ScriptThread : TMMLPSThread;//Just one thread for now..
|
||||
ScriptThread : TMThread;//Just one thread for now..
|
||||
FScriptState : TScriptState;//Stores the ScriptState, if you want the Run/Pause/Start buttons to change accordingly, acces through Form1
|
||||
procedure undo;
|
||||
procedure redo;
|
||||
|
@ -10,7 +10,7 @@
|
||||
<TargetFileExt Value=""/>
|
||||
<Title Value="Simba"/>
|
||||
<UseXPManifest Value="True"/>
|
||||
<ActiveEditorIndexAtStart Value="1"/>
|
||||
<ActiveEditorIndexAtStart Value="8"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<ProjectVersion Value=""/>
|
||||
@ -139,9 +139,11 @@
|
||||
<HasResources Value="True"/>
|
||||
<ResourceBaseClass Value="Form"/>
|
||||
<UnitName Value="TestUnit"/>
|
||||
<CursorPos X="3" Y="1550"/>
|
||||
<TopLine Value="1548"/>
|
||||
<CursorPos X="37" Y="1704"/>
|
||||
<TopLine Value="1687"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="202"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit13>
|
||||
<Unit14>
|
||||
<Filename Value="../Compilertje/Units/CogatUnits/compinput.pas"/>
|
||||
@ -189,7 +191,7 @@
|
||||
<UnitName Value="Client"/>
|
||||
<CursorPos X="15" Y="67"/>
|
||||
<TopLine Value="49"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="201"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit20>
|
||||
@ -264,9 +266,9 @@
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="mmlpsthread"/>
|
||||
<CursorPos X="31" Y="260"/>
|
||||
<TopLine Value="243"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<CursorPos X="26" Y="250"/>
|
||||
<TopLine Value="225"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="202"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit30>
|
||||
@ -348,7 +350,7 @@
|
||||
<UnitName Value="bitmaps"/>
|
||||
<CursorPos X="12" Y="93"/>
|
||||
<TopLine Value="83"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<EditorIndex Value="10"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit42>
|
||||
@ -493,9 +495,11 @@
|
||||
</Unit63>
|
||||
<Unit64>
|
||||
<Filename Value="../../Units/MMLAddon/PSInc/Wrappers/other.inc"/>
|
||||
<CursorPos X="1" Y="1"/>
|
||||
<TopLine Value="90"/>
|
||||
<CursorPos X="23" Y="107"/>
|
||||
<TopLine Value="95"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<UsageCount Value="44"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit64>
|
||||
<Unit65>
|
||||
<Filename Value="../../Units/PascalScript/uPSCompiler.pas"/>
|
||||
@ -589,7 +593,7 @@
|
||||
<UnitName Value="CompPicker"/>
|
||||
<CursorPos X="47" Y="240"/>
|
||||
<TopLine Value="213"/>
|
||||
<UsageCount Value="0"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit78>
|
||||
<Unit79>
|
||||
<Filename Value="../../Units/MMLAddon/colourpicker.pas"/>
|
||||
@ -628,7 +632,7 @@
|
||||
<Filename Value="../../../usr/lib64/fpc/2.2.4/source/rtl/objpas/classes/classesh.inc"/>
|
||||
<CursorPos X="3" Y="319"/>
|
||||
<TopLine Value="319"/>
|
||||
<UsageCount Value="0"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit83>
|
||||
<Unit84>
|
||||
<Filename Value="../../../lazarus/lcl/forms.pp"/>
|
||||
@ -642,7 +646,7 @@
|
||||
<UnitName Value="cthreads"/>
|
||||
<CursorPos X="28" Y="1077"/>
|
||||
<TopLine Value="1070"/>
|
||||
<UsageCount Value="0"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit85>
|
||||
<Unit86>
|
||||
<Filename Value="../../Units/MMLCore/dtmutil.pas"/>
|
||||
@ -657,7 +661,7 @@
|
||||
<UnitName Value="CompMaths"/>
|
||||
<CursorPos X="15" Y="640"/>
|
||||
<TopLine Value="636"/>
|
||||
<UsageCount Value="0"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit87>
|
||||
<Unit88>
|
||||
<Filename Value="../../Units/MMLAddon/PSInc/Wrappers/dtm.inc"/>
|
||||
@ -705,11 +709,9 @@
|
||||
<Filename Value="../../Units/MMLCore/ocr.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="ocr"/>
|
||||
<CursorPos X="26" Y="742"/>
|
||||
<CursorPos X="50" Y="739"/>
|
||||
<TopLine Value="720"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit94>
|
||||
<Unit95>
|
||||
<Filename Value="../../Units/PascalScript/uPSR_extctrls.pas"/>
|
||||
@ -764,9 +766,9 @@
|
||||
<Unit103>
|
||||
<Filename Value="../../Units/MMLAddon/PSInc/Wrappers/window.inc"/>
|
||||
<CursorPos X="12" Y="63"/>
|
||||
<TopLine Value="30"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="16"/>
|
||||
<TopLine Value="29"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="19"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit103>
|
||||
<Unit104>
|
||||
@ -785,13 +787,13 @@
|
||||
<Filename Value="../../../FPC/FPCCheckout/rtl/inc/threadh.inc"/>
|
||||
<CursorPos X="11" Y="135"/>
|
||||
<TopLine Value="119"/>
|
||||
<UsageCount Value="0"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit106>
|
||||
<Unit107>
|
||||
<Filename Value="../../../FPC/FPCCheckout/rtl/inc/thread.inc"/>
|
||||
<CursorPos X="21" Y="152"/>
|
||||
<TopLine Value="152"/>
|
||||
<UsageCount Value="0"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit107>
|
||||
<Unit108>
|
||||
<Filename Value="../../../lazarus/lcl/comctrls.pp"/>
|
||||
@ -841,7 +843,7 @@
|
||||
<UnitName Value="CodeToolsStrConsts"/>
|
||||
<CursorPos X="28" Y="81"/>
|
||||
<TopLine Value="74"/>
|
||||
<UsageCount Value="0"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit114>
|
||||
<Unit115>
|
||||
<Filename Value="../../../lazarus/ide/editoroptions.pp"/>
|
||||
@ -855,7 +857,7 @@
|
||||
<UnitName Value="SynEditHighlighter"/>
|
||||
<CursorPos X="28" Y="74"/>
|
||||
<TopLine Value="54"/>
|
||||
<UsageCount Value="0"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit116>
|
||||
<Unit117>
|
||||
<Filename Value="../../../lazarus/ide/sourceeditor.pp"/>
|
||||
@ -886,9 +888,11 @@
|
||||
<ComponentName Value="ScriptFrame"/>
|
||||
<ResourceBaseClass Value="Frame"/>
|
||||
<UnitName Value="framescript"/>
|
||||
<CursorPos X="1" Y="101"/>
|
||||
<TopLine Value="98"/>
|
||||
<CursorPos X="23" Y="72"/>
|
||||
<TopLine Value="55"/>
|
||||
<EditorIndex Value="7"/>
|
||||
<UsageCount Value="200"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit120>
|
||||
<Unit121>
|
||||
<Filename Value="../../../lazarus/lcl/include/pagecontrol.inc"/>
|
||||
@ -933,21 +937,21 @@
|
||||
<Filename Value="../../../lazarus/lcl/include/menuitem.inc"/>
|
||||
<CursorPos X="3" Y="1400"/>
|
||||
<TopLine Value="1378"/>
|
||||
<UsageCount Value="0"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit127>
|
||||
<Unit128>
|
||||
<Filename Value="../../../lazarus/lcl/widgetset/wsmenus.pp"/>
|
||||
<UnitName Value="WSMenus"/>
|
||||
<CursorPos X="1" Y="129"/>
|
||||
<TopLine Value="126"/>
|
||||
<UsageCount Value="0"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit128>
|
||||
<Unit129>
|
||||
<Filename Value="../../../lazarus/lcl/lclclasses.pp"/>
|
||||
<UnitName Value="LCLClasses"/>
|
||||
<CursorPos X="5" Y="40"/>
|
||||
<TopLine Value="32"/>
|
||||
<UsageCount Value="0"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit129>
|
||||
<Unit130>
|
||||
<Filename Value="../../../lazarus/ide/codeexplorer.pas"/>
|
||||
@ -957,7 +961,7 @@
|
||||
<UnitName Value="CodeExplorer"/>
|
||||
<CursorPos X="13" Y="1477"/>
|
||||
<TopLine Value="1466"/>
|
||||
<UsageCount Value="0"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit130>
|
||||
<Unit131>
|
||||
<Filename Value="../../../lazarus/ide/keymapping.pp"/>
|
||||
@ -971,7 +975,7 @@
|
||||
<UnitName Value="BaseDebugManager"/>
|
||||
<CursorPos X="15" Y="87"/>
|
||||
<TopLine Value="76"/>
|
||||
<UsageCount Value="0"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit132>
|
||||
<Unit133>
|
||||
<Filename Value="../../../lazarus/lcl/lmessages.pp"/>
|
||||
@ -1003,7 +1007,7 @@
|
||||
<Filename Value="../../../FPC/FPCCheckout/rtl/objpas/classes/lists.inc"/>
|
||||
<CursorPos X="3" Y="626"/>
|
||||
<TopLine Value="624"/>
|
||||
<UsageCount Value="0"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit137>
|
||||
<Unit138>
|
||||
<Filename Value="../../../lazarus/lcl/include/tabsheet.inc"/>
|
||||
@ -1034,14 +1038,14 @@
|
||||
<UnitName Value="WSExtCtrls"/>
|
||||
<CursorPos X="50" Y="292"/>
|
||||
<TopLine Value="292"/>
|
||||
<UsageCount Value="0"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit142>
|
||||
<Unit143>
|
||||
<Filename Value="../../../lazarus/lcl/interfaces/cocoa/cocoawsextctrls.pas"/>
|
||||
<UnitName Value="CocoaWSExtCtrls"/>
|
||||
<CursorPos X="22" Y="72"/>
|
||||
<TopLine Value="59"/>
|
||||
<UsageCount Value="0"/>
|
||||
<UsageCount Value="10"/>
|
||||
</Unit143>
|
||||
<Unit144>
|
||||
<Filename Value="../../../lazarus/lcl/interfaces/gtk/gtkwsextctrls.pp"/>
|
||||
@ -1538,9 +1542,7 @@
|
||||
<UnitName Value="ocrutil"/>
|
||||
<CursorPos X="52" Y="609"/>
|
||||
<TopLine Value="585"/>
|
||||
<EditorIndex Value="3"/>
|
||||
<UsageCount Value="37"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit216>
|
||||
<Unit217>
|
||||
<Filename Value="../../../Documents/fpc/rtl/objpas/sysutils/filutilh.inc"/>
|
||||
@ -1589,7 +1591,7 @@
|
||||
<UnitName Value="framefunctionlist"/>
|
||||
<CursorPos X="26" Y="295"/>
|
||||
<TopLine Value="7"/>
|
||||
<UsageCount Value="182"/>
|
||||
<UsageCount Value="186"/>
|
||||
</Unit223>
|
||||
<Unit224>
|
||||
<Filename Value="../../../usr/local/share/lazarus/lcl/comctrls.pp"/>
|
||||
@ -1616,9 +1618,7 @@
|
||||
<UnitName Value="fontloader"/>
|
||||
<CursorPos X="59" Y="173"/>
|
||||
<TopLine Value="151"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="12"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit227>
|
||||
<Unit228>
|
||||
<Filename Value="../../Units/MMLCore/mufasatypesutil.pas"/>
|
||||
@ -1646,7 +1646,7 @@
|
||||
<UnitName Value="simpleanalyzer"/>
|
||||
<CursorPos X="52" Y="104"/>
|
||||
<TopLine Value="193"/>
|
||||
<UsageCount Value="169"/>
|
||||
<UsageCount Value="173"/>
|
||||
</Unit231>
|
||||
<Unit232>
|
||||
<Filename Value="../../Units/Misc/mPasLex.pas"/>
|
||||
@ -1704,10 +1704,10 @@
|
||||
</Unit239>
|
||||
<Unit240>
|
||||
<Filename Value="../../Units/MMLAddon/PSInc/psexportedmethods.inc"/>
|
||||
<CursorPos X="40" Y="59"/>
|
||||
<TopLine Value="36"/>
|
||||
<EditorIndex Value="6"/>
|
||||
<UsageCount Value="27"/>
|
||||
<CursorPos X="3" Y="100"/>
|
||||
<TopLine Value="72"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="30"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit240>
|
||||
<Unit241>
|
||||
@ -1723,7 +1723,7 @@
|
||||
<UnitName Value="updater"/>
|
||||
<CursorPos X="38" Y="211"/>
|
||||
<TopLine Value="65"/>
|
||||
<UsageCount Value="142"/>
|
||||
<UsageCount Value="146"/>
|
||||
</Unit242>
|
||||
<Unit243>
|
||||
<Filename Value="updateform.pas"/>
|
||||
@ -1734,7 +1734,7 @@
|
||||
<ComponentState Value="1"/>
|
||||
<CursorPos X="111" Y="102"/>
|
||||
<TopLine Value="207"/>
|
||||
<UsageCount Value="137"/>
|
||||
<UsageCount Value="141"/>
|
||||
</Unit243>
|
||||
<Unit244>
|
||||
<Filename Value="../../../Documents/lazarus/lcl/fileutil.pas"/>
|
||||
@ -1855,7 +1855,7 @@
|
||||
<UnitName Value="simbasettings"/>
|
||||
<CursorPos X="26" Y="9"/>
|
||||
<TopLine Value="11"/>
|
||||
<UsageCount Value="100"/>
|
||||
<UsageCount Value="104"/>
|
||||
</Unit261>
|
||||
<Unit262>
|
||||
<Filename Value="../../Units/MMLAddon/settings.pas"/>
|
||||
@ -1893,7 +1893,7 @@
|
||||
<UnitName Value="reportbug"/>
|
||||
<CursorPos X="53" Y="23"/>
|
||||
<TopLine Value="21"/>
|
||||
<UsageCount Value="83"/>
|
||||
<UsageCount Value="87"/>
|
||||
</Unit266>
|
||||
<Unit267>
|
||||
<Filename Value="../../Units/Synapse/synsock.pas"/>
|
||||
@ -1950,7 +1950,7 @@
|
||||
<UnitName Value="newinternets"/>
|
||||
<CursorPos X="37" Y="171"/>
|
||||
<TopLine Value="153"/>
|
||||
<UsageCount Value="79"/>
|
||||
<UsageCount Value="83"/>
|
||||
</Unit274>
|
||||
<Unit275>
|
||||
<Filename Value="reportbug.lrs"/>
|
||||
@ -1999,7 +1999,7 @@
|
||||
<CursorPos X="67" Y="53"/>
|
||||
<TopLine Value="34"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="30"/>
|
||||
<UsageCount Value="33"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit281>
|
||||
<Unit282>
|
||||
@ -2007,8 +2007,8 @@
|
||||
<UnitName Value="os_linux"/>
|
||||
<CursorPos X="36" Y="69"/>
|
||||
<TopLine Value="56"/>
|
||||
<EditorIndex Value="9"/>
|
||||
<UsageCount Value="29"/>
|
||||
<EditorIndex Value="5"/>
|
||||
<UsageCount Value="32"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit282>
|
||||
<Unit283>
|
||||
@ -2023,8 +2023,8 @@
|
||||
<UnitName Value="os_windows"/>
|
||||
<CursorPos X="22" Y="164"/>
|
||||
<TopLine Value="155"/>
|
||||
<EditorIndex Value="12"/>
|
||||
<UsageCount Value="25"/>
|
||||
<EditorIndex Value="11"/>
|
||||
<UsageCount Value="28"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit284>
|
||||
<Unit285>
|
||||
@ -2047,7 +2047,7 @@
|
||||
<UnitName Value="libloader"/>
|
||||
<CursorPos X="1" Y="149"/>
|
||||
<TopLine Value="128"/>
|
||||
<UsageCount Value="37"/>
|
||||
<UsageCount Value="41"/>
|
||||
</Unit287>
|
||||
<Unit288>
|
||||
<Filename Value="../../Units/MMLAddon/tpa.pas"/>
|
||||
@ -2060,8 +2060,8 @@
|
||||
<Filename Value="../../Units/PascalScript/x86.inc"/>
|
||||
<CursorPos X="8" Y="157"/>
|
||||
<TopLine Value="140"/>
|
||||
<EditorIndex Value="8"/>
|
||||
<UsageCount Value="15"/>
|
||||
<EditorIndex Value="4"/>
|
||||
<UsageCount Value="18"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit289>
|
||||
<Unit290>
|
||||
@ -2082,131 +2082,129 @@
|
||||
<UnitName Value="tpa"/>
|
||||
<CursorPos X="70" Y="1393"/>
|
||||
<TopLine Value="1364"/>
|
||||
<EditorIndex Value="2"/>
|
||||
<UsageCount Value="12"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit292>
|
||||
</Units>
|
||||
<JumpHistory Count="30" HistoryIndex="29">
|
||||
<Position1>
|
||||
<Filename Value="../../Units/MMLAddon/PSInc/Wrappers/window.inc"/>
|
||||
<Caret Line="1" Column="1" TopLine="1"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="223" Column="14" TopLine="206"/>
|
||||
</Position1>
|
||||
<Position2>
|
||||
<Filename Value="../../Units/PascalScript/x86.inc"/>
|
||||
<Caret Line="592" Column="60" TopLine="584"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="239" Column="11" TopLine="229"/>
|
||||
</Position2>
|
||||
<Position3>
|
||||
<Filename Value="../../Units/MMLCore/client.pas"/>
|
||||
<Caret Line="36" Column="17" TopLine="27"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="377" Column="34" TopLine="349"/>
|
||||
</Position3>
|
||||
<Position4>
|
||||
<Filename Value="../../Units/MMLCore/os_linux.pas"/>
|
||||
<Caret Line="48" Column="50" TopLine="34"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="118" Column="15" TopLine="101"/>
|
||||
</Position4>
|
||||
<Position5>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="345" Column="27" TopLine="311"/>
|
||||
<Caret Line="129" Column="63" TopLine="101"/>
|
||||
</Position5>
|
||||
<Position6>
|
||||
<Filename Value="../../Units/MMLCore/os_linux.pas"/>
|
||||
<Caret Line="69" Column="36" TopLine="56"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="369" Column="14" TopLine="352"/>
|
||||
</Position6>
|
||||
<Position7>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="201" Column="29" TopLine="195"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="99" Column="70" TopLine="67"/>
|
||||
</Position7>
|
||||
<Position8>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="372" Column="45" TopLine="348"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="261" Column="8" TopLine="246"/>
|
||||
</Position8>
|
||||
<Position9>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="202" Column="29" TopLine="177"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="308" Column="4" TopLine="292"/>
|
||||
</Position9>
|
||||
<Position10>
|
||||
<Filename Value="../../Units/MMLCore/iomanager.pas"/>
|
||||
<Caret Line="346" Column="59" TopLine="328"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="310" Column="16" TopLine="297"/>
|
||||
</Position10>
|
||||
<Position11>
|
||||
<Filename Value="../../Units/MMLCore/ocr.pas"/>
|
||||
<Caret Line="47" Column="34" TopLine="34"/>
|
||||
<Filename Value="../../Units/MMLAddon/PSInc/psexportedmethods.inc"/>
|
||||
<Caret Line="59" Column="40" TopLine="36"/>
|
||||
</Position11>
|
||||
<Position12>
|
||||
<Filename Value="../../Units/MMLCore/tpa.pas"/>
|
||||
<Caret Line="14" Column="67" TopLine="23"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="127" Column="19" TopLine="101"/>
|
||||
</Position12>
|
||||
<Position13>
|
||||
<Filename Value="../../Units/MMLCore/tpa.pas"/>
|
||||
<Caret Line="76" Column="21" TopLine="58"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="59" Column="22" TopLine="42"/>
|
||||
</Position13>
|
||||
<Position14>
|
||||
<Filename Value="../../Units/MMLCore/tpa.pas"/>
|
||||
<Caret Line="77" Column="21" TopLine="58"/>
|
||||
<Filename Value="../../Units/MMLAddon/PSInc/psexportedmethods.inc"/>
|
||||
<Caret Line="24" Column="28" TopLine="7"/>
|
||||
</Position14>
|
||||
<Position15>
|
||||
<Filename Value="../../Units/MMLCore/ocr.pas"/>
|
||||
<Caret Line="31" Column="54" TopLine="23"/>
|
||||
<Filename Value="../../Units/MMLAddon/PSInc/psexportedmethods.inc"/>
|
||||
<Caret Line="30" Column="24" TopLine="13"/>
|
||||
</Position15>
|
||||
<Position16>
|
||||
<Filename Value="../../Units/MMLCore/ocrutil.pas"/>
|
||||
<Caret Line="85" Column="37" TopLine="69"/>
|
||||
<Filename Value="../../Units/MMLAddon/PSInc/psexportedmethods.inc"/>
|
||||
<Caret Line="24" Column="3" TopLine="7"/>
|
||||
</Position16>
|
||||
<Position17>
|
||||
<Filename Value="../../Units/MMLCore/ocrutil.pas"/>
|
||||
<Caret Line="25" Column="12" TopLine="12"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="134" Column="37" TopLine="243"/>
|
||||
</Position17>
|
||||
<Position18>
|
||||
<Filename Value="../../Units/MMLCore/ocrutil.pas"/>
|
||||
<Caret Line="26" Column="12" TopLine="12"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="387" Column="6" TopLine="374"/>
|
||||
</Position18>
|
||||
<Position19>
|
||||
<Filename Value="../../Units/MMLCore/ocrutil.pas"/>
|
||||
<Caret Line="20" Column="13" TopLine="12"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="644" Column="12" TopLine="622"/>
|
||||
</Position19>
|
||||
<Position20>
|
||||
<Filename Value="../../Units/MMLCore/ocr.pas"/>
|
||||
<Caret Line="656" Column="23" TopLine="625"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="133" Column="36" TopLine="113"/>
|
||||
</Position20>
|
||||
<Position21>
|
||||
<Filename Value="../../Units/MMLCore/fontloader.pas"/>
|
||||
<Caret Line="63" Column="34" TopLine="37"/>
|
||||
<Filename Value="framescript.pas"/>
|
||||
<Caret Line="101" Column="1" TopLine="98"/>
|
||||
</Position21>
|
||||
<Position22>
|
||||
<Filename Value="../../Units/MMLCore/ocr.pas"/>
|
||||
<Caret Line="710" Column="61" TopLine="692"/>
|
||||
<Filename Value="framescript.pas"/>
|
||||
<Caret Line="73" Column="41" TopLine="54"/>
|
||||
</Position22>
|
||||
<Position23>
|
||||
<Filename Value="../../Units/MMLCore/ocr.pas"/>
|
||||
<Caret Line="55" Column="42" TopLine="37"/>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="1550" Column="3" TopLine="1548"/>
|
||||
</Position23>
|
||||
<Position24>
|
||||
<Filename Value="../../Units/MMLCore/ocr.pas"/>
|
||||
<Caret Line="714" Column="22" TopLine="692"/>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="541" Column="21" TopLine="518"/>
|
||||
</Position24>
|
||||
<Position25>
|
||||
<Filename Value="../../Units/MMLCore/fontloader.pas"/>
|
||||
<Caret Line="55" Column="29" TopLine="37"/>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="536" Column="30" TopLine="519"/>
|
||||
</Position25>
|
||||
<Position26>
|
||||
<Filename Value="../../Units/MMLCore/fontloader.pas"/>
|
||||
<Caret Line="79" Column="10" TopLine="61"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="97" Column="54" TopLine="73"/>
|
||||
</Position26>
|
||||
<Position27>
|
||||
<Filename Value="../../Units/MMLCore/ocr.pas"/>
|
||||
<Caret Line="729" Column="26" TopLine="702"/>
|
||||
<Filename Value="../../Units/MMLAddon/mmlpsthread.pas"/>
|
||||
<Caret Line="240" Column="69" TopLine="223"/>
|
||||
</Position27>
|
||||
<Position28>
|
||||
<Filename Value="../../Units/MMLCore/ocr.pas"/>
|
||||
<Caret Line="712" Column="8" TopLine="703"/>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="550" Column="46" TopLine="532"/>
|
||||
</Position28>
|
||||
<Position29>
|
||||
<Filename Value="../../Units/MMLCore/ocr.pas"/>
|
||||
<Caret Line="721" Column="23" TopLine="703"/>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="636" Column="33" TopLine="613"/>
|
||||
</Position29>
|
||||
<Position30>
|
||||
<Filename Value="../../Units/MMLCore/ocr.pas"/>
|
||||
<Caret Line="751" Column="10" TopLine="720"/>
|
||||
<Filename Value="testunit.pas"/>
|
||||
<Caret Line="1439" Column="24" TopLine="1422"/>
|
||||
</Position30>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
|
@ -1,7 +1,7 @@
|
||||
object Form1: TForm1
|
||||
Left = 1343
|
||||
Left = 593
|
||||
Height = 557
|
||||
Top = 181
|
||||
Top = 321
|
||||
Width = 734
|
||||
ActiveControl = ScriptPanel
|
||||
Caption = 'THA FUKING SIMBA'
|
||||
|
@ -1,10 +1,10 @@
|
||||
{ This is an automatically generated lazarus resource file }
|
||||
|
||||
LazarusResources.Add('TForm1','FORMDATA',[
|
||||
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3'?'#5#6'Height'#3'-'#2#3'Top'#3#181#0#5'Wi'
|
||||
+'dth'#3#222#2#13'ActiveControl'#7#11'ScriptPanel'#7'Caption'#6#16'THA FUKING'
|
||||
+' SIMBA'#12'ClientHeight'#3#20#2#11'ClientWidth'#3#222#2#10'KeyPreview'#9#4
|
||||
+'Menu'#7#8'MainMenu'#7'OnClose'#7#9'FormClose'#8'OnCreate'#7#10'FormCreate'#9
|
||||
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3'Q'#2#6'Height'#3'-'#2#3'Top'#3'A'#1#5'Wid'
|
||||
+'th'#3#222#2#13'ActiveControl'#7#11'ScriptPanel'#7'Caption'#6#16'THA FUKING '
|
||||
+'SIMBA'#12'ClientHeight'#3#20#2#11'ClientWidth'#3#222#2#10'KeyPreview'#9#4'M'
|
||||
+'enu'#7#8'MainMenu'#7'OnClose'#7#9'FormClose'#8'OnCreate'#7#10'FormCreate'#9
|
||||
+'OnDestroy'#7#11'FormDestroy'#10'OnShortCut'#7#13'FormShortCuts'#8'Position'
|
||||
+#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.29'#7'Visible'#9#0#8'TToolBar'#8
|
||||
+'ToolBar1'#4'Left'#2#0#6'Height'#2#24#3'Top'#2#0#5'Width'#3#222#2#7'Caption'
|
||||
|
@ -533,12 +533,12 @@ begin
|
||||
PluginsPath := LoadSettingDef('Settings/Plugins/Path', ExpandFileName(MainDir + DS + '..' + DS + '..'+ DS + 'Plugins'+ DS));
|
||||
ScriptErrorLine:= -1;
|
||||
CurrentSyncInfo.SyncMethod:= @Self.SafeCallThread;
|
||||
ScriptThread := TMMLPSThread.Create(True,@CurrentSyncInfo,PluginsPath);
|
||||
ScriptThread := TPSThread.Create(True,@CurrentSyncInfo,PluginsPath);
|
||||
{$IFNDEF TERMINALWRITELN}
|
||||
ScriptThread.SetDebug(@formWriteln);
|
||||
ScriptThread.DebugMemo := Self.Memo1;
|
||||
{$ENDIF}
|
||||
ScriptThread.SetPSScript(CurrScript.SynEdit.Lines.Text);
|
||||
ScriptThread.SetScript(CurrScript.SynEdit.Lines.Text);
|
||||
DbgImgInfo.DispSize := @DebugImgForm.DispSize;
|
||||
DbgImgInfo.ShowForm := @DebugImgForm.ShowDebugImgForm;
|
||||
DbgImgInfo.ToDrawBitmap:= @DebugImgForm.ToDrawBmp;
|
||||
@ -627,13 +627,13 @@ begin
|
||||
end;
|
||||
ss_Running:
|
||||
begin
|
||||
ScriptThread.PSScript.Stop;
|
||||
ScriptThread.Terminate;
|
||||
ScriptState := ss_Stopping;
|
||||
end;
|
||||
ss_Paused:
|
||||
begin
|
||||
ScriptThread.Resume;
|
||||
ScriptThread.PSScript.Stop;
|
||||
ScriptThread.Terminate;
|
||||
ScriptState:= ss_Stopping;
|
||||
end;
|
||||
end;
|
||||
@ -1436,7 +1436,7 @@ var
|
||||
begin
|
||||
if frmFunctionList.FunctionList.Items.Count = 0 then
|
||||
begin;
|
||||
Methods := TMMLPSThread.GetExportedMethods;
|
||||
Methods := TMThread.GetExportedMethods;
|
||||
Tree := frmFunctionList.FunctionList;
|
||||
Tree.Items.Clear;
|
||||
Sections := TStringList.Create;
|
||||
@ -1701,7 +1701,7 @@ end;
|
||||
procedure TForm1.SafeCallThread;
|
||||
begin
|
||||
Writeln('Executing : ' + CurrentSyncInfo.MethodName);
|
||||
mmlpsthread.CurrThread := TMMLPSTHREAD(CurrentSyncInfo.OldThread);
|
||||
mmlpsthread.CurrThread := TMThread(CurrentSyncInfo.OldThread);
|
||||
with CurrentSyncInfo.PSScript do
|
||||
begin;
|
||||
OnLine:=@OnLinePSScript;
|
||||
|
@ -33,7 +33,7 @@ begin
|
||||
if t > 50 then
|
||||
begin;
|
||||
EndTime := GetTickCount + t;
|
||||
while (CurrThread.PSScript.Exec.Status = isRunning) and (GetTickCount < EndTime) do
|
||||
while {(CurrThread.PSScript.Exec.Status = isRunning) and }(GetTickCount < EndTime) do
|
||||
Sleep(16);
|
||||
end else
|
||||
begin
|
||||
@ -104,7 +104,7 @@ end;
|
||||
|
||||
procedure TerminateScript;
|
||||
begin;
|
||||
CurrThread.PSScript.Stop;
|
||||
CurrThread.Terminate;
|
||||
end;
|
||||
function GetTimeRunning: LongWord;
|
||||
begin;
|
||||
|
@ -21,7 +21,7 @@
|
||||
psexportedmethods.inc for the Mufasa Macro Library
|
||||
}
|
||||
|
||||
AddFunction(@ThreadSafeCall,'function ThreadSafeCall(ProcName: string; var V: TVariantArray): Variant;');
|
||||
//AddFunction(@ThreadSafeCall,'function ThreadSafeCall(ProcName: string; var V: TVariantArray): Variant;');
|
||||
AddFunction(nil,'procedure Writeln(x);'); //We use special function for this
|
||||
|
||||
{ DTM }
|
||||
@ -97,7 +97,7 @@ AddFunction(@DisplayDebugImgWindow,'procedure DisplayDebugImgWindow(w, h: intege
|
||||
AddFunction(@DrawBitmapDebugImg,'procedure DrawBitmapDebugImg(bmp: integer);');
|
||||
AddFunction(@GetDebugBitmap,'function GetDebugBitmap: integer;');
|
||||
AddFunction(@Random,'function Random(Int: integer): integer;');
|
||||
AddFunction(@NewThreadCall,'function NewThreadCall(procname : string) : cardinal');
|
||||
//AddFunction(@NewThreadCall,'function NewThreadCall(procname : string) : cardinal');
|
||||
AddFunction(@ClearDebug,'procedure ClearDebug;');
|
||||
|
||||
|
||||
|
@ -74,54 +74,74 @@ type
|
||||
end;
|
||||
TExpMethodArr = array of TExpMethod;
|
||||
|
||||
TMMLPSThread = class(TThread)
|
||||
TMThread = class(TThread)
|
||||
protected
|
||||
ScriptPath, AppPath, IncludePath, PluginPath, FontPath: string;
|
||||
DebugTo: TWritelnProc;
|
||||
DebugImg : TDbgImgInfo;
|
||||
PluginsToload : array of integer;
|
||||
ExportedMethods : TExpMethodArr;
|
||||
|
||||
procedure HandleError(ErrorAtLine,ErrorPosition : integer; ErrorStr : string; ErrorType : TErrorType; ErrorModule : string);
|
||||
function ProcessDirective(DirectiveName, DirectiveArgs: string): boolean;
|
||||
function LoadFile(var filename, contents: string): boolean;
|
||||
procedure LoadMethods; virtual; abstract;
|
||||
|
||||
public
|
||||
Client : TClient;
|
||||
StartTime : LongWord;
|
||||
DebugMemo : TMemo;
|
||||
|
||||
SyncInfo : PSyncInfo; //We need this for callthreadsafe
|
||||
ErrorData : PErrorData; //We need this for thread-safety etc
|
||||
OnError : TOnError; //Error handeler
|
||||
|
||||
procedure SetScript(Script : string);
|
||||
procedure SetDebug( writelnProc : TWritelnProc );
|
||||
procedure SetDbgImg( DebugImageInfo : TDbgImgInfo);
|
||||
procedure SetPaths(ScriptP,AppP,IncludeP,PluginP,FontP : string);
|
||||
procedure OnThreadTerminate(Sender: TObject);
|
||||
procedure SetScript(script: string); virtual; abstract;
|
||||
procedure Execute; override; abstract;
|
||||
procedure Terminate; virtual; abstract;
|
||||
|
||||
constructor Create(CreateSuspended: boolean; plugin_dir: string);
|
||||
destructor Destroy; override;
|
||||
|
||||
class function GetExportedMethods : TExpMethodArr;
|
||||
end;
|
||||
|
||||
TPSThread = class(TMThread)
|
||||
procedure OnProcessDirective(Sender: TPSPreProcessor;
|
||||
Parser: TPSPascalPreProcessorParser; const Active: Boolean;
|
||||
const DirectiveName, DirectiveParam: string; var Continue: Boolean);
|
||||
function PSScriptFindUnknownFile(Sender: TObject;
|
||||
const OrginFileName: string; var FileName, Output: string
|
||||
): Boolean;
|
||||
const OrginFileName: string; var FileName, Output: string): Boolean;
|
||||
procedure PSScriptProcessUnknowDirective(Sender: TPSPreProcessor;
|
||||
Parser: TPSPascalPreProcessorParser; const Active: Boolean;
|
||||
const DirectiveName, DirectiveParam: string; var Continue: Boolean);
|
||||
private
|
||||
ScriptPath, AppPath, IncludePath, PluginPath, FontPath: string;
|
||||
procedure HandleError(ErrorAtLine,ErrorPosition : integer; ErrorStr : string; ErrorType : TErrorType; ErrorModule : string);
|
||||
protected
|
||||
//DebugTo : TMemo;
|
||||
DebugTo: TWritelnProc;
|
||||
DebugImg : TDbgImgInfo;
|
||||
PluginsToload : Array of integer;
|
||||
FOnError : TOnError;
|
||||
procedure OnCompile(Sender: TPSScript);
|
||||
function RequireFile(Sender: TObject; const OriginFileName: String;
|
||||
var FileName, OutPut: string): Boolean;
|
||||
procedure OnCompImport(Sender: TObject; x: TPSPascalCompiler);
|
||||
procedure OnExecImport(Sender: TObject; se: TPSExec; x: TPSRuntimeClassImporter);
|
||||
procedure OutputMessages;
|
||||
procedure OnThreadTerminate(Sender: TObject);
|
||||
procedure Execute; override;
|
||||
public
|
||||
ExportedMethods : TExpMethodArr;
|
||||
PSScript : TPSScript; // Moved to public, as we can't kill it otherwise.
|
||||
Client : TClient;
|
||||
StartTime : LongWord;
|
||||
DebugMemo : TMemo;
|
||||
SyncInfo : PSyncInfo; //We need this for callthreadsafe
|
||||
ErrorData : PErrorData; //We need this for thread-safety etc
|
||||
property OnError : TOnError read FOnError write FOnError;
|
||||
procedure LoadMethods;
|
||||
class function GetExportedMethods : TExpMethodArr;
|
||||
procedure SetPSScript(Script : string);
|
||||
procedure SetDebug( writelnProc : TWritelnProc );
|
||||
procedure SetDbgImg( DebugImageInfo : TDbgImgInfo);
|
||||
procedure SetPaths(ScriptP,AppP,IncludeP,PluginP,FontP : string);
|
||||
constructor Create(CreateSuspended: Boolean; TheSyncInfo : PSyncInfo; plugin_dir: string);
|
||||
destructor Destroy; override;
|
||||
procedure SetScript(script: string); override;
|
||||
procedure Execute; override;
|
||||
procedure Terminate; override;
|
||||
end;
|
||||
|
||||
threadvar
|
||||
CurrThread : TMMLPSThread;
|
||||
CurrThread : TMThread;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
colour_conv,dtmutil,
|
||||
{$ifdef mswindows}windows,{$endif}
|
||||
@ -199,27 +219,166 @@ begin
|
||||
Stack.SetAnsiString(-1, MakeString(NewTPSVariantIFC(Stack[Stack.Count-2],false)));
|
||||
end;
|
||||
|
||||
function NewThreadCall(Procname : string) : Cardinal;
|
||||
begin;
|
||||
result := CurrThread.PSScript.Exec.GetVar(Procname);
|
||||
{***implementation TMThread***}
|
||||
constructor TMThread.Create(CreateSuspended: boolean; plugin_dir: string);
|
||||
begin
|
||||
Client := TClient.Create(plugin_dir);
|
||||
ExportedMethods:= GetExportedMethods;
|
||||
SetLength(PluginsToLoad,0);
|
||||
FreeOnTerminate := True;
|
||||
OnTerminate := @OnThreadTerminate;
|
||||
inherited Create(CreateSuspended);
|
||||
end;
|
||||
|
||||
function ThreadSafeCall(ProcName: string; var V: TVariantArray): Variant;
|
||||
begin;
|
||||
CurrThread.SyncInfo^.MethodName:= ProcName;
|
||||
CurrThread.SyncInfo^.V:= V;
|
||||
CurrThread.SyncInfo^.PSScript := CurrThread.PSScript;
|
||||
CurrThread.SyncInfo^.OldThread := CurrThread;
|
||||
CurrThread.Synchronize(CurrThread.SyncInfo^.SyncMethod);
|
||||
Result := CurrThread.SyncInfo^.Res;
|
||||
{ Writeln('We have a length of: ' + inttostr(length(v)));
|
||||
Try
|
||||
Result := CurrThread.PSScript.Exec.RunProcPVar(v,CurrThread.PSScript.Exec.GetProc(Procname));
|
||||
Except
|
||||
Writeln('We has some errors :-(');
|
||||
end;}
|
||||
destructor TMThread.Destroy;
|
||||
begin
|
||||
SetLength(PluginsToLoad,0);
|
||||
Client.Free;
|
||||
inherited Destroy;
|
||||
end;
|
||||
|
||||
procedure TMThread.HandleError(ErrorAtLine, ErrorPosition: integer; ErrorStr: string; ErrorType: TErrorType; ErrorModule : string);
|
||||
begin
|
||||
if OnError = nil then
|
||||
exit;
|
||||
ErrorData^.Line:= ErrorAtLine;
|
||||
ErrorData^.Position:= ErrorPosition;
|
||||
ErrorData^.Error:= ErrorStr;
|
||||
ErrorData^.ErrType:= ErrorType;
|
||||
ErrorData^.Module:= ErrorModule;
|
||||
ErrorData^.IncludePath:= IncludePath;
|
||||
CurrThread.Synchronize(OnError); //what does this do???
|
||||
end;
|
||||
|
||||
procedure TMThread.OnThreadTerminate(Sender: TObject);
|
||||
begin
|
||||
|
||||
end;
|
||||
|
||||
function TMThread.ProcessDirective(DirectiveName, DirectiveArgs: string): boolean;
|
||||
var
|
||||
plugin_idx, i: integer;
|
||||
begin
|
||||
if DirectiveName= 'LOADDLL' then
|
||||
begin
|
||||
if DirectiveArgs <> '' then
|
||||
begin;
|
||||
plugin_idx:= PluginsGlob.LoadPlugin(DirectiveArgs);
|
||||
if plugin_idx < 0 then
|
||||
psWriteln(Format('Your DLL %s has not been found',[DirectiveArgs]))
|
||||
else
|
||||
begin;
|
||||
for i := High(PluginsToLoad) downto 0 do
|
||||
if PluginsToLoad[i] = plugin_idx then
|
||||
Exit;
|
||||
SetLength(PluginsToLoad,Length(PluginsToLoad)+1);
|
||||
PluginsToLoad[High(PluginsToLoad)]:= plugin_idx;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
result:= True;
|
||||
end;
|
||||
|
||||
function TMThread.LoadFile(var filename, contents: string): boolean;
|
||||
var
|
||||
path: string;
|
||||
f: TFileStream;
|
||||
begin
|
||||
if FileExists(filename) then
|
||||
path:= filename
|
||||
else
|
||||
path:= IncludePath + filename;
|
||||
if not FileExists(path) then
|
||||
begin
|
||||
psWriteln(Path + ' doesn''t exist');
|
||||
Result := false;
|
||||
Exit;
|
||||
end;
|
||||
try
|
||||
f:= TFileStream.Create(Path, fmOpenRead or fmShareDenyWrite);
|
||||
except
|
||||
Result := false;
|
||||
exit;
|
||||
end;
|
||||
try
|
||||
try
|
||||
SetLength(contents, f.Size);
|
||||
f.Read(contents[1], Length(contents));
|
||||
result:= true;
|
||||
finally
|
||||
f.free;
|
||||
end;
|
||||
except
|
||||
result:= false;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMThread.SetDebug(writelnProc: TWritelnProc);
|
||||
begin
|
||||
DebugTo := writelnProc;
|
||||
end;
|
||||
|
||||
procedure TMThread.SetDbgImg(DebugImageInfo: TDbgImgInfo);
|
||||
begin
|
||||
DebugImg := DebugImageInfo;
|
||||
end;
|
||||
|
||||
procedure TMThread.SetPaths(ScriptP, AppP,IncludeP,PluginP,FontP: string);
|
||||
begin
|
||||
AppPath:= AppP;
|
||||
ScriptPath:= ScriptP;
|
||||
IncludePath:= IncludeP;
|
||||
PluginPath:= PluginP;
|
||||
FontPath:= FontP;
|
||||
end;
|
||||
|
||||
{$I PSInc/Wrappers/other.inc}
|
||||
{$I PSInc/Wrappers/bitmap.inc}
|
||||
{$I PSInc/Wrappers/window.inc}
|
||||
|
||||
{$I PSInc/Wrappers/strings.inc}
|
||||
|
||||
{$I PSInc/Wrappers/colour.inc}
|
||||
{$I PSInc/Wrappers/math.inc}
|
||||
{$I PSInc/Wrappers/mouse.inc}
|
||||
{$I PSInc/Wrappers/file.inc}
|
||||
|
||||
{$I PSInc/Wrappers/keyboard.inc}
|
||||
{$I PSInc/Wrappers/dtm.inc}
|
||||
{$I PSInc/Wrappers/ocr.inc}
|
||||
{$I PSInc/Wrappers/internets.inc}
|
||||
|
||||
class function TMThread.GetExportedMethods: TExpMethodArr;
|
||||
var
|
||||
c : integer;
|
||||
CurrSection : string;
|
||||
|
||||
procedure SetCurrSection(str : string);
|
||||
begin;
|
||||
CurrSection := Str;
|
||||
end;
|
||||
|
||||
procedure AddFunction( Ptr : Pointer; DeclStr : String);
|
||||
begin;
|
||||
if c >= 300 then
|
||||
raise exception.create('PSThread.LoadMethods: Exported more than 300 functions');
|
||||
Result[c].FuncDecl:= DeclStr;
|
||||
Result[c].FuncPtr:= Ptr;
|
||||
Result[c].Section:= CurrSection;
|
||||
inc(c);
|
||||
end;
|
||||
|
||||
begin
|
||||
c := 0;
|
||||
CurrSection := 'Other';
|
||||
SetLength(Result,300);
|
||||
|
||||
{$i PSInc/psexportedmethods.inc}
|
||||
|
||||
SetLength(Result,c);
|
||||
end;
|
||||
|
||||
{***implementation TPSThread***}
|
||||
|
||||
{
|
||||
Note to Raymond: For PascalScript, Create it on the .Create,
|
||||
@ -238,12 +397,31 @@ end;
|
||||
well, it will really make the unit more straightforward to use and read.
|
||||
}
|
||||
|
||||
{function NewThreadCall(Procname : string) : Cardinal;
|
||||
begin;
|
||||
result := CurrThread.PSScript.Exec.GetVar(Procname);
|
||||
end;}
|
||||
|
||||
constructor TMMLPSThread.Create(CreateSuspended : boolean; TheSyncInfo : PSyncInfo; plugin_dir: string);
|
||||
{function ThreadSafeCall(ProcName: string; var V: TVariantArray): Variant;
|
||||
begin;
|
||||
CurrThread.SyncInfo^.MethodName:= ProcName;
|
||||
CurrThread.SyncInfo^.V:= V;
|
||||
CurrThread.SyncInfo^.PSScript := CurrThread.PSScript;
|
||||
CurrThread.SyncInfo^.OldThread := CurrThread;
|
||||
CurrThread.Synchronize(CurrThread.SyncInfo^.SyncMethod);
|
||||
Result := CurrThread.SyncInfo^.Res;
|
||||
// Writeln('We have a length of: ' + inttostr(length(v)));
|
||||
// Try
|
||||
// Result := CurrThread.PSScript.Exec.RunProcPVar(v,CurrThread.PSScript.Exec.GetProc(Procname));
|
||||
// Except
|
||||
// Writeln('We has some errors :-(');
|
||||
// end;
|
||||
end;}
|
||||
|
||||
|
||||
constructor TPSThread.Create(CreateSuspended : boolean; TheSyncInfo : PSyncInfo; plugin_dir: string);
|
||||
begin
|
||||
SyncInfo:= TheSyncInfo;
|
||||
SetLength(PluginsToLoad,0);
|
||||
Client := TClient.Create(plugin_dir);
|
||||
PSScript := TPSScript.Create(nil);
|
||||
PSScript.UsePreProcessor:= True;
|
||||
PSScript.OnNeedFile := @RequireFile;
|
||||
@ -256,99 +434,36 @@ begin
|
||||
OnError:= nil;
|
||||
// Set some defines
|
||||
{$I PSInc/psdefines.inc}
|
||||
// Load the methods we're going to export
|
||||
Self.LoadMethods;
|
||||
|
||||
FreeOnTerminate := True;
|
||||
Self.OnTerminate := @Self.OnThreadTerminate;
|
||||
|
||||
inherited Create(CreateSuspended);
|
||||
inherited Create(CreateSuspended, plugin_dir);
|
||||
end;
|
||||
|
||||
procedure TMMLPSThread.OnThreadTerminate(Sender: TObject);
|
||||
begin
|
||||
// Writeln('Terminating the thread');
|
||||
end;
|
||||
|
||||
destructor TMMLPSThread.Destroy;
|
||||
destructor TPSThread.Destroy;
|
||||
begin
|
||||
SetLength(PluginsToLoad,0);
|
||||
Client.Free;
|
||||
PSScript.Free;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
// include PS wrappers
|
||||
{$I PSInc/Wrappers/other.inc}
|
||||
{$I PSInc/Wrappers/bitmap.inc}
|
||||
{$I PSInc/Wrappers/window.inc}
|
||||
|
||||
{$I PSInc/Wrappers/strings.inc}
|
||||
|
||||
{$I PSInc/Wrappers/colour.inc}
|
||||
{$I PSInc/Wrappers/math.inc}
|
||||
{$I PSInc/Wrappers/mouse.inc}
|
||||
{$I PSInc/Wrappers/file.inc}
|
||||
|
||||
{$I PSInc/Wrappers/keyboard.inc}
|
||||
{$I PSInc/Wrappers/dtm.inc}
|
||||
{$I PSInc/Wrappers/ocr.inc}
|
||||
{$I PSInc/Wrappers/internets.inc}
|
||||
|
||||
procedure TMMLPSThread.OnProcessDirective(Sender: TPSPreProcessor;
|
||||
procedure TPSThread.OnProcessDirective(Sender: TPSPreProcessor;
|
||||
Parser: TPSPascalPreProcessorParser; const Active: Boolean;
|
||||
const DirectiveName, DirectiveParam: string; var Continue: Boolean);
|
||||
begin
|
||||
end;
|
||||
|
||||
function TMMLPSThread.PSScriptFindUnknownFile(Sender: TObject;
|
||||
function TPSThread.PSScriptFindUnknownFile(Sender: TObject;
|
||||
const OrginFileName: string; var FileName, Output: string): Boolean;
|
||||
begin
|
||||
Writeln(OrginFileName + '-' + Output + '-' + FileName);
|
||||
end;
|
||||
|
||||
procedure TMMLPSThread.PSScriptProcessUnknowDirective(Sender: TPSPreProcessor;
|
||||
procedure TPSThread.PSScriptProcessUnknowDirective(Sender: TPSPreProcessor;
|
||||
Parser: TPSPascalPreProcessorParser; const Active: Boolean;
|
||||
const DirectiveName, DirectiveParam: string; var Continue: Boolean);
|
||||
var
|
||||
TempNum : integer;
|
||||
I: integer;
|
||||
begin
|
||||
if DirectiveName= 'LOADDLL' then
|
||||
if DirectiveParam <> '' then
|
||||
begin;
|
||||
TempNum := PluginsGlob.LoadPlugin(DirectiveParam);
|
||||
if TempNum < 0 then
|
||||
psWriteln(Format('Your DLL %s has not been found',[DirectiveParam]))
|
||||
else
|
||||
begin;
|
||||
for i := High(PluginsToLoad) downto 0 do
|
||||
if PluginsToLoad[i] = TempNum then
|
||||
Exit;
|
||||
SetLength(PluginsToLoad,Length(PluginsToLoad)+1);
|
||||
PluginsToLoad[High(PluginsToLoad)] := TempNum;
|
||||
end;
|
||||
end;
|
||||
Continue:= True;
|
||||
Continue:= ProcessDirective(DirectiveName, DirectiveParam);
|
||||
end;
|
||||
|
||||
procedure TMMLPSThread.HandleError(ErrorAtLine, ErrorPosition: integer;
|
||||
ErrorStr: string; ErrorType: TErrorType; ErrorModule : string);
|
||||
begin
|
||||
if FOnError = nil then
|
||||
exit;
|
||||
ErrorData^.Line:= ErrorAtLine;
|
||||
ErrorData^.Position:= ErrorPosition;
|
||||
ErrorData^.Error:= ErrorStr;
|
||||
ErrorData^.ErrType:= ErrorType;
|
||||
ErrorData^.Module:= ErrorModule;
|
||||
ErrorData^.IncludePath:= IncludePath;
|
||||
CurrThread.Synchronize(FOnError);
|
||||
end;
|
||||
|
||||
|
||||
|
||||
procedure TMMLPSThread.OnCompile(Sender: TPSScript);
|
||||
procedure TPSThread.OnCompile(Sender: TPSScript);
|
||||
var
|
||||
i,ii : integer;
|
||||
Fonts : TMFonts;
|
||||
@ -373,40 +488,14 @@ begin
|
||||
PSScript.AddFunction(ExportedMethods[i].FuncPtr,ExportedMethods[i].FuncDecl);
|
||||
end;
|
||||
|
||||
function TMMLPSThread.RequireFile(Sender: TObject;
|
||||
function TPSThread.RequireFile(Sender: TObject;
|
||||
const OriginFileName: String; var FileName, OutPut: string): Boolean;
|
||||
var
|
||||
path: string;
|
||||
f: TFileStream;
|
||||
begin
|
||||
if FileExists(FileName) then
|
||||
Path := FileName
|
||||
else
|
||||
Path := IncludePath + Filename;
|
||||
if not FileExists(Path) then
|
||||
begin;
|
||||
psWriteln(Path + ' doesn''t exist');
|
||||
Result := false;
|
||||
Exit;
|
||||
end;
|
||||
try
|
||||
F := TFileStream.Create(Path, fmOpenRead or fmShareDenyWrite);
|
||||
except
|
||||
Result := false;
|
||||
exit;
|
||||
end;
|
||||
try
|
||||
SetLength(Output, f.Size);
|
||||
f.Read(Output[1], Length(Output));
|
||||
finally
|
||||
f.Free;
|
||||
end;
|
||||
Result := True;
|
||||
result:= LoadFile(FileName,OutPut);
|
||||
end;
|
||||
|
||||
procedure SIRegister_Mufasa(cl: TPSPascalCompiler);
|
||||
|
||||
begin;
|
||||
begin
|
||||
with cl.AddClassN(cl.FindClass('TObject'),'TMufasaBitmap') do
|
||||
begin;
|
||||
RegisterMethod('constructor create');
|
||||
@ -445,7 +534,7 @@ begin;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMMLPSThread.OnCompImport(Sender: TObject; x: TPSPascalCompiler);
|
||||
procedure TPSThread.OnCompImport(Sender: TObject; x: TPSPascalCompiler);
|
||||
begin
|
||||
SIRegister_Std(x);
|
||||
SIRegister_Controls(x);
|
||||
@ -482,7 +571,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMMLPSThread.OnExecImport(Sender: TObject; se: TPSExec;
|
||||
procedure TPSThread.OnExecImport(Sender: TObject; se: TPSExec;
|
||||
x: TPSRuntimeClassImporter);
|
||||
begin
|
||||
RIRegister_Std(x);
|
||||
@ -498,7 +587,7 @@ begin
|
||||
se.RegisterFunctionName('SWAP',@swap_,nil,nil);
|
||||
end;
|
||||
|
||||
procedure TMMLPSThread.OutputMessages;
|
||||
procedure TPSThread.OutputMessages;
|
||||
var
|
||||
l: Longint;
|
||||
b: Boolean;
|
||||
@ -520,7 +609,7 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMMLPSThread.Execute;
|
||||
procedure TPSThread.Execute;
|
||||
begin
|
||||
CurrThread := Self;
|
||||
Starttime := lclintf.GetTickCount;
|
||||
@ -547,68 +636,16 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMMLPSThread.LoadMethods;
|
||||
procedure TPSThread.Terminate;
|
||||
begin
|
||||
ExportedMethods:= GetExportedMethods;
|
||||
PSScript.Stop;
|
||||
end;
|
||||
|
||||
class function TMMLPSThread.GetExportedMethods: TExpMethodArr;
|
||||
var
|
||||
c : integer;
|
||||
CurrSection : string;
|
||||
|
||||
procedure SetCurrSection(str : string);
|
||||
begin;
|
||||
CurrSection := Str;
|
||||
end;
|
||||
|
||||
procedure AddFunction( Ptr : Pointer; DeclStr : String);
|
||||
begin;
|
||||
// SetLength(ExportedMethods,c+1);
|
||||
if c >= 300 then
|
||||
raise exception.create('PSThread.LoadMethods: Exported more than 300 functions');
|
||||
Result[c].FuncDecl:= DeclStr;
|
||||
Result[c].FuncPtr:= Ptr;
|
||||
Result[c].Section:= CurrSection;
|
||||
inc(c);
|
||||
end;
|
||||
|
||||
begin
|
||||
c := 0;
|
||||
CurrSection := 'Other';
|
||||
SetLength(Result,300);
|
||||
|
||||
{$i PSInc/psexportedmethods.inc}
|
||||
|
||||
SetLength(Result,c);
|
||||
|
||||
end;
|
||||
|
||||
procedure TMMLPSThread.SetPSScript(Script: string);
|
||||
procedure TPSThread.SetScript(script: string);
|
||||
begin
|
||||
PSScript.Script.Text:= Script;
|
||||
end;
|
||||
|
||||
procedure TMMLPSThread.SetDebug(writelnProc: TWritelnProc);
|
||||
begin
|
||||
DebugTo := writelnProc;
|
||||
end;
|
||||
|
||||
procedure TMMLPSThread.SetDbgImg(DebugImageInfo: TDbgImgInfo);
|
||||
begin
|
||||
DebugImg := DebugImageInfo;
|
||||
end;
|
||||
|
||||
procedure TMMLPSThread.SetPaths(ScriptP, AppP,IncludeP,PluginP,FontP: string);
|
||||
begin
|
||||
AppPath:= AppP;
|
||||
ScriptPath:= ScriptP;
|
||||
IncludePath:= IncludeP;
|
||||
PluginPath:= PluginP;
|
||||
FontPath:= FontP;
|
||||
|
||||
end;
|
||||
|
||||
|
||||
initialization
|
||||
PluginsGlob := TMPlugins.Create;
|
||||
@ -617,4 +654,3 @@ finalization
|
||||
//Its a nice idea, but it will segfault... the program is closing anyway.
|
||||
end.
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user