- Added error handling when loading Locations and Profiles (fixes #2)
This commit is contained in:
parent
4280db3f7e
commit
6eaf10e73e
|
@ -5,7 +5,7 @@ object frmMain: TfrmMain
|
||||||
Width = 766
|
Width = 766
|
||||||
ActiveControl = oglGameWindow
|
ActiveControl = oglGameWindow
|
||||||
Caption = 'UO CentrED'
|
Caption = 'UO CentrED'
|
||||||
ClientHeight = 583
|
ClientHeight = 580
|
||||||
ClientWidth = 766
|
ClientWidth = 766
|
||||||
Constraints.MinHeight = 603
|
Constraints.MinHeight = 603
|
||||||
Constraints.MinWidth = 766
|
Constraints.MinWidth = 766
|
||||||
|
@ -22,7 +22,7 @@ object frmMain: TfrmMain
|
||||||
object pnlBottom: TPanel
|
object pnlBottom: TPanel
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 31
|
Height = 31
|
||||||
Top = 552
|
Top = 549
|
||||||
Width = 766
|
Width = 766
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
|
@ -33,7 +33,7 @@ object frmMain: TfrmMain
|
||||||
Left = 11
|
Left = 11
|
||||||
Height = 14
|
Height = 14
|
||||||
Top = 7
|
Top = 7
|
||||||
Width = 10
|
Width = 11
|
||||||
Caption = 'X:'
|
Caption = 'X:'
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
end
|
end
|
||||||
|
@ -41,7 +41,7 @@ object frmMain: TfrmMain
|
||||||
Left = 88
|
Left = 88
|
||||||
Height = 14
|
Height = 14
|
||||||
Top = 7
|
Top = 7
|
||||||
Width = 9
|
Width = 10
|
||||||
Caption = 'Y:'
|
Caption = 'Y:'
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
end
|
end
|
||||||
|
@ -54,10 +54,10 @@ object frmMain: TfrmMain
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
end
|
end
|
||||||
object lblTip: TLabel
|
object lblTip: TLabel
|
||||||
Left = 534
|
Left = 528
|
||||||
Height = 31
|
Height = 31
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 224
|
Width = 230
|
||||||
Align = alRight
|
Align = alRight
|
||||||
Alignment = taRightJustify
|
Alignment = taRightJustify
|
||||||
BorderSpacing.Right = 8
|
BorderSpacing.Right = 8
|
||||||
|
@ -66,10 +66,10 @@ object frmMain: TfrmMain
|
||||||
ParentColor = False
|
ParentColor = False
|
||||||
end
|
end
|
||||||
object lblTipC: TLabel
|
object lblTipC: TLabel
|
||||||
Left = 511
|
Left = 498
|
||||||
Height = 31
|
Height = 31
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 23
|
Width = 30
|
||||||
Align = alRight
|
Align = alRight
|
||||||
Caption = 'Tip: '
|
Caption = 'Tip: '
|
||||||
Font.Height = -11
|
Font.Height = -11
|
||||||
|
@ -80,7 +80,7 @@ object frmMain: TfrmMain
|
||||||
end
|
end
|
||||||
object edX: TSpinEdit
|
object edX: TSpinEdit
|
||||||
Left = 24
|
Left = 24
|
||||||
Height = 21
|
Height = 19
|
||||||
Top = 3
|
Top = 3
|
||||||
Width = 55
|
Width = 55
|
||||||
MaxValue = 100000
|
MaxValue = 100000
|
||||||
|
@ -88,7 +88,7 @@ object frmMain: TfrmMain
|
||||||
end
|
end
|
||||||
object edY: TSpinEdit
|
object edY: TSpinEdit
|
||||||
Left = 104
|
Left = 104
|
||||||
Height = 21
|
Height = 19
|
||||||
Top = 3
|
Top = 3
|
||||||
Width = 52
|
Width = 52
|
||||||
MaxValue = 100000
|
MaxValue = 100000
|
||||||
|
@ -107,7 +107,7 @@ object frmMain: TfrmMain
|
||||||
end
|
end
|
||||||
object pcLeft: TPageControl
|
object pcLeft: TPageControl
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 528
|
Height = 525
|
||||||
Top = 24
|
Top = 24
|
||||||
Width = 224
|
Width = 224
|
||||||
ActivePage = tsTiles
|
ActivePage = tsTiles
|
||||||
|
@ -116,13 +116,13 @@ object frmMain: TfrmMain
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
object tsTiles: TTabSheet
|
object tsTiles: TTabSheet
|
||||||
Caption = 'Tiles'
|
Caption = 'Tiles'
|
||||||
ClientHeight = 502
|
ClientHeight = 492
|
||||||
ClientWidth = 216
|
ClientWidth = 218
|
||||||
object lblFilter: TLabel
|
object lblFilter: TLabel
|
||||||
AnchorSideLeft.Control = cbTerrain
|
AnchorSideLeft.Control = cbTerrain
|
||||||
AnchorSideLeft.Side = asrBottom
|
AnchorSideLeft.Side = asrBottom
|
||||||
AnchorSideTop.Control = cbTerrain
|
AnchorSideTop.Control = cbTerrain
|
||||||
Left = 75
|
Left = 81
|
||||||
Height = 14
|
Height = 14
|
||||||
Top = 8
|
Top = 8
|
||||||
Width = 30
|
Width = 30
|
||||||
|
@ -139,9 +139,9 @@ object frmMain: TfrmMain
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
AnchorSideBottom.Control = spTileList
|
AnchorSideBottom.Control = spTileList
|
||||||
Left = 4
|
Left = 4
|
||||||
Height = 266
|
Height = 250
|
||||||
Top = 50
|
Top = 56
|
||||||
Width = 208
|
Width = 210
|
||||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||||
BorderSpacing.Left = 4
|
BorderSpacing.Left = 4
|
||||||
BorderSpacing.Top = 4
|
BorderSpacing.Top = 4
|
||||||
|
@ -193,13 +193,13 @@ object frmMain: TfrmMain
|
||||||
AnchorSideBottom.Side = asrBottom
|
AnchorSideBottom.Side = asrBottom
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 181
|
Height = 181
|
||||||
Top = 321
|
Top = 311
|
||||||
Width = 216
|
Width = 218
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||||
Caption = 'Random pool'
|
Caption = 'Random pool'
|
||||||
ClientHeight = 163
|
ClientHeight = 167
|
||||||
ClientWidth = 212
|
ClientWidth = 216
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
object btnAddRandom: TSpeedButton
|
object btnAddRandom: TSpeedButton
|
||||||
AnchorSideLeft.Control = gbRandom
|
AnchorSideLeft.Control = gbRandom
|
||||||
|
@ -359,10 +359,10 @@ object frmMain: TfrmMain
|
||||||
object btnRandomPresetSave: TSpeedButton
|
object btnRandomPresetSave: TSpeedButton
|
||||||
AnchorSideTop.Control = cbRandomPreset
|
AnchorSideTop.Control = cbRandomPreset
|
||||||
AnchorSideRight.Control = btnRandomPresetDelete
|
AnchorSideRight.Control = btnRandomPresetDelete
|
||||||
Left = 160
|
Left = 164
|
||||||
Height = 22
|
Height = 22
|
||||||
Hint = 'Save Preset'
|
Hint = 'Save Preset'
|
||||||
Top = 138
|
Top = 134
|
||||||
Width = 22
|
Width = 22
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
BorderSpacing.Right = 4
|
BorderSpacing.Right = 4
|
||||||
|
@ -413,10 +413,10 @@ object frmMain: TfrmMain
|
||||||
AnchorSideTop.Control = btnRandomPresetSave
|
AnchorSideTop.Control = btnRandomPresetSave
|
||||||
AnchorSideRight.Control = gbRandom
|
AnchorSideRight.Control = gbRandom
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
Left = 186
|
Left = 190
|
||||||
Height = 22
|
Height = 22
|
||||||
Hint = 'Delete Preset'
|
Hint = 'Delete Preset'
|
||||||
Top = 138
|
Top = 134
|
||||||
Width = 22
|
Width = 22
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
BorderSpacing.Right = 4
|
BorderSpacing.Right = 4
|
||||||
|
@ -473,9 +473,9 @@ object frmMain: TfrmMain
|
||||||
AnchorSideBottom.Control = cbRandomPreset
|
AnchorSideBottom.Control = cbRandomPreset
|
||||||
Cursor = 63
|
Cursor = 63
|
||||||
Left = 4
|
Left = 4
|
||||||
Height = 110
|
Height = 106
|
||||||
Top = 24
|
Top = 24
|
||||||
Width = 204
|
Width = 208
|
||||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||||
BorderSpacing.Left = 4
|
BorderSpacing.Left = 4
|
||||||
BorderSpacing.Top = 2
|
BorderSpacing.Top = 2
|
||||||
|
@ -519,14 +519,14 @@ object frmMain: TfrmMain
|
||||||
AnchorSideBottom.Control = gbRandom
|
AnchorSideBottom.Control = gbRandom
|
||||||
AnchorSideBottom.Side = asrBottom
|
AnchorSideBottom.Side = asrBottom
|
||||||
Left = 4
|
Left = 4
|
||||||
Height = 21
|
Height = 29
|
||||||
Top = 138
|
Top = 134
|
||||||
Width = 152
|
Width = 156
|
||||||
Anchors = [akLeft, akRight, akBottom]
|
Anchors = [akLeft, akRight, akBottom]
|
||||||
BorderSpacing.Left = 4
|
BorderSpacing.Left = 4
|
||||||
BorderSpacing.Right = 4
|
BorderSpacing.Right = 4
|
||||||
BorderSpacing.Bottom = 4
|
BorderSpacing.Bottom = 4
|
||||||
ItemHeight = 13
|
ItemHeight = 0
|
||||||
OnChange = cbRandomPresetChange
|
OnChange = cbRandomPresetChange
|
||||||
Style = csDropDownList
|
Style = csDropDownList
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
|
@ -539,8 +539,8 @@ object frmMain: TfrmMain
|
||||||
Cursor = crVSplit
|
Cursor = crVSplit
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 5
|
Height = 5
|
||||||
Top = 316
|
Top = 306
|
||||||
Width = 216
|
Width = 218
|
||||||
Align = alNone
|
Align = alNone
|
||||||
Anchors = [akLeft, akRight, akBottom]
|
Anchors = [akLeft, akRight, akBottom]
|
||||||
ResizeAnchor = akBottom
|
ResizeAnchor = akBottom
|
||||||
|
@ -550,10 +550,10 @@ object frmMain: TfrmMain
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
AnchorSideBottom.Control = vdtTiles
|
AnchorSideBottom.Control = vdtTiles
|
||||||
AnchorSideBottom.Side = asrBottom
|
AnchorSideBottom.Side = asrBottom
|
||||||
Left = 108
|
Left = 110
|
||||||
Height = 21
|
Height = 19
|
||||||
Hint = 'Append S or T to restrict the search to Statics or Terrain.'
|
Hint = 'Append S or T to restrict the search to Statics or Terrain.'
|
||||||
Top = 287
|
Top = 279
|
||||||
Width = 96
|
Width = 96
|
||||||
Anchors = [akRight, akBottom]
|
Anchors = [akRight, akBottom]
|
||||||
BorderSpacing.Right = 8
|
BorderSpacing.Right = 8
|
||||||
|
@ -572,10 +572,10 @@ object frmMain: TfrmMain
|
||||||
AnchorSideTop.Side = asrBottom
|
AnchorSideTop.Side = asrBottom
|
||||||
AnchorSideRight.Control = tsTiles
|
AnchorSideRight.Control = tsTiles
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
Left = 75
|
Left = 81
|
||||||
Height = 21
|
Height = 19
|
||||||
Top = 22
|
Top = 22
|
||||||
Width = 125
|
Width = 121
|
||||||
Anchors = [akTop, akLeft, akRight]
|
Anchors = [akTop, akLeft, akRight]
|
||||||
BorderSpacing.Right = 16
|
BorderSpacing.Right = 16
|
||||||
OnEditingDone = edFilterEditingDone
|
OnEditingDone = edFilterEditingDone
|
||||||
|
@ -586,10 +586,10 @@ object frmMain: TfrmMain
|
||||||
AnchorSideLeft.Side = asrCenter
|
AnchorSideLeft.Side = asrCenter
|
||||||
AnchorSideTop.Control = cbTerrain
|
AnchorSideTop.Control = cbTerrain
|
||||||
AnchorSideTop.Side = asrBottom
|
AnchorSideTop.Side = asrBottom
|
||||||
Left = 5
|
Left = 4
|
||||||
Height = 19
|
Height = 22
|
||||||
Top = 27
|
Top = 30
|
||||||
Width = 53
|
Width = 60
|
||||||
Caption = 'Statics'
|
Caption = 'Statics'
|
||||||
Checked = True
|
Checked = True
|
||||||
OnChange = cbStaticsChange
|
OnChange = cbStaticsChange
|
||||||
|
@ -600,9 +600,9 @@ object frmMain: TfrmMain
|
||||||
AnchorSideLeft.Control = tsTiles
|
AnchorSideLeft.Control = tsTiles
|
||||||
AnchorSideTop.Control = tsTiles
|
AnchorSideTop.Control = tsTiles
|
||||||
Left = 4
|
Left = 4
|
||||||
Height = 19
|
Height = 22
|
||||||
Top = 8
|
Top = 8
|
||||||
Width = 55
|
Width = 61
|
||||||
BorderSpacing.Left = 4
|
BorderSpacing.Left = 4
|
||||||
BorderSpacing.Top = 8
|
BorderSpacing.Top = 8
|
||||||
Caption = 'Terrain'
|
Caption = 'Terrain'
|
||||||
|
@ -614,25 +614,26 @@ object frmMain: TfrmMain
|
||||||
end
|
end
|
||||||
object tsClients: TTabSheet
|
object tsClients: TTabSheet
|
||||||
Caption = 'Clients'
|
Caption = 'Clients'
|
||||||
ClientHeight = 502
|
ClientHeight = 495
|
||||||
ClientWidth = 216
|
ClientWidth = 218
|
||||||
object lbClients: TListBox
|
object lbClients: TListBox
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 502
|
Height = 495
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 216
|
Width = 218
|
||||||
Align = alClient
|
Align = alClient
|
||||||
ItemHeight = 0
|
ItemHeight = 0
|
||||||
OnDblClick = mnuGoToClientClick
|
OnDblClick = mnuGoToClientClick
|
||||||
PopupMenu = pmClients
|
PopupMenu = pmClients
|
||||||
Sorted = True
|
Sorted = True
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
|
TopIndex = -1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object tsLocations: TTabSheet
|
object tsLocations: TTabSheet
|
||||||
Caption = 'Locations'
|
Caption = 'Locations'
|
||||||
ClientHeight = 502
|
ClientHeight = 495
|
||||||
ClientWidth = 216
|
ClientWidth = 218
|
||||||
object btnClearLocations: TSpeedButton
|
object btnClearLocations: TSpeedButton
|
||||||
AnchorSideLeft.Control = btnDeleteLocation
|
AnchorSideLeft.Control = btnDeleteLocation
|
||||||
AnchorSideLeft.Side = asrBottom
|
AnchorSideLeft.Side = asrBottom
|
||||||
|
@ -640,7 +641,7 @@ object frmMain: TfrmMain
|
||||||
Left = 128
|
Left = 128
|
||||||
Height = 22
|
Height = 22
|
||||||
Hint = 'Clear'
|
Hint = 'Clear'
|
||||||
Top = 460
|
Top = 453
|
||||||
Width = 23
|
Width = 23
|
||||||
BorderSpacing.Left = 4
|
BorderSpacing.Left = 4
|
||||||
Color = clBtnFace
|
Color = clBtnFace
|
||||||
|
@ -693,7 +694,7 @@ object frmMain: TfrmMain
|
||||||
Left = 101
|
Left = 101
|
||||||
Height = 22
|
Height = 22
|
||||||
Hint = 'Delete'
|
Hint = 'Delete'
|
||||||
Top = 460
|
Top = 453
|
||||||
Width = 23
|
Width = 23
|
||||||
Anchors = [akLeft, akBottom]
|
Anchors = [akLeft, akBottom]
|
||||||
BorderSpacing.Bottom = 4
|
BorderSpacing.Bottom = 4
|
||||||
|
@ -745,7 +746,7 @@ object frmMain: TfrmMain
|
||||||
Left = 74
|
Left = 74
|
||||||
Height = 22
|
Height = 22
|
||||||
Hint = 'Add'
|
Hint = 'Add'
|
||||||
Top = 460
|
Top = 453
|
||||||
Width = 23
|
Width = 23
|
||||||
Anchors = [akTop, akRight]
|
Anchors = [akTop, akRight]
|
||||||
BorderSpacing.Right = 4
|
BorderSpacing.Right = 4
|
||||||
|
@ -799,9 +800,9 @@ object frmMain: TfrmMain
|
||||||
AnchorSideBottom.Control = btnDeleteLocation
|
AnchorSideBottom.Control = btnDeleteLocation
|
||||||
Cursor = 63
|
Cursor = 63
|
||||||
Left = 4
|
Left = 4
|
||||||
Height = 438
|
Height = 431
|
||||||
Top = 18
|
Top = 18
|
||||||
Width = 208
|
Width = 210
|
||||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||||
BorderSpacing.Around = 4
|
BorderSpacing.Around = 4
|
||||||
BorderStyle = bsSingle
|
BorderStyle = bsSingle
|
||||||
|
@ -816,7 +817,7 @@ object frmMain: TfrmMain
|
||||||
item
|
item
|
||||||
Position = 1
|
Position = 1
|
||||||
Text = 'Name'
|
Text = 'Name'
|
||||||
Width = 129
|
Width = 131
|
||||||
end>
|
end>
|
||||||
Header.DefaultHeight = 17
|
Header.DefaultHeight = 17
|
||||||
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible]
|
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible]
|
||||||
|
@ -1024,7 +1025,7 @@ object frmMain: TfrmMain
|
||||||
AnchorSideBottom.Control = spChat
|
AnchorSideBottom.Control = spChat
|
||||||
Left = 224
|
Left = 224
|
||||||
Height = 22
|
Height = 22
|
||||||
Top = 416
|
Top = 413
|
||||||
Width = 542
|
Width = 542
|
||||||
Anchors = [akLeft, akRight, akBottom]
|
Anchors = [akLeft, akRight, akBottom]
|
||||||
BevelInner = bvRaised
|
BevelInner = bvRaised
|
||||||
|
@ -1037,7 +1038,7 @@ object frmMain: TfrmMain
|
||||||
Left = 10
|
Left = 10
|
||||||
Height = 18
|
Height = 18
|
||||||
Top = 2
|
Top = 2
|
||||||
Width = 101
|
Width = 104
|
||||||
Align = alLeft
|
Align = alLeft
|
||||||
BorderSpacing.Left = 8
|
BorderSpacing.Left = 8
|
||||||
Caption = 'Chat and Messages'
|
Caption = 'Chat and Messages'
|
||||||
|
@ -1058,7 +1059,7 @@ object frmMain: TfrmMain
|
||||||
AnchorSideBottom.Control = pnlBottom
|
AnchorSideBottom.Control = pnlBottom
|
||||||
Left = 224
|
Left = 224
|
||||||
Height = 109
|
Height = 109
|
||||||
Top = 443
|
Top = 440
|
||||||
Width = 542
|
Width = 542
|
||||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||||
BevelOuter = bvNone
|
BevelOuter = bvNone
|
||||||
|
@ -1069,7 +1070,7 @@ object frmMain: TfrmMain
|
||||||
object vstChat: TVirtualStringTree
|
object vstChat: TVirtualStringTree
|
||||||
Cursor = 63
|
Cursor = 63
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 88
|
Height = 90
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 542
|
Width = 542
|
||||||
Align = alClient
|
Align = alClient
|
||||||
|
@ -1107,8 +1108,8 @@ object frmMain: TfrmMain
|
||||||
end
|
end
|
||||||
object edChat: TEdit
|
object edChat: TEdit
|
||||||
Left = 0
|
Left = 0
|
||||||
Height = 21
|
Height = 19
|
||||||
Top = 88
|
Top = 90
|
||||||
Width = 542
|
Width = 542
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
OnKeyPress = edChatKeyPress
|
OnKeyPress = edChatKeyPress
|
||||||
|
@ -1123,7 +1124,7 @@ object frmMain: TfrmMain
|
||||||
Cursor = crVSplit
|
Cursor = crVSplit
|
||||||
Left = 224
|
Left = 224
|
||||||
Height = 5
|
Height = 5
|
||||||
Top = 438
|
Top = 435
|
||||||
Width = 542
|
Width = 542
|
||||||
Align = alNone
|
Align = alNone
|
||||||
Anchors = [akLeft, akRight, akBottom]
|
Anchors = [akLeft, akRight, akBottom]
|
||||||
|
@ -1140,7 +1141,7 @@ object frmMain: TfrmMain
|
||||||
AnchorSideRight.Side = asrBottom
|
AnchorSideRight.Side = asrBottom
|
||||||
AnchorSideBottom.Control = pnlChatHeader
|
AnchorSideBottom.Control = pnlChatHeader
|
||||||
Left = 224
|
Left = 224
|
||||||
Height = 392
|
Height = 389
|
||||||
Top = 24
|
Top = 24
|
||||||
Width = 542
|
Width = 542
|
||||||
Anchors = [akTop, akLeft, akRight, akBottom]
|
Anchors = [akTop, akLeft, akRight, akBottom]
|
||||||
|
|
|
@ -826,7 +826,18 @@ begin
|
||||||
|
|
||||||
FLocationsFile := FAppDir + 'Locations.dat';
|
FLocationsFile := FAppDir + 'Locations.dat';
|
||||||
vstLocations.NodeDataSize := SizeOf(TLocationInfo);
|
vstLocations.NodeDataSize := SizeOf(TLocationInfo);
|
||||||
if FileExists(FLocationsFile) then vstLocations.LoadFromFile(FLocationsFile);
|
try
|
||||||
|
if FileExists(FLocationsFile) then
|
||||||
|
vstLocations.LoadFromFile(FLocationsFile);
|
||||||
|
except
|
||||||
|
on E: EVirtualTreeError do
|
||||||
|
begin
|
||||||
|
MessageDlg('Warning', 'The Locations could not be loaded. Most likely it is an' + LineEnding +
|
||||||
|
'outdated version or the file is damaged.' + LineEnding + LineEnding +
|
||||||
|
'A backup will be made as "Locations.bak".', mtWarning, [mbOK], 0);
|
||||||
|
RenameFile(FLocationsFile, FAppDir + 'Locations.bak');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
RegisterPacketHandler($0C, TPacketHandler.Create(0, @OnClientHandlingPacket));
|
RegisterPacketHandler($0C, TPacketHandler.Create(0, @OnClientHandlingPacket));
|
||||||
|
|
||||||
|
@ -897,7 +908,22 @@ end;
|
||||||
procedure TfrmMain.cbRandomPresetChange(Sender: TObject);
|
procedure TfrmMain.cbRandomPresetChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
if cbRandomPreset.ItemIndex > -1 then
|
if cbRandomPreset.ItemIndex > -1 then
|
||||||
|
begin
|
||||||
|
try
|
||||||
vdtRandom.LoadFromFile(FRandomPresetLocation + cbRandomPreset.Text + '.dat');
|
vdtRandom.LoadFromFile(FRandomPresetLocation + cbRandomPreset.Text + '.dat');
|
||||||
|
except
|
||||||
|
on EVirtualTreeError do
|
||||||
|
begin
|
||||||
|
if MessageDlg('Error', 'The profile could not be loaded. Most likely it is an' + LineEnding +
|
||||||
|
'outdated version or the file is damaged.' + LineEnding + LineEnding +
|
||||||
|
'Should this profile be deleted now?', mtError, [mbYes, mbNo], 0) = mrYes then
|
||||||
|
begin
|
||||||
|
DeleteFile(FRandomPresetLocation + cbRandomPreset.Text + '.dat');
|
||||||
|
cbRandomPreset.Items.Delete(cbRandomPreset.ItemIndex);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TfrmMain.btnAddRandomClick(Sender: TObject);
|
procedure TfrmMain.btnAddRandomClick(Sender: TObject);
|
||||||
|
|
Loading…
Reference in New Issue