- Fixed TfrmEditAccount.RegionDeleted to check, if the region is known (to prevent index out of bounds errors)
- Fixed UfrmMain to be compatible with newer versions of FPC - Added a slider to frmRegionControl - Added buttons to add and delete regions to frmRegionControl - Fixed unsaved regions not being removed in TfrmRegionControl - Extracted TfrmRegionControl.CheckUnsaved
This commit is contained in:
parent
01f5b2ca58
commit
e727aadcf2
|
@ -13,21 +13,20 @@ object frmEditAccount: TfrmEditAccount
|
|||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
OnShow = FormShow
|
||||
ParentFont = False
|
||||
Position = poOwnerFormCenter
|
||||
LCLVersion = '0.9.25'
|
||||
LCLVersion = '0.9.27'
|
||||
object PageControl1: TPageControl
|
||||
Height = 173
|
||||
Width = 261
|
||||
ActivePage = tsGeneral
|
||||
Align = alClient
|
||||
ParentFont = True
|
||||
TabIndex = 0
|
||||
TabOrder = 0
|
||||
object tsGeneral: TTabSheet
|
||||
Caption = 'General'
|
||||
ClientHeight = 144
|
||||
ClientWidth = 257
|
||||
ParentFont = True
|
||||
ClientHeight = 148
|
||||
ClientWidth = 259
|
||||
object lblPasswordHint: TLabel
|
||||
Left = 86
|
||||
Height = 28
|
||||
|
@ -37,7 +36,6 @@ object frmEditAccount: TfrmEditAccount
|
|||
Caption = 'Leave empty to leave the password unchanged.'
|
||||
Enabled = False
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
WordWrap = True
|
||||
end
|
||||
object lblUsername: TLabel
|
||||
|
@ -47,7 +45,6 @@ object frmEditAccount: TfrmEditAccount
|
|||
Width = 58
|
||||
Caption = 'Username:'
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
end
|
||||
object lblPassword: TLabel
|
||||
Left = 6
|
||||
|
@ -56,7 +53,6 @@ object frmEditAccount: TfrmEditAccount
|
|||
Width = 54
|
||||
Caption = 'Password:'
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
end
|
||||
object lblAccessLevel: TLabel
|
||||
Left = 6
|
||||
|
@ -65,7 +61,6 @@ object frmEditAccount: TfrmEditAccount
|
|||
Width = 63
|
||||
Caption = 'Accesslevel:'
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
end
|
||||
object edUsername: TEdit
|
||||
Left = 86
|
||||
|
@ -73,7 +68,6 @@ object frmEditAccount: TfrmEditAccount
|
|||
Top = 8
|
||||
Width = 160
|
||||
Color = clBtnFace
|
||||
ParentFont = True
|
||||
ReadOnly = True
|
||||
TabOrder = 0
|
||||
end
|
||||
|
@ -83,38 +77,33 @@ object frmEditAccount: TfrmEditAccount
|
|||
Top = 40
|
||||
Width = 160
|
||||
EchoMode = emPassword
|
||||
ParentFont = True
|
||||
PasswordChar = '*'
|
||||
TabOrder = 1
|
||||
end
|
||||
object cbAccessLevel: TComboBox
|
||||
Left = 86
|
||||
Height = 29
|
||||
Height = 25
|
||||
Top = 104
|
||||
Width = 160
|
||||
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending]
|
||||
Items.Strings = (
|
||||
'None'
|
||||
'Viewer'
|
||||
'Normal'
|
||||
'Administrator'
|
||||
)
|
||||
MaxLength = 0
|
||||
ParentFont = True
|
||||
Style = csDropDownList
|
||||
TabOrder = 2
|
||||
end
|
||||
end
|
||||
object tsRegions: TTabSheet
|
||||
Caption = 'Regions'
|
||||
ClientHeight = 144
|
||||
ClientWidth = 257
|
||||
ParentFont = True
|
||||
ClientHeight = 148
|
||||
ClientWidth = 259
|
||||
object Label1: TLabel
|
||||
Left = 8
|
||||
Height = 14
|
||||
Top = 8
|
||||
Width = 241
|
||||
Width = 243
|
||||
Align = alTop
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 8
|
||||
|
@ -122,20 +111,18 @@ object frmEditAccount: TfrmEditAccount
|
|||
BorderSpacing.Bottom = 4
|
||||
Caption = 'Allowed Regions:'
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
end
|
||||
object cbRegions: TCheckListBox
|
||||
Left = 8
|
||||
Height = 110
|
||||
Height = 114
|
||||
Top = 26
|
||||
Width = 241
|
||||
Width = 243
|
||||
Align = alClient
|
||||
BorderSpacing.Left = 8
|
||||
BorderSpacing.Top = 4
|
||||
BorderSpacing.Right = 8
|
||||
BorderSpacing.Bottom = 8
|
||||
ItemHeight = 13
|
||||
ParentFont = True
|
||||
TabOrder = 0
|
||||
TopIndex = -1
|
||||
end
|
||||
|
@ -151,7 +138,6 @@ object frmEditAccount: TfrmEditAccount
|
|||
BevelOuter = bvNone
|
||||
ClientHeight = 25
|
||||
ClientWidth = 245
|
||||
ParentFont = True
|
||||
TabOrder = 1
|
||||
object btnCancel: TButton
|
||||
Left = 170
|
||||
|
@ -163,7 +149,6 @@ object frmEditAccount: TfrmEditAccount
|
|||
Cancel = True
|
||||
Caption = 'Cancel'
|
||||
ModalResult = 2
|
||||
ParentFont = True
|
||||
TabOrder = 0
|
||||
end
|
||||
object btnOK: TButton
|
||||
|
@ -176,7 +161,6 @@ object frmEditAccount: TfrmEditAccount
|
|||
Caption = 'OK'
|
||||
Default = True
|
||||
ModalResult = 1
|
||||
ParentFont = True
|
||||
TabOrder = 1
|
||||
end
|
||||
end
|
||||
|
|
|
@ -143,8 +143,12 @@ begin
|
|||
end;
|
||||
|
||||
procedure TfrmEditAccount.RegionDeleted(ARegionName: string);
|
||||
var
|
||||
index: Integer;
|
||||
begin
|
||||
cbRegions.Items.Delete(cbRegions.Items.IndexOf(ARegionName));
|
||||
index := cbRegions.Items.IndexOf(ARegionName);
|
||||
if index > -1 then
|
||||
cbRegions.Items.Delete(index);
|
||||
end;
|
||||
|
||||
procedure TfrmEditAccount.RegionList;
|
||||
|
|
|
@ -15,9 +15,10 @@ object frmMain: TfrmMain
|
|||
OnClose = FormClose
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
ParentFont = False
|
||||
Position = poScreenCenter
|
||||
ShowInTaskBar = stAlways
|
||||
LCLVersion = '0.9.25'
|
||||
LCLVersion = '0.9.27'
|
||||
WindowState = wsMaximized
|
||||
object pnlBottom: TPanel
|
||||
Height = 31
|
||||
|
@ -27,57 +28,53 @@ object frmMain: TfrmMain
|
|||
BevelOuter = bvNone
|
||||
ClientHeight = 31
|
||||
ClientWidth = 766
|
||||
ParentFont = True
|
||||
TabOrder = 0
|
||||
object lblX: TLabel
|
||||
Left = 11
|
||||
Height = 13
|
||||
Height = 14
|
||||
Top = 7
|
||||
Width = 12
|
||||
Width = 11
|
||||
Caption = 'X:'
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
end
|
||||
object lblY: TLabel
|
||||
Left = 88
|
||||
Height = 13
|
||||
Height = 14
|
||||
Top = 7
|
||||
Width = 12
|
||||
Width = 11
|
||||
Caption = 'Y:'
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
end
|
||||
object lblTileInfo: TLabel
|
||||
Left = 240
|
||||
Height = 13
|
||||
Height = 14
|
||||
Top = 7
|
||||
Width = 4
|
||||
Caption = ' '
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
end
|
||||
object lblTip: TLabel
|
||||
Left = 519
|
||||
Left = 554
|
||||
Height = 31
|
||||
Width = 239
|
||||
Width = 204
|
||||
Align = alRight
|
||||
Alignment = taRightJustify
|
||||
BorderSpacing.Right = 8
|
||||
Caption = 'Right click shows a menu with all the tools.'
|
||||
Layout = tlCenter
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
end
|
||||
object lblTipC: TLabel
|
||||
Left = 490
|
||||
Left = 530
|
||||
Height = 31
|
||||
Width = 29
|
||||
Width = 24
|
||||
Align = alRight
|
||||
Caption = 'Tip: '
|
||||
Font.Height = -11
|
||||
Font.Style = [fsBold]
|
||||
Layout = tlCenter
|
||||
ParentColor = False
|
||||
ParentFont = False
|
||||
end
|
||||
object edX: TSpinEdit
|
||||
Left = 24
|
||||
|
@ -85,7 +82,6 @@ object frmMain: TfrmMain
|
|||
Top = 3
|
||||
Width = 55
|
||||
MaxValue = 100000
|
||||
ParentFont = True
|
||||
TabOrder = 0
|
||||
end
|
||||
object edY: TSpinEdit
|
||||
|
@ -94,7 +90,6 @@ object frmMain: TfrmMain
|
|||
Top = 3
|
||||
Width = 52
|
||||
MaxValue = 100000
|
||||
ParentFont = True
|
||||
TabOrder = 1
|
||||
end
|
||||
object btnGoTo: TButton
|
||||
|
@ -105,7 +100,6 @@ object frmMain: TfrmMain
|
|||
BorderSpacing.InnerBorder = 4
|
||||
Caption = 'GoTo'
|
||||
OnClick = btnGoToClick
|
||||
ParentFont = True
|
||||
TabOrder = 2
|
||||
end
|
||||
end
|
||||
|
@ -115,14 +109,12 @@ object frmMain: TfrmMain
|
|||
Width = 224
|
||||
ActivePage = tsTiles
|
||||
Align = alLeft
|
||||
ParentFont = True
|
||||
TabIndex = 0
|
||||
TabOrder = 1
|
||||
object tsTiles: TTabSheet
|
||||
Caption = 'Tiles'
|
||||
ClientHeight = 500
|
||||
ClientWidth = 222
|
||||
ParentFont = True
|
||||
object pnlTileListSettings: TPanel
|
||||
Height = 56
|
||||
Width = 222
|
||||
|
@ -130,7 +122,6 @@ object frmMain: TfrmMain
|
|||
BevelOuter = bvNone
|
||||
ClientHeight = 56
|
||||
ClientWidth = 222
|
||||
ParentFont = True
|
||||
TabOrder = 0
|
||||
object lblFilter: TLabel
|
||||
Left = 84
|
||||
|
@ -139,7 +130,6 @@ object frmMain: TfrmMain
|
|||
Width = 30
|
||||
Caption = 'Filter:'
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
end
|
||||
object cbTerrain: TCheckBox
|
||||
Left = 4
|
||||
|
@ -149,7 +139,6 @@ object frmMain: TfrmMain
|
|||
Caption = 'Terrain'
|
||||
Checked = True
|
||||
OnChange = cbTerrainChange
|
||||
ParentFont = True
|
||||
State = cbChecked
|
||||
TabOrder = 0
|
||||
end
|
||||
|
@ -161,7 +150,6 @@ object frmMain: TfrmMain
|
|||
Caption = 'Statics'
|
||||
Checked = True
|
||||
OnChange = cbStaticsChange
|
||||
ParentFont = True
|
||||
State = cbChecked
|
||||
TabOrder = 1
|
||||
end
|
||||
|
@ -171,7 +159,6 @@ object frmMain: TfrmMain
|
|||
Top = 24
|
||||
Width = 112
|
||||
OnEditingDone = edFilterEditingDone
|
||||
ParentFont = True
|
||||
TabOrder = 2
|
||||
end
|
||||
end
|
||||
|
@ -189,12 +176,11 @@ object frmMain: TfrmMain
|
|||
Header.Options = [hoVisible]
|
||||
Header.ParentFont = True
|
||||
Header.Style = hsFlatButtons
|
||||
ParentFont = True
|
||||
PopupMenu = pmTileList
|
||||
TabOrder = 1
|
||||
TreeOptions.AutoOptions = [toAutoScroll, toAutoScrollOnExpand, toAutoTristateTracking, toAutoDeleteMovedNodes]
|
||||
TreeOptions.MiscOptions = [toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning, toFullRowDrag]
|
||||
TreeOptions.PaintOptions = [toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages]
|
||||
TreeOptions.PaintOptions = [toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages, toStaticBackground]
|
||||
TreeOptions.SelectionOptions = [toFullRowSelect, toMultiSelect, toCenterScrollIntoView]
|
||||
OnClick = vdtTilesClick
|
||||
OnDrawNode = vdtTilesDrawNode
|
||||
|
@ -227,7 +213,6 @@ object frmMain: TfrmMain
|
|||
Caption = 'Random pool'
|
||||
ClientHeight = 179
|
||||
ClientWidth = 220
|
||||
ParentFont = True
|
||||
TabOrder = 2
|
||||
object vdtRandom: TVirtualDrawTree
|
||||
Tag = 1
|
||||
|
@ -241,7 +226,6 @@ object frmMain: TfrmMain
|
|||
Header.Options = [hoColumnResize, hoDrag, hoVisible]
|
||||
Header.ParentFont = True
|
||||
Header.Style = hsFlatButtons
|
||||
ParentFont = True
|
||||
TabOrder = 0
|
||||
TreeOptions.PaintOptions = [toHideFocusRect, toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages]
|
||||
TreeOptions.SelectionOptions = [toFullRowSelect, toMultiSelect]
|
||||
|
@ -273,7 +257,6 @@ object frmMain: TfrmMain
|
|||
BevelOuter = bvNone
|
||||
ClientHeight = 22
|
||||
ClientWidth = 220
|
||||
ParentFont = True
|
||||
TabOrder = 1
|
||||
object btnAddRandom: TSpeedButton
|
||||
Left = 2
|
||||
|
@ -427,7 +410,6 @@ object frmMain: TfrmMain
|
|||
BevelOuter = bvNone
|
||||
ClientHeight = 22
|
||||
ClientWidth = 212
|
||||
ParentFont = True
|
||||
TabOrder = 2
|
||||
object btnRandomPresetSave: TSpeedButton
|
||||
Left = 158
|
||||
|
@ -530,7 +512,6 @@ object frmMain: TfrmMain
|
|||
Width = 152
|
||||
MaxLength = -1
|
||||
OnChange = cbRandomPresetChange
|
||||
ParentFont = True
|
||||
Style = csDropDownList
|
||||
TabOrder = 0
|
||||
end
|
||||
|
@ -553,7 +534,6 @@ object frmMain: TfrmMain
|
|||
CharCase = ecUppercase
|
||||
OnExit = edSearchIDExit
|
||||
OnKeyPress = edSearchIDKeyPress
|
||||
ParentFont = True
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 3
|
||||
|
@ -564,13 +544,11 @@ object frmMain: TfrmMain
|
|||
Caption = 'Clients'
|
||||
ClientHeight = 500
|
||||
ClientWidth = 222
|
||||
ParentFont = True
|
||||
object lbClients: TListBox
|
||||
Height = 500
|
||||
Width = 222
|
||||
Align = alClient
|
||||
OnDblClick = mnuGoToClientClick
|
||||
ParentFont = True
|
||||
PopupMenu = pmClients
|
||||
Sorted = True
|
||||
TabOrder = 0
|
||||
|
@ -581,7 +559,6 @@ object frmMain: TfrmMain
|
|||
Caption = 'Locations'
|
||||
ClientHeight = 500
|
||||
ClientWidth = 222
|
||||
ParentFont = True
|
||||
object vstLocations: TVirtualStringTree
|
||||
Cursor = 63
|
||||
Left = 4
|
||||
|
@ -595,7 +572,6 @@ object frmMain: TfrmMain
|
|||
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible]
|
||||
Header.ParentFont = True
|
||||
Header.Style = hsFlatButtons
|
||||
ParentFont = True
|
||||
TabOrder = 0
|
||||
TreeOptions.AutoOptions = [toAutoScrollOnExpand, toAutoTristateTracking, toAutoDeleteMovedNodes]
|
||||
TreeOptions.PaintOptions = [toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages]
|
||||
|
@ -613,7 +589,7 @@ object frmMain: TfrmMain
|
|||
end
|
||||
item
|
||||
Position = 1
|
||||
Width = 135
|
||||
Width = 139
|
||||
WideText = 'Name'
|
||||
end>
|
||||
end
|
||||
|
@ -627,7 +603,6 @@ object frmMain: TfrmMain
|
|||
BevelOuter = bvNone
|
||||
ClientHeight = 24
|
||||
ClientWidth = 214
|
||||
ParentFont = True
|
||||
TabOrder = 1
|
||||
object btnClearLocations: TSpeedButton
|
||||
Left = 112
|
||||
|
@ -957,7 +932,6 @@ object frmMain: TfrmMain
|
|||
BevelOuter = bvNone
|
||||
ClientHeight = 525
|
||||
ClientWidth = 542
|
||||
ParentFont = True
|
||||
TabOrder = 3
|
||||
object oglGameWindow: TOpenGLControl
|
||||
Height = 374
|
||||
|
@ -981,20 +955,18 @@ object frmMain: TfrmMain
|
|||
BevelOuter = bvLowered
|
||||
ClientHeight = 24
|
||||
ClientWidth = 542
|
||||
ParentFont = True
|
||||
TabOrder = 0
|
||||
object lblChatHeaderCaption: TLabel
|
||||
Cursor = crHandPoint
|
||||
Left = 10
|
||||
Height = 20
|
||||
Top = 2
|
||||
Width = 104
|
||||
Width = 95
|
||||
Align = alLeft
|
||||
BorderSpacing.Left = 8
|
||||
Caption = 'Chat and Messages'
|
||||
Layout = tlCenter
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
OnClick = lblChatHeaderCaptionClick
|
||||
OnMouseEnter = lblChatHeaderCaptionMouseEnter
|
||||
OnMouseLeave = lblChatHeaderCaptionMouseLeave
|
||||
|
@ -1008,7 +980,6 @@ object frmMain: TfrmMain
|
|||
BevelOuter = bvNone
|
||||
ClientHeight = 122
|
||||
ClientWidth = 542
|
||||
ParentFont = True
|
||||
TabOrder = 1
|
||||
Visible = False
|
||||
object vstChat: TVirtualStringTree
|
||||
|
@ -1021,7 +992,6 @@ object frmMain: TfrmMain
|
|||
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible]
|
||||
Header.ParentFont = True
|
||||
Header.Style = hsFlatButtons
|
||||
ParentFont = True
|
||||
TabOrder = 0
|
||||
TreeOptions.AutoOptions = [toAutoDropExpand, toAutoScroll, toAutoScrollOnExpand, toAutoTristateTracking, toAutoDeleteMovedNodes]
|
||||
TreeOptions.MiscOptions = [toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning]
|
||||
|
@ -1052,7 +1022,6 @@ object frmMain: TfrmMain
|
|||
Width = 542
|
||||
Align = alBottom
|
||||
OnKeyPress = edChatKeyPress
|
||||
ParentFont = True
|
||||
TabOrder = 1
|
||||
end
|
||||
end
|
||||
|
@ -1253,6 +1222,42 @@ object frmMain: TfrmMain
|
|||
end
|
||||
object mnuRegionControl: TMenuItem
|
||||
Caption = '&Region Management'
|
||||
Bitmap.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
2000000000000004000064000000640000000000000000000000454D47FF5F6A
|
||||
61FF636F64FF646F64FF143F56FF295F86FF4988BCFF4A86A7FF5D7070FF646F
|
||||
66FF646F66FF646F67FF646F67FF647067FF616C63FF474E48FF5F6A60FFEBF5
|
||||
ECFFD4EDD7FFD4EED7FF2E6784FF94C7F9FF91C9F9FF4185C9FF256BACFFB7D9
|
||||
D4FFD4E2ECFFCFE5D6FFD5EDD9FFD8EFDCFFD5EDD9FF616C63FF626E64FFEEF8
|
||||
EFFFA4DBBCFF8CCAA6FF4389AAFFE0F2FFFF549AD8FF1A7ABEFF4998C5FF3B86
|
||||
BFFF6074E7FF81C5A3FF8CD0A6FF85CAA0FFD2E9D7FF646F67FF616E64FFECF7
|
||||
EEFF96DBAFFF7FC99AFF63ADA5FF7AB6D5FF90B7D1FF55C9E4FF5BDFF5FF78D0
|
||||
EDFF4696D9FF76C1A1FF87D0A0FF80CA9AFFD6EEDAFF646F66FF616E63FFF7FB
|
||||
F8FF9BDEC4FF73C393FF80CF9FFF53AD9CFF73B9D5FFC2F6FDFF63DFF7FF5DE2
|
||||
F8FF79D3F0FF4395DAFF6CB8A4FF74C38FFFD7EFDAFF646F66FF616E63FFF8FC
|
||||
F9FFBCFBFBFF9DE7DFFF93E1BBFF77C997FF63BDAEFF77CBE7FFC7F7FDFF5EDC
|
||||
F5FF5AE1F7FF7BD4F1FF4395DDFF589BC3FFD0E9DBFF646F66FF606D63FFF8FC
|
||||
F8FFA4EBEDFF8DDFDFFF97EBEBFF72CFB7FF74CA99FF4790BDFF79D3EEFFC7F7
|
||||
FDFF5FDCF5FF5BE2F7FF7AD6F2FF4399DFFFB1D4D9FF646F66FF606D62FFF8FC
|
||||
F8FFAFFAFAFF94EBEBFFA2F9FAFF8AEAEBFF95EDF3FF595FEBFF6BCFE5FF7CD4
|
||||
EEFFC4F6FDFF6CDDF6FF6DCAEDFF63A3D7FF66A1D3FF617474FF606D61FFF8FC
|
||||
F8FF9FF1F1FF81DDDFFF8AEAEBFF75DEDEFF6591EEFF557EE2FF68DCDDFF5BBC
|
||||
C5FF80D5EDFFB2E3F9FF8BC0E7FFAED3F6FFC4E0FCFF669DD0FF5F6D61FFF8FC
|
||||
F8FFA6F9F9FF8BE9EAFF99F8FAFF78D3EBFF656BFFFF77DCEAFF70DFDEFFC1C5
|
||||
B5FFA8C8C8FF77BEE7FFB4D2F0FFE5F3FFFFACD2EFFF4A89BEFF5F6D61FFF8FC
|
||||
F8FF90EAEAFF78DDDEFF81E9EAFF4E6BE2FF639DEEFF5ED7D7FF5BCBC9FFD4B0
|
||||
97FFE2BA9FFFA1ADA9FF58A5D8FF85B1DBFF469DD0FF4E7C8CFF5F6D61FFF7FC
|
||||
F8FF9FF9F9FF85E9EAFF84D3FAFF525AF0FF87F2F7FF60DAD7FF98D5CAFFE0B7
|
||||
9CFFEDC7A9FFE0B394FFE6B898FFDEAE8CFFD7ECD6FF636E64FF5F6D60FFF7FC
|
||||
F8FF8AEAEAFF72DDDEFF5665F0FF569FDFFF73E8E8FF46C1C1FFBBBBA5FFD0A4
|
||||
83FFDEB08EFFD19E7AFFD6A27AFFCF9871FFD7EBD5FF626E64FF5F6D60FFF7FC
|
||||
F8FF9DF9F9FF6CB4EDFF6271FEFF80E7E9FF8CF4F4FF52CDCDFFECC2A4FFDDAD
|
||||
8AFFEBBA97FFDDA780FFE2AB83FFDAA075FFD9EAD4FF616E64FF5C6A5DFFFBFC
|
||||
FBFFFCFEFCFFF7FCF8FFF7FCF8FFF7FCF8FFF8FCF8FFF7FCF9FFF8FCF8FFF8FC
|
||||
F8FFECF7EEFFEDF7EEFFEFF6EDFFEEF4ECFFEBF4EBFF5E6A5FFF536876FF5C6A
|
||||
5DFF5F6D60FF5F6D60FF5F6D60FF5F6D60FF5F6D61FF5F6D61FF5F6D61FF5F6D
|
||||
61FF606D61FF606D62FF606D62FF606D63FF5E6A5FFF454E46FF
|
||||
}
|
||||
ImageIndex = 19
|
||||
OnClick = mnuRegionControlClick
|
||||
end
|
||||
|
|
|
@ -559,7 +559,7 @@ begin
|
|||
if frmDrawSettings.cbForceAltitude.Checked then
|
||||
map.Altitude := frmDrawSettings.seForceAltitude.Value;
|
||||
if frmDrawSettings.cbRandomHeight.Checked then
|
||||
Inc(map.Altitude, Random(frmDrawSettings.seRandomHeight.Value));
|
||||
map.Altitude := map.Altitude + Random(frmDrawSettings.seRandomHeight.Value);
|
||||
dmNetwork.Send(TDrawMapPacket.Create(map.X, map.Y, map.Z, tileInfo^.ID));
|
||||
end else
|
||||
begin
|
||||
|
@ -2047,7 +2047,7 @@ begin
|
|||
begin
|
||||
FGhostTile.Z := CurrentTile.Z;
|
||||
if CurrentTile is TStaticItem then
|
||||
Inc(FGhostTile.Z, ResMan.Tiledata.StaticTiles[CurrentTile.TileID].Height);
|
||||
FGhostTile.Z := FGhostTile.Z + ResMan.Tiledata.StaticTiles[CurrentTile.TileID].Height;
|
||||
end else
|
||||
FGhostTile.Z := frmDrawSettings.seForceAltitude.Value;
|
||||
end;
|
||||
|
|
|
@ -1,51 +1,48 @@
|
|||
object frmRegionControl: TfrmRegionControl
|
||||
Left = 247
|
||||
Height = 392
|
||||
Height = 413
|
||||
Top = 139
|
||||
Width = 620
|
||||
ActiveControl = vstRegions
|
||||
Caption = 'Region Control'
|
||||
ClientHeight = 392
|
||||
ClientHeight = 413
|
||||
ClientWidth = 620
|
||||
Font.Height = -11
|
||||
OnClose = FormClose
|
||||
OnCreate = FormCreate
|
||||
OnDestroy = FormDestroy
|
||||
OnShow = FormShow
|
||||
ParentFont = False
|
||||
Position = poOwnerFormCenter
|
||||
ShowInTaskBar = stAlways
|
||||
LCLVersion = '0.9.25'
|
||||
LCLVersion = '0.9.27'
|
||||
object Panel1: TPanel
|
||||
Height = 359
|
||||
Height = 380
|
||||
Width = 160
|
||||
Align = alLeft
|
||||
Caption = 'Panel1'
|
||||
ClientHeight = 359
|
||||
ClientHeight = 380
|
||||
ClientWidth = 160
|
||||
ParentFont = True
|
||||
TabOrder = 0
|
||||
object Label1: TLabel
|
||||
Left = 5
|
||||
Height = 13
|
||||
Top = 137
|
||||
Height = 14
|
||||
Top = 176
|
||||
Width = 150
|
||||
Align = alTop
|
||||
BorderSpacing.Left = 4
|
||||
BorderSpacing.Right = 4
|
||||
Caption = 'Area:'
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
end
|
||||
object pnlAreaControls: TPanel
|
||||
Left = 5
|
||||
Height = 82
|
||||
Top = 272
|
||||
Top = 293
|
||||
Width = 150
|
||||
Align = alBottom
|
||||
BorderSpacing.Around = 4
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 82
|
||||
ClientWidth = 150
|
||||
ParentFont = True
|
||||
TabOrder = 0
|
||||
object lblX: TLabel
|
||||
Left = 4
|
||||
|
@ -55,7 +52,6 @@ object frmRegionControl: TfrmRegionControl
|
|||
Caption = 'X'
|
||||
Enabled = False
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
end
|
||||
object lblY: TLabel
|
||||
Left = 4
|
||||
|
@ -65,7 +61,6 @@ object frmRegionControl: TfrmRegionControl
|
|||
Caption = 'Y'
|
||||
Enabled = False
|
||||
ParentColor = False
|
||||
ParentFont = True
|
||||
end
|
||||
object btnAddArea: TSpeedButton
|
||||
Left = 30
|
||||
|
@ -218,7 +213,6 @@ object frmRegionControl: TfrmRegionControl
|
|||
Width = 50
|
||||
Enabled = False
|
||||
OnChange = seX1Change
|
||||
ParentFont = True
|
||||
TabOrder = 0
|
||||
end
|
||||
object seX2: TSpinEdit
|
||||
|
@ -228,7 +222,6 @@ object frmRegionControl: TfrmRegionControl
|
|||
Width = 50
|
||||
Enabled = False
|
||||
OnChange = seX1Change
|
||||
ParentFont = True
|
||||
TabOrder = 1
|
||||
end
|
||||
object seY1: TSpinEdit
|
||||
|
@ -238,7 +231,6 @@ object frmRegionControl: TfrmRegionControl
|
|||
Width = 50
|
||||
Enabled = False
|
||||
OnChange = seX1Change
|
||||
ParentFont = True
|
||||
TabOrder = 2
|
||||
end
|
||||
object seY2: TSpinEdit
|
||||
|
@ -248,14 +240,13 @@ object frmRegionControl: TfrmRegionControl
|
|||
Width = 50
|
||||
Enabled = False
|
||||
OnChange = seX1Change
|
||||
ParentFont = True
|
||||
TabOrder = 3
|
||||
end
|
||||
end
|
||||
object vstArea: TVirtualStringTree
|
||||
Left = 5
|
||||
Height = 118
|
||||
Top = 150
|
||||
Height = 99
|
||||
Top = 190
|
||||
Width = 150
|
||||
Align = alClient
|
||||
BorderSpacing.Left = 4
|
||||
|
@ -264,7 +255,6 @@ object frmRegionControl: TfrmRegionControl
|
|||
BorderStyle = bsSingle
|
||||
Header.MainColumn = -1
|
||||
Header.Options = [hoColumnResize, hoDrag]
|
||||
ParentFont = True
|
||||
TabOrder = 1
|
||||
TreeOptions.PaintOptions = [toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages]
|
||||
TreeOptions.SelectionOptions = [toFullRowSelect]
|
||||
|
@ -272,48 +262,172 @@ object frmRegionControl: TfrmRegionControl
|
|||
OnGetText = vstAreaGetText
|
||||
Columns = <>
|
||||
end
|
||||
object vstRegions: TVirtualStringTree
|
||||
object spRegionsArea: TSplitter
|
||||
Cursor = crVSplit
|
||||
Left = 1
|
||||
Height = 136
|
||||
Height = 5
|
||||
Top = 171
|
||||
Width = 158
|
||||
Align = alTop
|
||||
AutoSnap = False
|
||||
ResizeAnchor = akTop
|
||||
end
|
||||
object Panel4: TPanel
|
||||
Left = 1
|
||||
Height = 170
|
||||
Top = 1
|
||||
Width = 158
|
||||
Align = alTop
|
||||
Header.Options = [hoAutoResize, hoVisible]
|
||||
Header.ParentFont = True
|
||||
Header.Style = hsFlatButtons
|
||||
ParentFont = True
|
||||
PopupMenu = pmRegions
|
||||
TabOrder = 2
|
||||
TreeOptions.MiscOptions = [toCheckSupport, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning]
|
||||
TreeOptions.PaintOptions = [toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages]
|
||||
TreeOptions.SelectionOptions = [toFullRowSelect]
|
||||
OnChange = vstRegionsChange
|
||||
OnFreeNode = vstRegionsFreeNode
|
||||
OnGetText = vstRegionsGetText
|
||||
Columns = <
|
||||
item
|
||||
Width = 158
|
||||
WideText = 'Regions'
|
||||
end>
|
||||
Anchors = [akLeft, akRight]
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 170
|
||||
ClientWidth = 158
|
||||
TabOrder = 3
|
||||
object vstRegions: TVirtualStringTree
|
||||
Height = 144
|
||||
Width = 158
|
||||
Align = alClient
|
||||
Header.Options = [hoAutoResize, hoVisible]
|
||||
Header.ParentFont = True
|
||||
Header.Style = hsFlatButtons
|
||||
PopupMenu = pmRegions
|
||||
TabOrder = 0
|
||||
TreeOptions.MiscOptions = [toCheckSupport, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning]
|
||||
TreeOptions.PaintOptions = [toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages]
|
||||
TreeOptions.SelectionOptions = [toFullRowSelect]
|
||||
OnChange = vstRegionsChange
|
||||
OnFreeNode = vstRegionsFreeNode
|
||||
OnGetText = vstRegionsGetText
|
||||
Columns = <
|
||||
item
|
||||
Width = 158
|
||||
WideText = 'Regions'
|
||||
end>
|
||||
end
|
||||
object Panel5: TPanel
|
||||
Height = 26
|
||||
Top = 144
|
||||
Width = 158
|
||||
Align = alBottom
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 26
|
||||
ClientWidth = 158
|
||||
TabOrder = 1
|
||||
object btnAddRegion: TSpeedButton
|
||||
Left = 54
|
||||
Height = 22
|
||||
Hint = 'Add region'
|
||||
Top = 3
|
||||
Width = 23
|
||||
Color = clBtnFace
|
||||
Glyph.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
2000000000000004000064000000640000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000003A8C44FF368940FF32873CFF2F84
|
||||
37FF000000000000000000000000000000000000000000000000000000000000
|
||||
00000000000000000000459653FF419950FF7DC28FFF96D0A6FF96CFA6FF78BE
|
||||
89FF368D42FF2C8134FF00000000000000000000000000000000000000000000
|
||||
0000000000004D9C5DFF64B478FFA8DBB5FF87CC98FF66BC7DFF64BA7CFF86CB
|
||||
98FFA5D9B4FF58AA6BFF2C8134FF000000000000000000000000000000000000
|
||||
000056A366FF6AB97DFFA8DBB2FF60BC77FF5CBA73FF59B870FF59B56FFF58B5
|
||||
6FFF5BB774FFA5D9B3FF5AAA6CFF2C8234FF0000000000000000000000000000
|
||||
000053AB68FFAADDB4FF64C179FF5FBE71FF60BC77FFFFFFFFFFFFFFFFFF59B8
|
||||
70FF58B56EFF5CB774FFA6DAB4FF388F43FF00000000000000000000000061AC
|
||||
75FF8ACC98FF89D396FF6BC67AFF63C170FF55AB65FFFFFFFFFFFFFFFFFF59B8
|
||||
70FF59B870FF5BB972FF85CC97FF7BBE8DFF308539FF000000000000000065AF
|
||||
7AFFA9DDB3FF7DCF8AFF75CC81FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFF59B870FF67BE7DFF9CD4ABFF34883DFF000000000000000069B2
|
||||
7EFFB6E2BEFF8BD597FF7AC986FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFF59B870FF69C17EFF9DD4AAFF388B42FF00000000000000006DB5
|
||||
83FFACDDB6FFA6DFAFFF81CB8CFF7CC986FF6EBD79FFFFFFFFFFFFFFFFFF5BAC
|
||||
6AFF60BC77FF5CBA73FF8BD199FF80C592FF3C8E47FF00000000000000000000
|
||||
000085C797FFD2EED7FF95D9A0FF8AD394FF7FC889FFFFFFFFFFFFFFFFFF79CD
|
||||
85FF6BC37CFF6FC77EFFACDFB5FF459E57FF0000000000000000000000000000
|
||||
000070B887FFAADAB7FFD8F1DCFF92D89DFF88CD93FF84CC8EFF8BD496FF8AD4
|
||||
95FF83D28EFFAFE0B7FF6BB97DFF489856FF0000000000000000000000000000
|
||||
00000000000070B887FFAFDCBBFFDCF2E0FFB6E4BDFF9BDBA5FF96D9A0FFA5DF
|
||||
AFFFC0E8C5FF79C28AFF509E5FFF000000000000000000000000000000000000
|
||||
0000000000000000000071B887FF94CEA4FFC3E6CBFFCFEBD4FFC9E9CEFFAFDD
|
||||
B8FF6DB97FFF58A569FF00000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000006EB684FF6AB380FF67B17CFF63AE
|
||||
77FF000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000
|
||||
}
|
||||
NumGlyphs = 0
|
||||
OnClick = mnuAddRegionClick
|
||||
ShowHint = True
|
||||
ParentShowHint = False
|
||||
end
|
||||
object btnDeleteRegion: TSpeedButton
|
||||
Left = 82
|
||||
Height = 22
|
||||
Hint = 'Delete region'
|
||||
Top = 3
|
||||
Width = 23
|
||||
Color = clBtnFace
|
||||
Enabled = False
|
||||
Glyph.Data = {
|
||||
36040000424D3604000000000000360000002800000010000000100000000100
|
||||
2000000000000004000064000000640000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000003853BEFF3551BDFF304BBCFF2E4E
|
||||
B8FF000000000000000000000000000000000000000000000000000000000000
|
||||
000000000000000000004255C6FF3C52CCFF757AE8FF8F92EEFF8F92EEFF7178
|
||||
E4FF334DC1FF2B4AB7FF00000000000000000000000000000000000000000000
|
||||
0000000000004959CBFF5C65E0FFA1A6F5FF7E86EFFF5B63E9FF595DE7FF7D84
|
||||
EEFF9EA0F4FF515DD7FF2B4AB7FF000000000000000000000000000000000000
|
||||
00005361CFFF616BE3FFA1ACF5FF545FECFF505CEAFF4D59E9FF4E59E6FF4C56
|
||||
E6FF5056E6FF9EA2F4FF5460D6FF2A4AB8FF0000000000000000000000000000
|
||||
00004B56DBFFA2ABF6FF5664F0FF5266EEFF4D59E9FF4D59E9FF4D59E9FF4D59
|
||||
E9FF4C58E6FF525AE6FF9FA3F5FF3450C4FF0000000000000000000000005C62
|
||||
D7FF818CEEFF7E91F7FF5D73F3FF4D59E9FF4D59E9FF4D59E9FF4D59E9FF4D59
|
||||
E9FF4D59E9FF4F5BE9FF7B83F0FF757BE2FF2E4BBAFF00000000000000005F63
|
||||
DAFFA1ABF7FF7086F8FF6882F6FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFF4D59E9FF5C66EAFF969CF1FF3250BCFF00000000000000006469
|
||||
DBFFAFB9F9FF7F93FAFF7085F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFF4D59E9FF5E6AEEFF969DF1FF364FBEFF0000000000000000676A
|
||||
DEFFA5AFF5FF9DABFAFF778CF0FF545FECFF545FECFF545FECFF545FECFF545F
|
||||
ECFF545FECFF6377F2FF818EF4FF787FE9FF3A53C0FF00000000000000000000
|
||||
00007D83EAFFCDD4FCFF8B9DFAFF7E93F7FF758AEEFF6C84F6FF6C84F6FF6C84
|
||||
F6FF6C84F6FF6379F3FFA4AFF8FF3E4FD0FF0000000000000000000000000000
|
||||
00006A69E0FFA3A7F3FFD4DBFDFF879AFAFF7F91F0FF7A8EF1FF7F94F8FF7E92
|
||||
F9FF768CF8FFA8B6F8FF636EE3FF4557C7FF0000000000000000000000000000
|
||||
0000000000006A69E0FFAAADF2FFD8DCFDFFAEBAFAFF91A3FAFF8B9DFAFF9CA9
|
||||
FBFFBAC7FCFF707BE9FF4C5BCCFF000000000000000000000000000000000000
|
||||
000000000000000000006A6ADFFF8E93EDFFBEC3F8FFCCD3F9FFC4CBF9FFAAB4
|
||||
F4FF6670E2FF535ED1FF00000000000000000000000000000000000000000000
|
||||
000000000000000000000000000000000000686ADDFF6364DCFF6164DAFF5D63
|
||||
D9FF000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000
|
||||
}
|
||||
NumGlyphs = 0
|
||||
OnClick = mnuDeleteRegionClick
|
||||
ShowHint = True
|
||||
ParentShowHint = False
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
object Panel2: TPanel
|
||||
Left = 160
|
||||
Height = 359
|
||||
Height = 380
|
||||
Width = 460
|
||||
Align = alClient
|
||||
Caption = 'Panel2'
|
||||
ClientHeight = 359
|
||||
ClientHeight = 380
|
||||
ClientWidth = 460
|
||||
ParentFont = True
|
||||
TabOrder = 1
|
||||
object sbArea: TScrollBox
|
||||
Left = 1
|
||||
Height = 357
|
||||
Height = 378
|
||||
Top = 1
|
||||
Width = 458
|
||||
Align = alClient
|
||||
ParentFont = True
|
||||
TabOrder = 0
|
||||
object pbArea: TPaintBox
|
||||
Height = 105
|
||||
|
@ -327,14 +441,13 @@ object frmRegionControl: TfrmRegionControl
|
|||
object Panel3: TPanel
|
||||
Left = 4
|
||||
Height = 25
|
||||
Top = 363
|
||||
Top = 384
|
||||
Width = 612
|
||||
Align = alBottom
|
||||
BorderSpacing.Around = 4
|
||||
BevelOuter = bvNone
|
||||
ClientHeight = 25
|
||||
ClientWidth = 612
|
||||
ParentFont = True
|
||||
TabOrder = 2
|
||||
object btnClose: TButton
|
||||
Left = 548
|
||||
|
@ -345,7 +458,6 @@ object frmRegionControl: TfrmRegionControl
|
|||
BorderSpacing.Left = 4
|
||||
Caption = 'Close'
|
||||
OnClick = btnCloseClick
|
||||
ParentFont = True
|
||||
TabOrder = 0
|
||||
end
|
||||
object btnSave: TButton
|
||||
|
@ -358,7 +470,6 @@ object frmRegionControl: TfrmRegionControl
|
|||
Caption = 'Save'
|
||||
Enabled = False
|
||||
OnClick = btnSaveClick
|
||||
ParentFont = True
|
||||
TabOrder = 1
|
||||
end
|
||||
end
|
||||
|
@ -369,10 +480,10 @@ object frmRegionControl: TfrmRegionControl
|
|||
Caption = 'Add'
|
||||
OnClick = mnuAddRegionClick
|
||||
end
|
||||
object mnuRemoveRegion: TMenuItem
|
||||
Caption = 'Remove'
|
||||
object mnuDeleteRegion: TMenuItem
|
||||
Caption = 'Delete'
|
||||
Enabled = False
|
||||
OnClick = mnuRemoveRegionClick
|
||||
OnClick = mnuDeleteRegionClick
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -52,18 +52,23 @@ type
|
|||
|
||||
TfrmRegionControl = class(TForm)
|
||||
btnAddArea: TSpeedButton;
|
||||
btnAddRegion: TSpeedButton;
|
||||
btnClearArea: TSpeedButton;
|
||||
btnDeleteArea: TSpeedButton;
|
||||
btnClose: TButton;
|
||||
btnDeleteRegion: TSpeedButton;
|
||||
|
||||
btnSave: TButton;
|
||||
Label1: TLabel;
|
||||
lblX: TLabel;
|
||||
lblY: TLabel;
|
||||
mnuAddRegion: TMenuItem;
|
||||
mnuRemoveRegion: TMenuItem;
|
||||
mnuDeleteRegion: TMenuItem;
|
||||
Panel1: TPanel;
|
||||
Panel2: TPanel;
|
||||
Panel3: TPanel;
|
||||
Panel4: TPanel;
|
||||
Panel5: TPanel;
|
||||
pbArea: TPaintBox;
|
||||
pnlAreaControls: TPanel;
|
||||
pmRegions: TPopupMenu;
|
||||
|
@ -72,10 +77,12 @@ type
|
|||
seX2: TSpinEdit;
|
||||
seY1: TSpinEdit;
|
||||
seY2: TSpinEdit;
|
||||
vstRegions: TVirtualStringTree;
|
||||
spRegionsArea: TSplitter;
|
||||
vstArea: TVirtualStringTree;
|
||||
vstRegions: TVirtualStringTree;
|
||||
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||
procedure mnuAddRegionClick(Sender: TObject);
|
||||
procedure mnuRemoveRegionClick(Sender: TObject);
|
||||
procedure mnuDeleteRegionClick(Sender: TObject);
|
||||
procedure btnAddAreaClick(Sender: TObject);
|
||||
procedure btnClearAreaClick(Sender: TObject);
|
||||
procedure btnCloseClick(Sender: TObject);
|
||||
|
@ -101,10 +108,12 @@ type
|
|||
FLastX: Integer;
|
||||
FLastY: Integer;
|
||||
FAreaMove: TAreaMove;
|
||||
FTempRegionNode: PVirtualNode;
|
||||
FOnRegionModified: TRegionModifiedEvent;
|
||||
FOnRegionDeleted: TRegionDeletedEvent;
|
||||
FOnRegionList: TRegionListEvent;
|
||||
function FindRegion(AName: string): PVirtualNode;
|
||||
procedure CheckUnsaved;
|
||||
procedure OnModifyRegionPacket(ABuffer: TEnhancedMemoryStream);
|
||||
procedure OnDeleteRegionPacket(ABuffer: TEnhancedMemoryStream);
|
||||
procedure OnListRegionsPacket(ABuffer: TEnhancedMemoryStream);
|
||||
|
@ -196,6 +205,8 @@ begin
|
|||
|
||||
vstArea.NodeDataSize := SizeOf(TRect);
|
||||
vstRegions.NodeDataSize := SizeOf(TRegionInfo);
|
||||
|
||||
FTempRegionNode := nil;
|
||||
|
||||
frmRadarMap.Dependencies.Add(pbArea);
|
||||
frmMain.RegisterAccessChangedListener(@OnAccessChanged);
|
||||
|
@ -231,7 +242,10 @@ begin
|
|||
btnSave.Enabled := False;
|
||||
|
||||
//Refresh the current region
|
||||
regionNode := vstRegions.GetFirstSelected;
|
||||
if FTempRegionNode <> nil then
|
||||
regionNode := FTempRegionNode
|
||||
else
|
||||
regionNode := vstRegions.GetFirstSelected;
|
||||
if regionNode <> nil then
|
||||
begin
|
||||
regionInfo := vstRegions.GetNodeData(regionNode);
|
||||
|
@ -251,25 +265,28 @@ begin
|
|||
|
||||
//Clear the selection
|
||||
vstRegions.ClearSelection;
|
||||
|
||||
FTempRegionNode := nil;
|
||||
end;
|
||||
|
||||
procedure TfrmRegionControl.mnuAddRegionClick(Sender: TObject);
|
||||
var
|
||||
regionName: string;
|
||||
node: PVirtualNode;
|
||||
regionInfo: PRegionInfo;
|
||||
begin
|
||||
regionName := '';
|
||||
if InputQuery('New Region', 'Enter the name for the new region:', regionName) then
|
||||
begin
|
||||
CheckUnsaved;
|
||||
|
||||
if FindRegion(regionName) = nil then
|
||||
begin
|
||||
node := vstRegions.AddChild(nil);
|
||||
regionInfo := vstRegions.GetNodeData(node);
|
||||
FTempRegionNode := vstRegions.AddChild(nil);
|
||||
regionInfo := vstRegions.GetNodeData(FTempRegionNode);
|
||||
regionInfo^.Name := regionName;
|
||||
regionInfo^.Areas := TRectList.Create;
|
||||
vstRegions.ClearSelection;
|
||||
vstRegions.Selected[node] := True;
|
||||
vstRegions.Selected[FTempRegionNode] := True;
|
||||
btnSave.Enabled := True;
|
||||
end else
|
||||
begin
|
||||
|
@ -279,7 +296,13 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmRegionControl.mnuRemoveRegionClick(Sender: TObject);
|
||||
procedure TfrmRegionControl.FormClose(Sender: TObject;
|
||||
var CloseAction: TCloseAction);
|
||||
begin
|
||||
CheckUnsaved;
|
||||
end;
|
||||
|
||||
procedure TfrmRegionControl.mnuDeleteRegionClick(Sender: TObject);
|
||||
var
|
||||
regionNode: PVirtualNode;
|
||||
regionInfo: PRegionInfo;
|
||||
|
@ -320,13 +343,6 @@ end;
|
|||
|
||||
procedure TfrmRegionControl.btnCloseClick(Sender: TObject);
|
||||
begin
|
||||
if btnSave.Enabled and (MessageDlg('Unsaved changes', 'There are unsaved ' +
|
||||
'changes.' + #13#10+#13#10+ 'Do you want to save them now?',
|
||||
mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
|
||||
begin
|
||||
btnSaveClick(Sender);
|
||||
end;
|
||||
|
||||
Close;
|
||||
end;
|
||||
|
||||
|
@ -495,12 +511,7 @@ var
|
|||
regionInfo: PRegionInfo;
|
||||
areaInfo: PRect;
|
||||
begin
|
||||
if btnSave.Enabled and (MessageDlg('Unsaved changes', 'There are unsaved ' +
|
||||
'changes.' + #13#10+#13#10+ 'Do you want to save them now?',
|
||||
mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
|
||||
begin
|
||||
btnSaveClick(Sender);
|
||||
end;
|
||||
CheckUnsaved;
|
||||
|
||||
vstArea.BeginUpdate;
|
||||
vstArea.Clear;
|
||||
|
@ -509,7 +520,8 @@ begin
|
|||
begin
|
||||
btnAddArea.Enabled := True;
|
||||
btnClearArea.Enabled := True;
|
||||
mnuRemoveRegion.Enabled := True;
|
||||
mnuDeleteRegion.Enabled := (selected <> FTempRegionNode);
|
||||
btnDeleteRegion.Enabled := (selected <> FTempRegionNode);
|
||||
|
||||
regionInfo := Sender.GetNodeData(selected);
|
||||
for i := 0 to regionInfo^.Areas.Count - 1 do
|
||||
|
@ -529,7 +541,8 @@ begin
|
|||
btnAddArea.Enabled := False;
|
||||
btnDeleteArea.Enabled := False;
|
||||
btnClearArea.Enabled := False;
|
||||
mnuRemoveRegion.Enabled := False;
|
||||
mnuDeleteRegion.Enabled := False;
|
||||
btnDeleteRegion.Enabled := False;
|
||||
end;
|
||||
vstArea.EndUpdate;
|
||||
pbArea.Repaint;
|
||||
|
@ -574,6 +587,24 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmRegionControl.CheckUnsaved;
|
||||
begin
|
||||
if btnSave.Enabled then
|
||||
begin
|
||||
if MessageDlg('Unsaved changes', 'There are unsaved ' +
|
||||
'changes.' + #13#10+#13#10+ 'Do you want to save them now?',
|
||||
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
|
||||
begin
|
||||
btnSaveClick(nil);
|
||||
end else if FTempRegionNode <> nil then
|
||||
begin
|
||||
btnSave.Enabled := False;
|
||||
vstRegions.DeleteNode(FTempRegionNode);
|
||||
FTempRegionNode := nil;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TfrmRegionControl.OnModifyRegionPacket(ABuffer: TEnhancedMemoryStream);
|
||||
var
|
||||
regionName: string;
|
||||
|
|
Loading…
Reference in New Issue