fix slider focus issue

This commit is contained in:
April Ayres-Griffiths 2019-04-15 20:00:35 +10:00
parent ad3cc31139
commit 6bbbe2aca6
6 changed files with 481 additions and 228 deletions

View File

@ -241,6 +241,9 @@ object GUIForm: TGUIForm
TabStop = False
TickMarks = tmBoth
TickStyle = tsManual
OnEnter = tbMasterVolumeEnter
OnMouseDown = tbMasterVolumeMouseDown
OnMouseUp = tbMasterVolumeMouseUp
OnKeyDown = FormKeyDown
OnKeyUp = FormKeyUp
TabOrder = 0
@ -283,6 +286,8 @@ object GUIForm: TGUIForm
TabStop = False
TickMarks = tmBoth
TickStyle = tsManual
OnMouseDown = TrackBar2MouseDown
OnMouseUp = TrackBar2MouseUp
OnKeyDown = FormKeyDown
OnKeyUp = FormKeyUp
TabOrder = 1

View File

@ -497,6 +497,13 @@ type
procedure tbCapsModeClick(Sender: TObject);
procedure tbFullscreenClick(Sender: TObject);
procedure tbJoystickAxisSwitchClick(Sender: TObject);
procedure tbMasterVolumeEnter(Sender: TObject);
procedure tbMasterVolumeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure tbMasterVolumeMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure tbMasterVolumeMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure tbRMClick(Sender: TObject);
procedure tbRMColorClick(Sender: TObject);
procedure tbScanlinesClick(Sender: TObject);
@ -509,6 +516,10 @@ type
procedure ToolTimerTimer(Sender: TObject);
procedure tbMasterVolumeChange(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
procedure TrackBar2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure TrackBar2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure txtAddressKeyPress(Sender: TObject; var Key: char);
procedure txtValueKeyPress(Sender: TObject; var Key: char);
procedure UpdateRenderMode;
@ -564,6 +575,8 @@ type
isFS: boolean;
disableFocusStealing: boolean;
guiActive: boolean;
VolPosition, WarpPosition: integer;
VolDrag, WarpDrag: boolean;
public
procedure AppActivate(Sender: TObject);
procedure AppDeactivate(Sender: TObject);
@ -1680,7 +1693,7 @@ end;
procedure TGUIForm.miSPEjectClick(Sender: TObject);
begin
SimpleGet(baseUrl + '/api/control/hardware/disk/eject/2');
StatusBar1.SimpleText := SimpleGet(baseUrl + '/api/control/hardware/disk/eject/2');
end;
procedure TGUIForm.miSPFileClick(Sender: TObject);
@ -1881,6 +1894,29 @@ begin
UpdateJoystickAxis;
end;
procedure TGUIForm.tbMasterVolumeEnter(Sender: TObject);
begin
//embedPanel.SetFocus;
end;
procedure TGUIForm.tbMasterVolumeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Key := VK_F1;
end;
procedure TGUIForm.tbMasterVolumeMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
VolDrag := true;
end;
procedure TGUIForm.tbMasterVolumeMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
VolDrag := false;
end;
procedure TGUIForm.UpdateJoystickAxis;
begin
case GetConfig( 'input/init.joystick.axis0' ) of
@ -2060,6 +2096,13 @@ end;
procedure TGUIForm.tbMasterVolumeChange(Sender: TObject);
begin
{$IFDEF LINUX}
if not VolDrag then
begin
tbMasterVolume.Position := VolPosition;
exit;
end;
{$ENDIF}
case TTrackBar(sender).Position of
0: UpdateConfig( 'audio/init.master.volume', '0.0', false );
1: UpdateConfig( 'audio/init.master.volume', '0.1', false );
@ -2105,6 +2148,14 @@ end;
procedure TGUIForm.TrackBar2Change(Sender: TObject);
begin
{$IFDEF LINUX}
if not WarpDrag then
begin
TrackBar2.Position := WarpPosition;
exit;
end;
{$ENDIF}
case TTrackBar(sender).Position of
0: UpdateConfig( 'hardware/current.cpu.warp', '0.25', false);
1: UpdateConfig( 'hardware/current.cpu.warp', '0.50', false);
@ -2114,6 +2165,18 @@ begin
end;
end;
procedure TGUIForm.TrackBar2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WarpDrag := true;
end;
procedure TGUIForm.TrackBar2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WarpDrag := false;
end;
procedure TGUIForm.txtAddressKeyPress(Sender: TObject; var Key: char);
begin
if Key = #13 then
@ -2375,6 +2438,7 @@ var
json, S, pval: string;
Respo: TStringStream;
f: TReplaceFlags;
d: double;
begin
pval := 'false';
if persist then
@ -2386,6 +2450,24 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/settings/update',json,Respo);
S := Respo.DataString;
if path = 'audio/init.master.volume' then
begin
d := StrToFloat( value );
VolPosition := Round(10 * d);
end;
if path = 'hardware/current.cpu.warp' then
begin
case value of
'0.25': TrackBar2.Position := 0;
'0.50': TrackBar2.Position := 1;
'1.00': TrackBar2.Position := 2;
'2.00': TrackBar2.Position := 3;
'4.00': TrackBar2.Position := 4;
end;
end;
//self.StatusBar1.SimpleText:=json;
Respo.Destroy;
end;
@ -2395,6 +2477,7 @@ var
json, S, pval: string;
Respo: TStringStream;
f: TReplaceFlags;
d: double;
begin
json := '{"path":"' + path +
'"}';
@ -2402,6 +2485,44 @@ begin
SimpleFormPost(baseUrl + '/api/control/settings/get',json,Respo);
Result := Respo.DataString;
//self.StatusBar1.SimpleText:=json;
if path = 'audio/init.master.volume' then
begin
try
begin
d := StrToFloat( Result );
VolPosition := Round(10 * d)
end;
except
on e: Exception do
begin
end;
end;
end;
if path = 'hardware/current.cpu.warp' then
begin
try
begin
d := StrToFloat(Result);
case Round(d * 100) of
25: WarpPosition := 0;
50: WarpPosition := 1;
100: WarpPosition := 2;
200: WarpPosition := 3;
400: WarpPosition := 4;
end;
end;
except
on e: Exception do
begin
end;
end;
end;
Respo.Destroy;
end;

View File

@ -21,8 +21,8 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<TopLine Value="2537"/>
<CursorPos X="3" Y="2539"/>
<TopLine Value="2147"/>
<CursorPos X="24" Y="2169"/>
<UsageCount Value="323"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@ -61,129 +61,129 @@
<EditorIndex Value="-1"/>
<TopLine Value="40"/>
<CursorPos X="17" Y="44"/>
<UsageCount Value="23"/>
<UsageCount Value="22"/>
</Unit5>
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="main.pas"/>
<Caret Line="1324" Column="31" TopLine="1307"/>
<Caret Line="714" Column="6" TopLine="777"/>
</Position1>
<Position2>
<Filename Value="main.pas"/>
<Caret Line="1685" Column="63" TopLine="1663"/>
<Caret Line="715" Column="6" TopLine="715"/>
</Position2>
<Position3>
<Filename Value="main.pas"/>
<Caret Line="2109" Column="33" TopLine="2099"/>
<Caret Line="717" Column="6" TopLine="717"/>
</Position3>
<Position4>
<Filename Value="main.pas"/>
<Caret Line="2116" Column="33" TopLine="2106"/>
<Caret Line="1353" Column="39" TopLine="1329"/>
</Position4>
<Position5>
<Filename Value="main.pas"/>
<Caret Line="638" Column="15" TopLine="634"/>
<Caret Line="1354" Column="39" TopLine="1330"/>
</Position5>
<Position6>
<Filename Value="main.pas"/>
<Caret Line="1206" TopLine="1203"/>
<Caret Line="1361" Column="39" TopLine="1337"/>
</Position6>
<Position7>
<Filename Value="main.pas"/>
<Caret Line="2427" Column="3" TopLine="2424"/>
<Caret Line="919" Column="39" TopLine="902"/>
</Position7>
<Position8>
<Filename Value="main.pas"/>
<Caret Line="2808" Column="26" TopLine="2798"/>
<Caret Line="906" Column="71" TopLine="887"/>
</Position8>
<Position9>
<Filename Value="main.pas"/>
<Caret Line="535" Column="15" TopLine="530"/>
<Caret Line="751" Column="53" TopLine="736"/>
</Position9>
<Position10>
<Filename Value="main.pas"/>
<Caret Line="2813" Column="13" TopLine="2805"/>
<Caret Line="980" Column="56" TopLine="963"/>
</Position10>
<Position11>
<Filename Value="main.pas"/>
<Caret Line="757" Column="53" TopLine="747"/>
<Caret Line="2553" Column="38" TopLine="2537"/>
</Position11>
<Position12>
<Filename Value="main.pas"/>
<Caret Line="758" Column="53" TopLine="748"/>
<Caret Line="2554" Column="38" TopLine="2538"/>
</Position12>
<Position13>
<Filename Value="main.pas"/>
<Caret Line="759" Column="53" TopLine="749"/>
<Caret Line="2561" Column="38" TopLine="2545"/>
</Position13>
<Position14>
<Filename Value="main.pas"/>
<Caret Line="760" Column="53" TopLine="750"/>
<Caret Line="1332" Column="3" TopLine="1348"/>
</Position14>
<Position15>
<Filename Value="main.pas"/>
<Caret Line="762" Column="53" TopLine="752"/>
<Caret Line="1316" TopLine="1310"/>
</Position15>
<Position16>
<Filename Value="main.pas"/>
<Caret Line="862" Column="52" TopLine="859"/>
<Caret Line="1325" Column="77" TopLine="1310"/>
</Position16>
<Position17>
<Filename Value="main.pas"/>
<Caret Line="864" Column="82" TopLine="860"/>
<Caret Line="552" Column="24" TopLine="543"/>
</Position17>
<Position18>
<Filename Value="main.pas"/>
<Caret Line="875" TopLine="861"/>
<Caret Line="1338" Column="29" TopLine="1317"/>
</Position18>
<Position19>
<Filename Value="main.pas"/>
<Caret Line="871" Column="60" TopLine="861"/>
<Caret Line="1335" Column="46" TopLine="1317"/>
</Position19>
<Position20>
<Filename Value="main.pas"/>
<Caret Line="883" Column="39" TopLine="859"/>
<Caret Line="2231" Column="25" TopLine="2215"/>
</Position20>
<Position21>
<Filename Value="main.pas"/>
<Caret Line="714" Column="6" TopLine="777"/>
<Caret Line="1338" Column="10" TopLine="1328"/>
</Position21>
<Position22>
<Filename Value="main.pas"/>
<Caret Line="715" Column="6" TopLine="715"/>
<Caret Line="552" Column="24" TopLine="534"/>
</Position22>
<Position23>
<Filename Value="main.pas"/>
<Caret Line="717" Column="6" TopLine="717"/>
<Caret Line="1338" Column="15" TopLine="1307"/>
</Position23>
<Position24>
<Filename Value="main.pas"/>
<Caret Line="1353" Column="39" TopLine="1329"/>
<Caret Line="2229" Column="29" TopLine="2216"/>
</Position24>
<Position25>
<Filename Value="main.pas"/>
<Caret Line="1354" Column="39" TopLine="1330"/>
<Caret Line="1690" Column="13" TopLine="1683"/>
</Position25>
<Position26>
<Filename Value="main.pas"/>
<Caret Line="1361" Column="39" TopLine="1337"/>
<Caret Line="781" Column="24" TopLine="764"/>
</Position26>
<Position27>
<Filename Value="main.pas"/>
<Caret Line="919" Column="39" TopLine="902"/>
<Caret Line="2229" Column="29" TopLine="2222"/>
</Position27>
<Position28>
<Filename Value="main.pas"/>
<Caret Line="906" Column="71" TopLine="887"/>
<Caret Line="552" Column="24" TopLine="534"/>
</Position28>
<Position29>
<Filename Value="main.pas"/>
<Caret Line="751" Column="53" TopLine="736"/>
<Caret Line="1334" Column="39" TopLine="1313"/>
</Position29>
<Position30>
<Filename Value="main.pas"/>
<Caret Line="980" Column="56" TopLine="963"/>
<Caret Line="2171" Column="26" TopLine="2153"/>
</Position30>
</JumpHistory>
<RunParams>

View File

@ -241,6 +241,9 @@ object GUIForm: TGUIForm
TabStop = False
TickMarks = tmBoth
TickStyle = tsManual
OnEnter = tbMasterVolumeEnter
OnMouseDown = tbMasterVolumeMouseDown
OnMouseUp = tbMasterVolumeMouseUp
OnKeyDown = FormKeyDown
OnKeyUp = FormKeyUp
TabOrder = 0
@ -283,6 +286,8 @@ object GUIForm: TGUIForm
TabStop = False
TickMarks = tmBoth
TickStyle = tsManual
OnMouseDown = TrackBar2MouseDown
OnMouseUp = TrackBar2MouseUp
OnKeyDown = FormKeyDown
OnKeyUp = FormKeyUp
TabOrder = 1

122
main.pas
View File

@ -497,6 +497,13 @@ type
procedure tbCapsModeClick(Sender: TObject);
procedure tbFullscreenClick(Sender: TObject);
procedure tbJoystickAxisSwitchClick(Sender: TObject);
procedure tbMasterVolumeEnter(Sender: TObject);
procedure tbMasterVolumeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure tbMasterVolumeMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure tbMasterVolumeMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure tbRMClick(Sender: TObject);
procedure tbRMColorClick(Sender: TObject);
procedure tbScanlinesClick(Sender: TObject);
@ -509,6 +516,10 @@ type
procedure ToolTimerTimer(Sender: TObject);
procedure tbMasterVolumeChange(Sender: TObject);
procedure TrackBar2Change(Sender: TObject);
procedure TrackBar2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure TrackBar2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure txtAddressKeyPress(Sender: TObject; var Key: char);
procedure txtValueKeyPress(Sender: TObject; var Key: char);
procedure UpdateRenderMode;
@ -564,6 +575,8 @@ type
isFS: boolean;
disableFocusStealing: boolean;
guiActive: boolean;
VolPosition, WarpPosition: integer;
VolDrag, WarpDrag: boolean;
public
procedure AppActivate(Sender: TObject);
procedure AppDeactivate(Sender: TObject);
@ -1881,6 +1894,29 @@ begin
UpdateJoystickAxis;
end;
procedure TGUIForm.tbMasterVolumeEnter(Sender: TObject);
begin
//embedPanel.SetFocus;
end;
procedure TGUIForm.tbMasterVolumeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Key := VK_F1;
end;
procedure TGUIForm.tbMasterVolumeMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
VolDrag := true;
end;
procedure TGUIForm.tbMasterVolumeMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
VolDrag := false;
end;
procedure TGUIForm.UpdateJoystickAxis;
begin
case GetConfig( 'input/init.joystick.axis0' ) of
@ -2060,6 +2096,13 @@ end;
procedure TGUIForm.tbMasterVolumeChange(Sender: TObject);
begin
{$IFDEF LINUX}
if not VolDrag then
begin
tbMasterVolume.Position := VolPosition;
exit;
end;
{$ENDIF}
case TTrackBar(sender).Position of
0: UpdateConfig( 'audio/init.master.volume', '0.0', false );
1: UpdateConfig( 'audio/init.master.volume', '0.1', false );
@ -2105,6 +2148,14 @@ end;
procedure TGUIForm.TrackBar2Change(Sender: TObject);
begin
{$IFDEF LINUX}
if not WarpDrag then
begin
TrackBar2.Position := WarpPosition;
exit;
end;
{$ENDIF}
case TTrackBar(sender).Position of
0: UpdateConfig( 'hardware/current.cpu.warp', '0.25', false);
1: UpdateConfig( 'hardware/current.cpu.warp', '0.50', false);
@ -2114,6 +2165,18 @@ begin
end;
end;
procedure TGUIForm.TrackBar2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WarpDrag := true;
end;
procedure TGUIForm.TrackBar2MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
WarpDrag := false;
end;
procedure TGUIForm.txtAddressKeyPress(Sender: TObject; var Key: char);
begin
if Key = #13 then
@ -2375,6 +2438,7 @@ var
json, S, pval: string;
Respo: TStringStream;
f: TReplaceFlags;
d: double;
begin
pval := 'false';
if persist then
@ -2386,6 +2450,25 @@ begin
Respo := TStringStream.Create('');
SimpleFormPost(baseUrl + '/api/control/settings/update',json,Respo);
S := Respo.DataString;
if path = 'audio/init.master.volume' then
begin
d := StrToFloat( value );
VolPosition := Round(10 * d);
end;
if path = 'hardware/current.cpu.warp' then
begin
d := StrToFloat(value);
case Round(d * 100) of
25: WarpPosition := 0;
50: WarpPosition := 1;
100: WarpPosition := 2;
200: WarpPosition := 3;
400: WarpPosition := 4;
end;
end;
//self.StatusBar1.SimpleText:=json;
Respo.Destroy;
end;
@ -2395,6 +2478,7 @@ var
json, S, pval: string;
Respo: TStringStream;
f: TReplaceFlags;
d: double;
begin
json := '{"path":"' + path +
'"}';
@ -2402,6 +2486,44 @@ begin
SimpleFormPost(baseUrl + '/api/control/settings/get',json,Respo);
Result := Respo.DataString;
//self.StatusBar1.SimpleText:=json;
if path = 'audio/init.master.volume' then
begin
try
begin
d := StrToFloat( Result );
VolPosition := Round(10 * d)
end;
except
on e: Exception do
begin
end;
end;
end;
if path = 'hardware/current.cpu.warp' then
begin
try
begin
d := StrToFloat(Result);
case Round(d * 100) of
25: WarpPosition := 0;
50: WarpPosition := 1;
100: WarpPosition := 2;
200: WarpPosition := 3;
400: WarpPosition := 4;
end;
end;
except
on e: Exception do
begin
end;
end;
end;
Respo.Destroy;
end;

388
poc.lps
View File

@ -1,194 +1,194 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="11"/>
<BuildModes Active="Default"/>
<Units Count="6">
<Unit0>
<Filename Value="poc.lpr"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="323"/>
</Unit0>
<Unit1>
<Filename Value="main.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="GUIForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<TopLine Value="2147"/>
<CursorPos X="24" Y="2169"/>
<UsageCount Value="323"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit1>
<Unit2>
<Filename Value="mixer.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="frmMixer"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<EditorIndex Value="-1"/>
<TopLine Value="3"/>
<CursorPos X="26" Y="25"/>
<UsageCount Value="206"/>
</Unit2>
<Unit3>
<Filename Value="C:\lazarus\lcl\include\picture.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="576"/>
<CursorPos X="49" Y="591"/>
<UsageCount Value="108"/>
</Unit3>
<Unit4>
<Filename Value="C:\lazarus\components\lazutils\utf8process.pp"/>
<UnitName Value="UTF8Process"/>
<EditorIndex Value="-1"/>
<TopLine Value="636"/>
<CursorPos Y="654"/>
<UsageCount Value="3"/>
</Unit4>
<Unit5>
<Filename Value="images\memory.pas"/>
<ComponentName Value="memform"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<EditorIndex Value="-1"/>
<TopLine Value="40"/>
<CursorPos X="17" Y="44"/>
<UsageCount Value="22"/>
</Unit5>
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="main.pas"/>
<Caret Line="714" Column="6" TopLine="777"/>
</Position1>
<Position2>
<Filename Value="main.pas"/>
<Caret Line="715" Column="6" TopLine="715"/>
</Position2>
<Position3>
<Filename Value="main.pas"/>
<Caret Line="717" Column="6" TopLine="717"/>
</Position3>
<Position4>
<Filename Value="main.pas"/>
<Caret Line="1353" Column="39" TopLine="1329"/>
</Position4>
<Position5>
<Filename Value="main.pas"/>
<Caret Line="1354" Column="39" TopLine="1330"/>
</Position5>
<Position6>
<Filename Value="main.pas"/>
<Caret Line="1361" Column="39" TopLine="1337"/>
</Position6>
<Position7>
<Filename Value="main.pas"/>
<Caret Line="919" Column="39" TopLine="902"/>
</Position7>
<Position8>
<Filename Value="main.pas"/>
<Caret Line="906" Column="71" TopLine="887"/>
</Position8>
<Position9>
<Filename Value="main.pas"/>
<Caret Line="751" Column="53" TopLine="736"/>
</Position9>
<Position10>
<Filename Value="main.pas"/>
<Caret Line="980" Column="56" TopLine="963"/>
</Position10>
<Position11>
<Filename Value="main.pas"/>
<Caret Line="2553" Column="38" TopLine="2537"/>
</Position11>
<Position12>
<Filename Value="main.pas"/>
<Caret Line="2554" Column="38" TopLine="2538"/>
</Position12>
<Position13>
<Filename Value="main.pas"/>
<Caret Line="2561" Column="38" TopLine="2545"/>
</Position13>
<Position14>
<Filename Value="main.pas"/>
<Caret Line="1332" Column="3" TopLine="1348"/>
</Position14>
<Position15>
<Filename Value="main.pas"/>
<Caret Line="1316" TopLine="1310"/>
</Position15>
<Position16>
<Filename Value="main.pas"/>
<Caret Line="1325" Column="77" TopLine="1310"/>
</Position16>
<Position17>
<Filename Value="main.pas"/>
<Caret Line="552" Column="24" TopLine="543"/>
</Position17>
<Position18>
<Filename Value="main.pas"/>
<Caret Line="1338" Column="29" TopLine="1317"/>
</Position18>
<Position19>
<Filename Value="main.pas"/>
<Caret Line="1335" Column="46" TopLine="1317"/>
</Position19>
<Position20>
<Filename Value="main.pas"/>
<Caret Line="2231" Column="25" TopLine="2215"/>
</Position20>
<Position21>
<Filename Value="main.pas"/>
<Caret Line="1338" Column="10" TopLine="1328"/>
</Position21>
<Position22>
<Filename Value="main.pas"/>
<Caret Line="552" Column="24" TopLine="534"/>
</Position22>
<Position23>
<Filename Value="main.pas"/>
<Caret Line="1338" Column="15" TopLine="1307"/>
</Position23>
<Position24>
<Filename Value="main.pas"/>
<Caret Line="2229" Column="29" TopLine="2216"/>
</Position24>
<Position25>
<Filename Value="main.pas"/>
<Caret Line="1690" Column="13" TopLine="1683"/>
</Position25>
<Position26>
<Filename Value="main.pas"/>
<Caret Line="781" Column="24" TopLine="764"/>
</Position26>
<Position27>
<Filename Value="main.pas"/>
<Caret Line="2229" Column="29" TopLine="2222"/>
</Position27>
<Position28>
<Filename Value="main.pas"/>
<Caret Line="552" Column="24" TopLine="534"/>
</Position28>
<Position29>
<Filename Value="main.pas"/>
<Caret Line="1334" Column="39" TopLine="1313"/>
</Position29>
<Position30>
<Filename Value="main.pas"/>
<Caret Line="2171" Column="26" TopLine="2153"/>
</Position30>
</JumpHistory>
<RunParams>
<FormatVersion Value="2"/>
<Modes Count="0" ActiveMode=""/>
</RunParams>
</ProjectSession>
</CONFIG>
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="11"/>
<BuildModes Active="Default"/>
<Units Count="6">
<Unit0>
<Filename Value="poc.lpr"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<WindowIndex Value="-1"/>
<TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/>
<UsageCount Value="323"/>
</Unit0>
<Unit1>
<Filename Value="main.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="GUIForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<TopLine Value="2393"/>
<CursorPos X="37" Y="2409"/>
<UsageCount Value="323"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit1>
<Unit2>
<Filename Value="mixer.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="frmMixer"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<EditorIndex Value="-1"/>
<TopLine Value="3"/>
<CursorPos X="26" Y="25"/>
<UsageCount Value="206"/>
</Unit2>
<Unit3>
<Filename Value="C:\lazarus\lcl\include\picture.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="576"/>
<CursorPos X="49" Y="591"/>
<UsageCount Value="107"/>
</Unit3>
<Unit4>
<Filename Value="C:\lazarus\components\lazutils\utf8process.pp"/>
<UnitName Value="UTF8Process"/>
<EditorIndex Value="-1"/>
<TopLine Value="636"/>
<CursorPos Y="654"/>
<UsageCount Value="2"/>
</Unit4>
<Unit5>
<Filename Value="images\memory.pas"/>
<ComponentName Value="memform"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<EditorIndex Value="-1"/>
<TopLine Value="40"/>
<CursorPos X="17" Y="44"/>
<UsageCount Value="21"/>
</Unit5>
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="main.pas"/>
<Caret Line="2078" Column="14" TopLine="2075"/>
</Position1>
<Position2>
<Filename Value="main.pas"/>
<Caret Line="576" Column="29" TopLine="555"/>
</Position2>
<Position3>
<Filename Value="main.pas"/>
<Caret Line="2412" Column="30" TopLine="2398"/>
</Position3>
<Position4>
<Filename Value="main.pas"/>
<Caret Line="2421" Column="38" TopLine="2398"/>
</Position4>
<Position5>
<Filename Value="main.pas"/>
<Caret Line="1304" Column="44" TopLine="1287"/>
</Position5>
<Position6>
<Filename Value="main.pas"/>
<Caret Line="1305" Column="44" TopLine="1287"/>
</Position6>
<Position7>
<Filename Value="main.pas"/>
<Caret Line="1306" Column="44" TopLine="1287"/>
</Position7>
<Position8>
<Filename Value="main.pas"/>
<Caret Line="1307" Column="44" TopLine="1287"/>
</Position8>
<Position9>
<Filename Value="main.pas"/>
<Caret Line="1308" Column="44" TopLine="1287"/>
</Position9>
<Position10>
<Filename Value="main.pas"/>
<Caret Line="1309" Column="44" TopLine="1287"/>
</Position10>
<Position11>
<Filename Value="main.pas"/>
<Caret Line="1310" Column="44" TopLine="1287"/>
</Position11>
<Position12>
<Filename Value="main.pas"/>
<Caret Line="1311" Column="44" TopLine="1287"/>
</Position12>
<Position13>
<Filename Value="main.pas"/>
<Caret Line="1312" Column="44" TopLine="1287"/>
</Position13>
<Position14>
<Filename Value="main.pas"/>
<Caret Line="1313" Column="44" TopLine="1287"/>
</Position14>
<Position15>
<Filename Value="main.pas"/>
<Caret Line="1314" Column="45" TopLine="1287"/>
</Position15>
<Position16>
<Filename Value="main.pas"/>
<Caret Line="1613" Column="41" TopLine="1585"/>
</Position16>
<Position17>
<Filename Value="main.pas"/>
<Caret Line="2079" Column="42" TopLine="2051"/>
</Position17>
<Position18>
<Filename Value="main.pas"/>
<Caret Line="2080" Column="42" TopLine="2052"/>
</Position18>
<Position19>
<Filename Value="main.pas"/>
<Caret Line="2081" Column="42" TopLine="2053"/>
</Position19>
<Position20>
<Filename Value="main.pas"/>
<Caret Line="2082" Column="42" TopLine="2054"/>
</Position20>
<Position21>
<Filename Value="main.pas"/>
<Caret Line="2083" Column="42" TopLine="2055"/>
</Position21>
<Position22>
<Filename Value="main.pas"/>
<Caret Line="2084" Column="42" TopLine="2056"/>
</Position22>
<Position23>
<Filename Value="main.pas"/>
<Caret Line="2085" Column="42" TopLine="2057"/>
</Position23>
<Position24>
<Filename Value="main.pas"/>
<Caret Line="2086" Column="42" TopLine="2058"/>
</Position24>
<Position25>
<Filename Value="main.pas"/>
<Caret Line="2087" Column="42" TopLine="2059"/>
</Position25>
<Position26>
<Filename Value="main.pas"/>
<Caret Line="2088" Column="42" TopLine="2060"/>
</Position26>
<Position27>
<Filename Value="main.pas"/>
<Caret Line="2089" Column="43" TopLine="2061"/>
</Position27>
<Position28>
<Filename Value="main.pas"/>
<Caret Line="2106" Column="41" TopLine="2078"/>
</Position28>
<Position29>
<Filename Value="main.pas"/>
<Caret Line="2407" Column="33" TopLine="2378"/>
</Position29>
<Position30>
<Filename Value="main.pas"/>
<Caret Line="2393" Column="13" TopLine="2391"/>
</Position30>
</JumpHistory>
<RunParams>
<FormatVersion Value="2"/>
<Modes Count="0" ActiveMode=""/>
</RunParams>
</ProjectSession>
</CONFIG>