linux fixes

This commit is contained in:
April Ayres-Griffiths 2019-04-11 12:49:48 +10:00
parent 52dc73f0e6
commit 2bc51773e8
11 changed files with 35575 additions and 35527 deletions

View File

@ -1,11 +1,11 @@
object GUIForm: TGUIForm
Left = 2072
Left = 2271
Height = 574
Top = 321
Top = 247
Width = 945
AlphaBlendValue = 128
Caption = 'microM8 GUI'
ClientHeight = 554
ClientHeight = 549
ClientWidth = 945
Constraints.MinWidth = 945
DoubleBuffered = False
@ -27,8 +27,8 @@ object GUIForm: TGUIForm
LCLVersion = '2.0.0.4'
object StatusBar1: TStatusBar
Left = 0
Height = 23
Top = 531
Height = 19
Top = 530
Width = 945
Panels = <>
end
@ -126,6 +126,7 @@ object GUIForm: TGUIForm
Top = 2
Caption = 'ToolButton9'
ImageIndex = 16
OnClick = ToolButton9Click
end
object ToolButton10: TToolButton
Left = 693
@ -176,7 +177,7 @@ object GUIForm: TGUIForm
end
object tbMasterVolume: TTrackBar
Left = 249
Height = 32
Height = 38
Top = 2
Width = 64
OnChange = tbMasterVolumeChange
@ -208,12 +209,13 @@ object GUIForm: TGUIForm
end
object TrackBar2: TTrackBar
Left = 417
Height = 32
Height = 38
Top = 2
Width = 64
Max = 4
OnChange = TrackBar2Change
Position = 0
TickStyle = tsNone
OnKeyDown = FormKeyDown
OnKeyUp = FormKeyUp
TabOrder = 1
@ -234,32 +236,32 @@ object GUIForm: TGUIForm
end
object pnlContainer: TPanel
Left = 0
Height = 495
Height = 494
Top = 36
Width = 945
Align = alClient
BevelOuter = bvNone
ClientHeight = 495
ClientHeight = 494
ClientWidth = 945
Color = clAqua
ParentColor = False
TabOrder = 2
object sidecarPanel: TPanel
Left = 775
Height = 495
Height = 494
Top = 0
Width = 170
Align = alRight
BevelOuter = bvNone
Caption = 'sidecarPanel'
ClientHeight = 495
ClientHeight = 494
ClientWidth = 170
Color = clBlack
ParentColor = False
TabOrder = 0
object Image1: TImage
Left = 0
Height = 495
Height = 494
Top = 0
Width = 170
Align = alClient
@ -5352,12 +5354,12 @@ object GUIForm: TGUIForm
end
object embedPanel: TPanel
Left = 0
Height = 495
Height = 494
Top = 0
Width = 775
Align = alClient
BevelOuter = bvNone
ClientHeight = 495
ClientHeight = 494
ClientWidth = 775
Color = clBlack
Font.Color = clWhite
@ -5366,7 +5368,7 @@ object GUIForm: TGUIForm
TabOrder = 1
object backdrop: TImage
Left = 0
Height = 495
Height = 494
Top = 0
Width = 775
Align = alClient
@ -10077,7 +10079,7 @@ object GUIForm: TGUIForm
end
object MicroM8Process: TAsyncProcess
Active = False
Executable = 'C:/Users/aag65/Projects/octalyzer/GoPath/src/paleotronic.com/octalyzer/microM8.exe'
Executable = '/home/april/Projects/octalyzer/GoPath/src/paleotronic.com/octalyzer/microM8'
Parameters.Strings = (
'-control-port'
'-disable-border'

View File

@ -15,6 +15,9 @@ uses
type
TMouseBtnType = (mbtLeft, mbtMiddle, mbtRight);
{ TGUIForm }
TGUIForm = class(TForm)
@ -415,6 +418,7 @@ type
procedure tbTintModeClick(Sender: TObject);
procedure tbVolDownClick(Sender: TObject);
procedure tbVolUpClick(Sender: TObject);
procedure ToolButton9Click(Sender: TObject);
procedure ToolTimerTimer(Sender: TObject);
procedure tbMasterVolumeChange(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
@ -452,6 +456,8 @@ type
procedure UpdateWarpSlider;
procedure UpdateAllCaps;
procedure UpdateScanlines;
function IsMouseBtnDown(const AMouseBtn: TMouseBtnType): Boolean;
function IsMouseBtnDown: Boolean;
private
lx, ly, lw, lh: integer;
lastShowTime: TDateTime;
@ -479,22 +485,31 @@ const
{ TGUIForm }
type
TMouseBtnType = (mbtLeft, mbtMiddle, mbtRight);
const
MOUSE_BTN_VKEYS: Array [TMouseBtnType] of Integer = (VK_LBUTTON, VK_MBUTTON, VK_RBUTTON);
(* This function returns true when the specified mouse button is pressed *)
function IsMouseBtnDown(const AMouseBtn: TMouseBtnType): Boolean;
{$IFDEF WINDOWS}
function TGUIForm.IsMouseBtnDown(const AMouseBtn: TMouseBtnType): Boolean;
begin
Result := GetAsyncKeyState(MOUSE_BTN_VKEYS[AMouseBtn])
AND $8000 <> 0;
end;
{$ELSE}
function TGUIForm.IsMouseBtnDown(const AMouseBtn: TMouseBtnType): Boolean;
var
mstate: integer;
s: string;
begin
s := GetConfig( baseUrl+'/api/control/mouse/buttonstate' );
mstate := StrToInt( s );
result := (mstate and integer(AMouseBtn)) <> 0;
end;
{$ENDIF}
(* This function returns true when any of the mouse button is pressed *)
function IsMouseBtnDown: Boolean;
{$IFDEF WINDOWS}
function TGUIForm.IsMouseBtnDown: Boolean;
begin
Result := (GetAsyncKeyState(VK_LBUTTON)
OR GetAsyncKeyState(VK_MBUTTON)
@ -502,6 +517,15 @@ begin
)
AND $8000 <> 0;
end;
{$ELSE}
function TGUIForm.IsMouseBtnDown: Boolean;
var
mstate: integer;
begin
mstate := StrToInt( GetConfig( baseUrl+'/api/control/mouse/buttonstate' ) );
result := mstate <> 0;
end;
{$ENDIF}
constructor TGUIForm.Create(TheOwner: TComponent);
begin
@ -1672,6 +1696,11 @@ begin
UpdateVolSlider;
end;
procedure TGUIForm.ToolButton9Click(Sender: TObject);
begin
SimpleGet(baseUrl+'/api/control/pause');
end;
procedure TGUIForm.ToolTimerTimer(Sender: TObject);
begin
UpdateRenderMode;

View File

@ -26,16 +26,13 @@
<FormatVersion Value="2"/>
<Modes Count="0"/>
</RunParams>
<RequiredPackages Count="3">
<RequiredPackages Count="2">
<Item1>
<PackageName Value="LazOpenGLContext"/>
</Item1>
<Item2>
<PackageName Value="indylaz"/>
</Item2>
<Item3>
<PackageName Value="LCL"/>
</Item3>
</Item2>
</RequiredPackages>
<Units Count="3">
<Unit0>
@ -77,7 +74,7 @@
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="5">
<Exceptions Count="6">
<Item1>
<Name Value="EAbort"/>
</Item1>
@ -93,6 +90,9 @@
<Item5>
<Name Value="ESocketError"/>
</Item5>
<Item6>
<Name Value="EConvertError"/>
</Item6>
</Exceptions>
</Debugging>
</CONFIG>

View File

@ -21,8 +21,8 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<TopLine Value="2110"/>
<CursorPos X="42" Y="2122"/>
<TopLine Value="498"/>
<CursorPos X="63" Y="513"/>
<UsageCount Value="323"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@ -33,12 +33,10 @@
<ComponentName Value="frmMixer"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<EditorIndex Value="1"/>
<EditorIndex Value="-1"/>
<TopLine Value="3"/>
<CursorPos X="26" Y="25"/>
<UsageCount Value="156"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
<UsageCount Value="158"/>
</Unit2>
<Unit3>
<Filename Value="C:\lazarus\lcl\include\picture.inc"/>
@ -51,123 +49,123 @@
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="main.pas"/>
<Caret Line="1514" Column="4" TopLine="1493"/>
<Caret Line="969" Column="14" TopLine="938"/>
</Position1>
<Position2>
<Filename Value="main.pas"/>
<Caret Line="888" Column="23" TopLine="881"/>
<Caret Line="974" Column="14" TopLine="943"/>
</Position2>
<Position3>
<Filename Value="main.pas"/>
<Caret Line="461" Column="36" TopLine="431"/>
<Caret Line="1068" Column="16" TopLine="1037"/>
</Position3>
<Position4>
<Filename Value="main.pas"/>
<Caret Line="445" TopLine="427"/>
<Caret Line="1073" Column="15" TopLine="1042"/>
</Position4>
<Position5>
<Filename Value="main.pas"/>
<Caret Line="1652" Column="15" TopLine="1645"/>
<Caret Line="1078" Column="15" TopLine="1047"/>
</Position5>
<Position6>
<Filename Value="main.pas"/>
<Caret Line="446" Column="30" TopLine="428"/>
<Caret Line="1083" Column="14" TopLine="1052"/>
</Position6>
<Position7>
<Filename Value="main.pas"/>
<Caret Line="1652" Column="18" TopLine="1621"/>
<Caret Line="1100" Column="17" TopLine="1069"/>
</Position7>
<Position8>
<Filename Value="main.pas"/>
<Caret Line="1671" Column="61" TopLine="1649"/>
<Caret Line="1156" Column="12" TopLine="1125"/>
</Position8>
<Position9>
<Filename Value="main.pas"/>
<Caret Line="1025" Column="3" TopLine="1023"/>
<Caret Line="1161" Column="13" TopLine="1130"/>
</Position9>
<Position10>
<Filename Value="main.pas"/>
<Caret Line="1333" Column="15" TopLine="1306"/>
<Caret Line="1166" Column="14" TopLine="1135"/>
</Position10>
<Position11>
<Filename Value="main.pas"/>
<Caret Line="446" Column="30" TopLine="428"/>
<Caret Line="1171" Column="13" TopLine="1140"/>
</Position11>
<Position12>
<Filename Value="main.pas"/>
<Caret Line="1652" Column="18" TopLine="1621"/>
<Caret Line="1176" Column="12" TopLine="1145"/>
</Position12>
<Position13>
<Filename Value="main.pas"/>
<Caret Line="1692" Column="22" TopLine="1670"/>
<Caret Line="1181" Column="12" TopLine="1150"/>
</Position13>
<Position14>
<Filename Value="main.pas"/>
<Caret Line="2026" Column="6" TopLine="2004"/>
<Caret Line="1291" Column="18" TopLine="1260"/>
</Position14>
<Position15>
<Filename Value="main.pas"/>
<Caret Line="2339" Column="47" TopLine="2306"/>
<Caret Line="1371" Column="16" TopLine="1340"/>
</Position15>
<Position16>
<Filename Value="main.pas"/>
<Caret Line="2377" Column="3" TopLine="2345"/>
<Caret Line="1439" Column="12" TopLine="1408"/>
</Position16>
<Position17>
<Filename Value="main.pas"/>
<Caret Line="1863" TopLine="1844"/>
<Caret Line="1717" Column="17" TopLine="1686"/>
</Position17>
<Position18>
<Filename Value="main.pas"/>
<Caret Line="2039" Column="18" TopLine="2031"/>
<Caret Line="1725" Column="17" TopLine="1694"/>
</Position18>
<Position19>
<Filename Value="main.pas"/>
<Caret Line="1541" Column="29" TopLine="1442"/>
<Caret Line="1740" Column="17" TopLine="1709"/>
</Position19>
<Position20>
<Filename Value="main.pas"/>
<Caret Line="2118" Column="50" TopLine="2098"/>
<Caret Line="1751" Column="17" TopLine="1720"/>
</Position20>
<Position21>
<Filename Value="main.pas"/>
<Caret Line="1880" TopLine="1915"/>
<Caret Line="1859" Column="28" TopLine="1828"/>
</Position21>
<Position22>
<Filename Value="main.pas"/>
<Caret Line="2120" Column="35" TopLine="2101"/>
<Caret Line="1891" Column="6" TopLine="1865"/>
</Position22>
<Position23>
<Filename Value="main.pas"/>
<Caret Line="1872" Column="31" TopLine="1861"/>
<Caret Line="544" Column="10" TopLine="512"/>
</Position23>
<Position24>
<Filename Value="main.pas"/>
<Caret Line="2119" Column="44" TopLine="2095"/>
<Caret Line="523" Column="22" TopLine="502"/>
</Position24>
<Position25>
<Filename Value="main.pas"/>
<Caret Line="1880" TopLine="1861"/>
<Caret Line="504" Column="9" TopLine="495"/>
</Position25>
<Position26>
<Filename Value="main.pas"/>
<Caret Line="2124" TopLine="2101"/>
<Caret Line="502" Column="44" TopLine="485"/>
</Position26>
<Position27>
<Filename Value="main.pas"/>
<Caret Line="2040" Column="56" TopLine="2026"/>
<Caret Line="507" Column="29" TopLine="484"/>
</Position27>
<Position28>
<Filename Value="main.pas"/>
<Caret Line="2041" Column="23" TopLine="2026"/>
<Caret Line="519" Column="19" TopLine="497"/>
</Position28>
<Position29>
<Filename Value="main.pas"/>
<Caret Line="2378" Column="29" TopLine="2361"/>
<Caret Line="457" Column="29" TopLine="448"/>
</Position29>
<Position30>
<Filename Value="main.pas"/>
<Caret Line="2393" Column="3" TopLine="2361"/>
<Caret Line="17"/>
</Position30>
</JumpHistory>
<RunParams>

View File

@ -1,11 +1,11 @@
object GUIForm: TGUIForm
Left = 2072
Left = 2270
Height = 574
Top = 321
Top = 247
Width = 945
AlphaBlendValue = 128
Caption = 'microM8 GUI'
ClientHeight = 554
ClientHeight = 549
ClientWidth = 945
Constraints.MinWidth = 945
DoubleBuffered = False
@ -27,8 +27,8 @@ object GUIForm: TGUIForm
LCLVersion = '2.0.0.4'
object StatusBar1: TStatusBar
Left = 0
Height = 23
Top = 531
Height = 19
Top = 530
Width = 945
Panels = <>
end
@ -177,7 +177,7 @@ object GUIForm: TGUIForm
end
object tbMasterVolume: TTrackBar
Left = 249
Height = 32
Height = 38
Top = 2
Width = 64
OnChange = tbMasterVolumeChange
@ -209,12 +209,13 @@ object GUIForm: TGUIForm
end
object TrackBar2: TTrackBar
Left = 417
Height = 32
Height = 38
Top = 2
Width = 64
Max = 4
OnChange = TrackBar2Change
Position = 0
TickStyle = tsNone
OnKeyDown = FormKeyDown
OnKeyUp = FormKeyUp
TabOrder = 1
@ -235,32 +236,32 @@ object GUIForm: TGUIForm
end
object pnlContainer: TPanel
Left = 0
Height = 495
Height = 494
Top = 36
Width = 945
Align = alClient
BevelOuter = bvNone
ClientHeight = 495
ClientHeight = 494
ClientWidth = 945
Color = clAqua
ParentColor = False
TabOrder = 2
object sidecarPanel: TPanel
Left = 775
Height = 495
Height = 494
Top = 0
Width = 170
Align = alRight
BevelOuter = bvNone
Caption = 'sidecarPanel'
ClientHeight = 495
ClientHeight = 494
ClientWidth = 170
Color = clBlack
ParentColor = False
TabOrder = 0
object Image1: TImage
Left = 0
Height = 495
Height = 494
Top = 0
Width = 170
Align = alClient
@ -5353,12 +5354,12 @@ object GUIForm: TGUIForm
end
object embedPanel: TPanel
Left = 0
Height = 495
Height = 494
Top = 0
Width = 775
Align = alClient
BevelOuter = bvNone
ClientHeight = 495
ClientHeight = 494
ClientWidth = 775
Color = clBlack
Font.Color = clWhite
@ -5367,7 +5368,7 @@ object GUIForm: TGUIForm
TabOrder = 1
object backdrop: TImage
Left = 0
Height = 495
Height = 494
Top = 0
Width = 775
Align = alClient
@ -10078,7 +10079,7 @@ object GUIForm: TGUIForm
end
object MicroM8Process: TAsyncProcess
Active = False
Executable = 'C:/Users/aag65/Projects/octalyzer/GoPath/src/paleotronic.com/octalyzer/microM8.exe'
Executable = '/home/april/Projects/octalyzer/GoPath/src/paleotronic.com/octalyzer/microM8'
Parameters.Strings = (
'-control-port'
'-disable-border'

View File

@ -15,6 +15,9 @@ uses
type
TMouseBtnType = (mbtLeft, mbtMiddle, mbtRight);
{ TGUIForm }
TGUIForm = class(TForm)
@ -453,6 +456,8 @@ type
procedure UpdateWarpSlider;
procedure UpdateAllCaps;
procedure UpdateScanlines;
function IsMouseBtnDown(const AMouseBtn: TMouseBtnType): Boolean;
function IsMouseBtnDown: Boolean;
private
lx, ly, lw, lh: integer;
lastShowTime: TDateTime;
@ -480,22 +485,31 @@ const
{ TGUIForm }
type
TMouseBtnType = (mbtLeft, mbtMiddle, mbtRight);
const
MOUSE_BTN_VKEYS: Array [TMouseBtnType] of Integer = (VK_LBUTTON, VK_MBUTTON, VK_RBUTTON);
(* This function returns true when the specified mouse button is pressed *)
function IsMouseBtnDown(const AMouseBtn: TMouseBtnType): Boolean;
{$IFDEF WINDOWS}
function TGUIForm.IsMouseBtnDown(const AMouseBtn: TMouseBtnType): Boolean;
begin
Result := GetAsyncKeyState(MOUSE_BTN_VKEYS[AMouseBtn])
AND $8000 <> 0;
end;
{$ELSE}
function TGUIForm.IsMouseBtnDown(const AMouseBtn: TMouseBtnType): Boolean;
var
mstate: integer;
s: string;
begin
s := GetConfig( baseUrl+'/api/control/mouse/buttonstate' );
mstate := StrToInt( s );
result := (mstate and integer(AMouseBtn)) <> 0;
end;
{$ENDIF}
(* This function returns true when any of the mouse button is pressed *)
function IsMouseBtnDown: Boolean;
{$IFDEF WINDOWS}
function TGUIForm.IsMouseBtnDown: Boolean;
begin
Result := (GetAsyncKeyState(VK_LBUTTON)
OR GetAsyncKeyState(VK_MBUTTON)
@ -503,6 +517,15 @@ begin
)
AND $8000 <> 0;
end;
{$ELSE}
function TGUIForm.IsMouseBtnDown: Boolean;
var
mstate: integer;
begin
mstate := StrToInt( GetConfig( baseUrl+'/api/control/mouse/buttonstate' ) );
result := mstate <> 0;
end;
{$ENDIF}
constructor TGUIForm.Create(TheOwner: TComponent);
begin

View File

@ -26,16 +26,13 @@
<FormatVersion Value="2"/>
<Modes Count="0"/>
</RunParams>
<RequiredPackages Count="3">
<RequiredPackages Count="2">
<Item1>
<PackageName Value="LazOpenGLContext"/>
</Item1>
<Item2>
<PackageName Value="indylaz"/>
</Item2>
<Item3>
<PackageName Value="LCL"/>
</Item3>
</Item2>
</RequiredPackages>
<Units Count="3">
<Unit0>

View File

@ -7,7 +7,7 @@ uses
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, lazopenglcontext, indylaz, main, mixer
Forms, lazopenglcontext, main, mixer
{ you can add units after this };
{$R *.res}

72
poc.lps
View File

@ -21,8 +21,8 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<TopLine Value="1864"/>
<CursorPos X="6" Y="1891"/>
<TopLine Value="498"/>
<CursorPos X="17" Y="498"/>
<UsageCount Value="323"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@ -33,141 +33,139 @@
<ComponentName Value="frmMixer"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<EditorIndex Value="1"/>
<EditorIndex Value="-1"/>
<TopLine Value="3"/>
<CursorPos X="26" Y="25"/>
<UsageCount Value="157"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
<UsageCount Value="162"/>
</Unit2>
<Unit3>
<Filename Value="C:\lazarus\lcl\include\picture.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="576"/>
<CursorPos X="49" Y="591"/>
<UsageCount Value="121"/>
<UsageCount Value="120"/>
</Unit3>
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="main.pas"/>
<Caret Line="534" Column="17" TopLine="503"/>
<Caret Line="969" Column="14" TopLine="938"/>
</Position1>
<Position2>
<Filename Value="main.pas"/>
<Caret Line="611" Column="25" TopLine="581"/>
<Caret Line="974" Column="14" TopLine="943"/>
</Position2>
<Position3>
<Filename Value="main.pas"/>
<Caret Line="634" Column="28" TopLine="604"/>
<Caret Line="1068" Column="16" TopLine="1037"/>
</Position3>
<Position4>
<Filename Value="main.pas"/>
<Caret Line="643" Column="17" TopLine="612"/>
<Caret Line="1073" Column="15" TopLine="1042"/>
</Position4>
<Position5>
<Filename Value="main.pas"/>
<Caret Line="728" Column="18" TopLine="697"/>
<Caret Line="1078" Column="15" TopLine="1047"/>
</Position5>
<Position6>
<Filename Value="main.pas"/>
<Caret Line="744" Column="19" TopLine="713"/>
<Caret Line="1083" Column="14" TopLine="1052"/>
</Position6>
<Position7>
<Filename Value="main.pas"/>
<Caret Line="851" Column="15" TopLine="820"/>
<Caret Line="1100" Column="17" TopLine="1069"/>
</Position7>
<Position8>
<Filename Value="main.pas"/>
<Caret Line="856" Column="14" TopLine="825"/>
<Caret Line="1156" Column="12" TopLine="1125"/>
</Position8>
<Position9>
<Filename Value="main.pas"/>
<Caret Line="964" Column="14" TopLine="933"/>
<Caret Line="1161" Column="13" TopLine="1130"/>
</Position9>
<Position10>
<Filename Value="main.pas"/>
<Caret Line="969" Column="14" TopLine="938"/>
<Caret Line="1166" Column="14" TopLine="1135"/>
</Position10>
<Position11>
<Filename Value="main.pas"/>
<Caret Line="974" Column="14" TopLine="943"/>
<Caret Line="1171" Column="13" TopLine="1140"/>
</Position11>
<Position12>
<Filename Value="main.pas"/>
<Caret Line="1068" Column="16" TopLine="1037"/>
<Caret Line="1176" Column="12" TopLine="1145"/>
</Position12>
<Position13>
<Filename Value="main.pas"/>
<Caret Line="1073" Column="15" TopLine="1042"/>
<Caret Line="1181" Column="12" TopLine="1150"/>
</Position13>
<Position14>
<Filename Value="main.pas"/>
<Caret Line="1078" Column="15" TopLine="1047"/>
<Caret Line="1291" Column="18" TopLine="1260"/>
</Position14>
<Position15>
<Filename Value="main.pas"/>
<Caret Line="1083" Column="14" TopLine="1052"/>
<Caret Line="1371" Column="16" TopLine="1340"/>
</Position15>
<Position16>
<Filename Value="main.pas"/>
<Caret Line="1100" Column="17" TopLine="1069"/>
<Caret Line="1439" Column="12" TopLine="1408"/>
</Position16>
<Position17>
<Filename Value="main.pas"/>
<Caret Line="1156" Column="12" TopLine="1125"/>
<Caret Line="1717" Column="17" TopLine="1686"/>
</Position17>
<Position18>
<Filename Value="main.pas"/>
<Caret Line="1161" Column="13" TopLine="1130"/>
<Caret Line="1725" Column="17" TopLine="1694"/>
</Position18>
<Position19>
<Filename Value="main.pas"/>
<Caret Line="1166" Column="14" TopLine="1135"/>
<Caret Line="1740" Column="17" TopLine="1709"/>
</Position19>
<Position20>
<Filename Value="main.pas"/>
<Caret Line="1171" Column="13" TopLine="1140"/>
<Caret Line="1751" Column="17" TopLine="1720"/>
</Position20>
<Position21>
<Filename Value="main.pas"/>
<Caret Line="1176" Column="12" TopLine="1145"/>
<Caret Line="1859" Column="28" TopLine="1828"/>
</Position21>
<Position22>
<Filename Value="main.pas"/>
<Caret Line="1181" Column="12" TopLine="1150"/>
<Caret Line="1891" Column="6" TopLine="1865"/>
</Position22>
<Position23>
<Filename Value="main.pas"/>
<Caret Line="1291" Column="18" TopLine="1260"/>
<Caret Line="544" Column="10" TopLine="512"/>
</Position23>
<Position24>
<Filename Value="main.pas"/>
<Caret Line="1371" Column="16" TopLine="1340"/>
<Caret Line="523" Column="22" TopLine="502"/>
</Position24>
<Position25>
<Filename Value="main.pas"/>
<Caret Line="1439" Column="12" TopLine="1408"/>
<Caret Line="504" Column="9" TopLine="495"/>
</Position25>
<Position26>
<Filename Value="main.pas"/>
<Caret Line="1717" Column="17" TopLine="1686"/>
<Caret Line="502" Column="44" TopLine="485"/>
</Position26>
<Position27>
<Filename Value="main.pas"/>
<Caret Line="1725" Column="17" TopLine="1694"/>
<Caret Line="507" Column="29" TopLine="484"/>
</Position27>
<Position28>
<Filename Value="main.pas"/>
<Caret Line="1740" Column="17" TopLine="1709"/>
<Caret Line="519" Column="19" TopLine="497"/>
</Position28>
<Position29>
<Filename Value="main.pas"/>
<Caret Line="1751" Column="17" TopLine="1720"/>
<Caret Line="457" Column="29" TopLine="448"/>
</Position29>
<Position30>
<Filename Value="main.pas"/>
<Caret Line="1859" Column="28" TopLine="1828"/>
<Caret Line="17"/>
</Position30>
</JumpHistory>
<RunParams>