- Updated to a recent VirtualTrees revision

- Updated README accordingly
This commit is contained in:
Andreas Schneider 2009-01-27 10:45:01 +01:00
parent e727aadcf2
commit 45537315b5
11 changed files with 393 additions and 379 deletions

View File

@ -1,12 +1,13 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<PathDelim Value="/"/> <Version Value="7"/>
<Version Value="6"/>
<General> <General>
<Flags>
<LRSInOutputDirectory Value="False"/>
</Flags>
<SessionStorage Value="InProjectDir"/> <SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/> <MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/> <TargetFileExt Value=".exe"/>
</General> </General>
<VersionInfo> <VersionInfo>
@ -51,7 +52,6 @@
<ComponentName Value="frmMain"/> <ComponentName Value="frmMain"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="UfrmMain.lrs"/>
<UnitName Value="UfrmMain"/> <UnitName Value="UfrmMain"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
@ -59,7 +59,6 @@
<ComponentName Value="dmNetwork"/> <ComponentName Value="dmNetwork"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="DataModule"/> <ResourceBaseClass Value="DataModule"/>
<ResourceFilename Value="UdmNetwork.lrs"/>
<UnitName Value="UdmNetwork"/> <UnitName Value="UdmNetwork"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
@ -67,7 +66,6 @@
<ComponentName Value="frmLogin"/> <ComponentName Value="frmLogin"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="UfrmLogin.lrs"/>
<UnitName Value="UfrmLogin"/> <UnitName Value="UfrmLogin"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
@ -75,7 +73,6 @@
<ComponentName Value="frmInitialize"/> <ComponentName Value="frmInitialize"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="UfrmInitialize.lrs"/>
<UnitName Value="UfrmInitialize"/> <UnitName Value="UfrmInitialize"/>
</Unit4> </Unit4>
<Unit5> <Unit5>
@ -83,7 +80,6 @@
<ComponentName Value="frmAccountControl"/> <ComponentName Value="frmAccountControl"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="UfrmAccountControl.lrs"/>
<UnitName Value="UfrmAccountControl"/> <UnitName Value="UfrmAccountControl"/>
</Unit5> </Unit5>
<Unit6> <Unit6>
@ -91,7 +87,6 @@
<ComponentName Value="frmEditAccount"/> <ComponentName Value="frmEditAccount"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="UfrmEditAccount.lrs"/>
<UnitName Value="UfrmEditAccount"/> <UnitName Value="UfrmEditAccount"/>
</Unit6> </Unit6>
<Unit7> <Unit7>
@ -99,7 +94,6 @@
<ComponentName Value="frmDrawSettings"/> <ComponentName Value="frmDrawSettings"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="Tools/UfrmDrawSettings.lrs"/>
<UnitName Value="UfrmDrawSettings"/> <UnitName Value="UfrmDrawSettings"/>
</Unit7> </Unit7>
<Unit8> <Unit8>
@ -107,7 +101,6 @@
<ComponentName Value="frmBoundaries"/> <ComponentName Value="frmBoundaries"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="Tools/UfrmBoundaries.lrs"/>
<UnitName Value="UfrmBoundaries"/> <UnitName Value="UfrmBoundaries"/>
</Unit8> </Unit8>
<Unit9> <Unit9>
@ -115,7 +108,6 @@
<ComponentName Value="frmElevateSettings"/> <ComponentName Value="frmElevateSettings"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="Tools/UfrmElevateSettings.lrs"/>
<UnitName Value="UfrmElevateSettings"/> <UnitName Value="UfrmElevateSettings"/>
</Unit9> </Unit9>
<Unit10> <Unit10>
@ -133,7 +125,6 @@
<ComponentName Value="frmConfirmation"/> <ComponentName Value="frmConfirmation"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="Tools/UfrmConfirmation.lrs"/>
<UnitName Value="UfrmConfirmation"/> <UnitName Value="UfrmConfirmation"/>
</Unit12> </Unit12>
<Unit13> <Unit13>
@ -141,7 +132,6 @@
<ComponentName Value="frmMoveSettings"/> <ComponentName Value="frmMoveSettings"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="Tools/UfrmMoveSettings.lrs"/>
<UnitName Value="UfrmMoveSettings"/> <UnitName Value="UfrmMoveSettings"/>
</Unit13> </Unit13>
<Unit14> <Unit14>
@ -149,7 +139,6 @@
<ComponentName Value="frmAbout"/> <ComponentName Value="frmAbout"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="UfrmAbout.lrs"/>
<UnitName Value="UfrmAbout"/> <UnitName Value="UfrmAbout"/>
</Unit14> </Unit14>
<Unit15> <Unit15>
@ -157,7 +146,6 @@
<ComponentName Value="frmHueSettings"/> <ComponentName Value="frmHueSettings"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="Tools/UfrmHueSettings.lrs"/>
<UnitName Value="UfrmHueSettings"/> <UnitName Value="UfrmHueSettings"/>
</Unit15> </Unit15>
<Unit16> <Unit16>
@ -165,7 +153,6 @@
<ComponentName Value="frmRadarMap"/> <ComponentName Value="frmRadarMap"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="UfrmRadar.lrs"/>
<UnitName Value="UfrmRadar"/> <UnitName Value="UfrmRadar"/>
</Unit16> </Unit16>
<Unit17> <Unit17>
@ -173,7 +160,6 @@
<ComponentName Value="frmLargeScaleCommand"/> <ComponentName Value="frmLargeScaleCommand"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="UfrmLargeScaleCommand.lrs"/>
<UnitName Value="UfrmLargeScaleCommand"/> <UnitName Value="UfrmLargeScaleCommand"/>
</Unit17> </Unit17>
<Unit18> <Unit18>
@ -181,7 +167,6 @@
<ComponentName Value="frmVirtualLayer"/> <ComponentName Value="frmVirtualLayer"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="Tools/UfrmVirtualLayer.lrs"/>
<UnitName Value="UfrmVirtualLayer"/> <UnitName Value="UfrmVirtualLayer"/>
</Unit18> </Unit18>
<Unit19> <Unit19>
@ -189,7 +174,6 @@
<ComponentName Value="frmFilter"/> <ComponentName Value="frmFilter"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="Tools/UfrmFilter.lrs"/>
<UnitName Value="UfrmFilter"/> <UnitName Value="UfrmFilter"/>
</Unit19> </Unit19>
<Unit20> <Unit20>
@ -197,7 +181,6 @@
<ComponentName Value="frmTileInfo"/> <ComponentName Value="frmTileInfo"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="UfrmTileInfo.lrs"/>
<UnitName Value="UfrmTileInfo"/> <UnitName Value="UfrmTileInfo"/>
</Unit20> </Unit20>
<Unit21> <Unit21>
@ -216,7 +199,6 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="UfrmRegionControl.lrs"/>
<UnitName Value="UfrmRegionControl"/> <UnitName Value="UfrmRegionControl"/>
</Unit23> </Unit23>
<Unit24> <Unit24>

View File

@ -81,6 +81,20 @@ object frmFilter: TfrmFilter
Header.Options = [hoColumnResize, hoDrag, hoVisible] Header.Options = [hoColumnResize, hoDrag, hoVisible]
Header.ParentFont = True Header.ParentFont = True
Header.Style = hsFlatButtons Header.Style = hsFlatButtons
Header.Columns = <
item
Text = 'ID'
end
item
Position = 1
Width = 44
Text = 'Tile'
end
item
Position = 2
Width = 100
Text = 'Name'
end>
ParentFont = True ParentFont = True
TabOrder = 0 TabOrder = 0
TreeOptions.PaintOptions = [toHideFocusRect, toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages] TreeOptions.PaintOptions = [toHideFocusRect, toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages]
@ -88,20 +102,6 @@ object frmFilter: TfrmFilter
OnDragOver = vdtFilterDragOver OnDragOver = vdtFilterDragOver
OnDragDrop = vdtFilterDragDrop OnDragDrop = vdtFilterDragDrop
OnDrawNode = vdtFilterDrawNode OnDrawNode = vdtFilterDrawNode
Columns = <
item
WideText = 'ID'
end
item
Position = 1
Width = 44
WideText = 'Tile'
end
item
Position = 2
Width = 100
WideText = 'Name'
end>
end end
object pnlControls: TPanel object pnlControls: TPanel
Left = 4 Left = 4
@ -262,6 +262,20 @@ object frmFilter: TfrmFilter
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible] Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible]
Header.ParentFont = True Header.ParentFont = True
Header.Style = hsFlatButtons Header.Style = hsFlatButtons
Header.Columns = <
item
Width = 20
end
item
Position = 1
Width = 38
Text = 'Hue'
end
item
Position = 2
Width = 158
Text = 'Name'
end>
ParentFont = True ParentFont = True
PopupMenu = pmHues PopupMenu = pmHues
TabOrder = 1 TabOrder = 1
@ -270,20 +284,6 @@ object frmFilter: TfrmFilter
TreeOptions.SelectionOptions = [toFullRowSelect] TreeOptions.SelectionOptions = [toFullRowSelect]
OnChecked = vdtHuesChecked OnChecked = vdtHuesChecked
OnDrawNode = vdtHuesDrawNode OnDrawNode = vdtHuesDrawNode
Columns = <
item
Width = 20
end
item
Position = 1
Width = 38
WideText = 'Hue'
end
item
Position = 2
Width = 158
WideText = 'Name'
end>
end end
end end
object Splitter1: TSplitter object Splitter1: TSplitter

View File

@ -15,12 +15,13 @@ object frmAccountControl: TfrmAccountControl
OnDestroy = FormDestroy OnDestroy = FormDestroy
OnShow = FormShow OnShow = FormShow
Position = poOwnerFormCenter Position = poOwnerFormCenter
LCLVersion = '0.9.25' LCLVersion = '0.9.27'
object tbMain: TToolBar object tbMain: TToolBar
Left = 0
Height = 26 Height = 26
Top = 0
Width = 369 Width = 369
Caption = 'tbMain' Caption = 'tbMain'
Flat = True
Images = ilToolbar Images = ilToolbar
TabOrder = 0 TabOrder = 0
object tbRefresh: TToolButton object tbRefresh: TToolButton
@ -72,16 +73,32 @@ object frmAccountControl: TfrmAccountControl
end end
end end
object vstAccounts: TVirtualStringTree object vstAccounts: TVirtualStringTree
Left = 0
Height = 352 Height = 352
Top = 26 Top = 26
Width = 369 Width = 369
Align = alClient Align = alClient
DefaultText = 'Node'
Header.AutoSizeIndex = 1 Header.AutoSizeIndex = 1
Header.Columns = <
item
Position = 0
Width = 30
end
item
Position = 1
Text = 'Username'
Width = 200
end
item
Position = 2
Text = 'Accesslevel'
Width = 100
end>
Header.Options = [hoColumnResize, hoDrag, hoVisible] Header.Options = [hoColumnResize, hoDrag, hoVisible]
Header.ParentFont = True Header.ParentFont = True
Header.Style = hsPlates Header.Style = hsPlates
Images = ilAccesslevel Images = ilAccesslevel
ParentFont = True
TabOrder = 1 TabOrder = 1
TreeOptions.AutoOptions = [toAutoScrollOnExpand, toAutoTristateTracking, toAutoDeleteMovedNodes] TreeOptions.AutoOptions = [toAutoScrollOnExpand, toAutoTristateTracking, toAutoDeleteMovedNodes]
TreeOptions.MiscOptions = [toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning] TreeOptions.MiscOptions = [toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning]
@ -91,22 +108,9 @@ object frmAccountControl: TfrmAccountControl
OnFreeNode = vstAccountsFreeNode OnFreeNode = vstAccountsFreeNode
OnGetText = vstAccountsGetText OnGetText = vstAccountsGetText
OnGetImageIndex = vstAccountsGetImageIndex OnGetImageIndex = vstAccountsGetImageIndex
Columns = <
item
Width = 30
end
item
Position = 1
Width = 200
WideText = 'Username'
end
item
Position = 2
Width = 100
WideText = 'Accesslevel'
end>
end end
object ilToolbar: TImageList object ilToolbar: TImageList
Masked = False
left = 144 left = 144
Bitmap = { Bitmap = {
4C69040000001000000010000000000000000000000000000000000000000000 4C69040000001000000010000000000000000000000000000000000000000000
@ -241,6 +245,7 @@ object frmAccountControl: TfrmAccountControl
} }
end end
object ilAccesslevel: TImageList object ilAccesslevel: TImageList
Masked = False
left = 176 left = 176
Bitmap = { Bitmap = {
4C69040000001000000010000000000000000000000000000000000000000000 4C69040000001000000010000000000000000000000000000000000000000000

View File

@ -61,7 +61,7 @@ type
Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex; Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
var Ghosted: Boolean; var ImageIndex: Integer); var Ghosted: Boolean; var ImageIndex: Integer);
procedure vstAccountsGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure vstAccountsGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); Column: TColumnIndex; TextType: TVSTTextType; var CellText: UTF8String);
protected protected
procedure OnModifyUserResponse(ABuffer: TEnhancedMemoryStream); procedure OnModifyUserResponse(ABuffer: TEnhancedMemoryStream);
procedure OnDeleteUserResponse(ABuffer: TEnhancedMemoryStream); procedure OnDeleteUserResponse(ABuffer: TEnhancedMemoryStream);
@ -279,14 +279,14 @@ end;
procedure TfrmAccountControl.vstAccountsGetText(Sender: TBaseVirtualTree; procedure TfrmAccountControl.vstAccountsGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
var var
accountInfo: PAccountInfo; accountInfo: PAccountInfo;
begin begin
accountInfo := Sender.GetNodeData(Node); accountInfo := Sender.GetNodeData(Node);
case Column of case Column of
1: CellText := accountInfo^.Username; 1: CellText := UTF8Encode(accountInfo^.Username);
2: CellText := GetAccessLevelString(accountInfo^.AccessLevel); 2: CellText := UTF8Encode(GetAccessLevelString(accountInfo^.AccessLevel));
else else
CellText := ''; CellText := '';
end; end;

View File

@ -15,28 +15,33 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
OnShow = FormShow OnShow = FormShow
Position = poOwnerFormCenter Position = poOwnerFormCenter
ShowInTaskBar = stAlways ShowInTaskBar = stAlways
LCLVersion = '0.9.25' LCLVersion = '0.9.27'
object nbActions: TNotebook object nbActions: TNotebook
Left = 152 Left = 152
Height = 364 Height = 364
Top = 0
Width = 468 Width = 468
Align = alClient Align = alClient
PageIndex = 4 PageIndex = 4
ParentFont = True
ShowTabs = False ShowTabs = False
TabOrder = 0 TabOrder = 0
object pgArea: TPage object pgArea: TPage
Caption = 'pgArea' Caption = 'pgArea'
ClientWidth = 464 ClientWidth = 462
ClientHeight = 335 ClientHeight = 331
ParentFont = True
object sbArea: TScrollBox object sbArea: TScrollBox
Height = 335 Left = 0
Width = 464 Height = 331
Top = 0
Width = 462
Align = alClient Align = alClient
ClientHeight = 327
ClientWidth = 458
TabOrder = 0 TabOrder = 0
object pbArea: TPaintBox object pbArea: TPaintBox
Left = 0
Height = 105 Height = 105
Top = 0
Width = 105 Width = 105
OnMouseDown = pbAreaMouseDown OnMouseDown = pbAreaMouseDown
OnMouseMove = pbAreaMouseMove OnMouseMove = pbAreaMouseMove
@ -46,9 +51,8 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
end end
object pgCopyMove: TPage object pgCopyMove: TPage
Caption = 'Copy/Move' Caption = 'Copy/Move'
ClientWidth = 464 ClientWidth = 462
ClientHeight = 335 ClientHeight = 331
ParentFont = True
object rgCMAction: TRadioGroup object rgCMAction: TRadioGroup
Left = 12 Left = 12
Height = 40 Height = 40
@ -64,15 +68,14 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
ChildSizing.ShrinkVertical = crsScaleChilds ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 2 ChildSizing.ControlsPerLine = 2
ClientHeight = 23 ClientHeight = 24
ClientWidth = 180 ClientWidth = 182
Columns = 2 Columns = 2
ItemIndex = 0 ItemIndex = 0
Items.Strings = ( Items.Strings = (
'Copy' 'Copy'
'Move' 'Move'
) )
ParentFont = True
TabOrder = 0 TabOrder = 0
end end
object gbCMOffset: TGroupBox object gbCMOffset: TGroupBox
@ -81,9 +84,8 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Top = 60 Top = 60
Width = 121 Width = 121
Caption = 'Offset' Caption = 'Offset'
ClientHeight = 64 ClientHeight = 65
ClientWidth = 117 ClientWidth = 119
ParentFont = True
TabOrder = 1 TabOrder = 1
object Label9: TLabel object Label9: TLabel
Left = 6 Left = 6
@ -92,7 +94,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Width = 12 Width = 12
Caption = 'X:' Caption = 'X:'
ParentColor = False ParentColor = False
ParentFont = True
end end
object Label10: TLabel object Label10: TLabel
Left = 6 Left = 6
@ -101,14 +102,12 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Width = 12 Width = 12
Caption = 'Y:' Caption = 'Y:'
ParentColor = False ParentColor = False
ParentFont = True
end end
object seCMOffsetX: TSpinEdit object seCMOffsetX: TSpinEdit
Left = 30 Left = 30
Height = 23 Height = 23
Top = 8 Top = 8
Width = 74 Width = 74
ParentFont = True
TabOrder = 0 TabOrder = 0
end end
object seCMOffsetY: TSpinEdit object seCMOffsetY: TSpinEdit
@ -116,7 +115,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Height = 23 Height = 23
Top = 34 Top = 34
Width = 74 Width = 74
ParentFont = True
TabOrder = 1 TabOrder = 1
end end
end end
@ -126,15 +124,13 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Top = 148 Top = 148
Width = 174 Width = 174
Caption = 'Erase target area (at offset)' Caption = 'Erase target area (at offset)'
ParentFont = True
TabOrder = 2 TabOrder = 2
end end
end end
object pgModifyAltitude: TPage object pgModifyAltitude: TPage
Caption = 'Modify altitude' Caption = 'Modify altitude'
ClientWidth = 464 ClientWidth = 462
ClientHeight = 335 ClientHeight = 331
ParentFont = True
object Label2: TLabel object Label2: TLabel
Left = 28 Left = 28
Height = 43 Height = 43
@ -143,7 +139,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Caption = 'The statics will be elevated according to the terrain change.' Caption = 'The statics will be elevated according to the terrain change.'
Enabled = False Enabled = False
ParentColor = False ParentColor = False
ParentFont = True
WordWrap = True WordWrap = True
end end
object Label3: TLabel object Label3: TLabel
@ -153,7 +148,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Width = 125 Width = 125
Caption = 'Set the altitude to a value from this range:' Caption = 'Set the altitude to a value from this range:'
ParentColor = False ParentColor = False
ParentFont = True
WordWrap = True WordWrap = True
end end
object Label4: TLabel object Label4: TLabel
@ -163,7 +157,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Width = 12 Width = 12
Caption = 'to' Caption = 'to'
ParentColor = False ParentColor = False
ParentFont = True
end end
object rbSetTerrainAltitude: TRadioButton object rbSetTerrainAltitude: TRadioButton
Left = 12 Left = 12
@ -172,7 +165,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Width = 124 Width = 124
Caption = 'Set terrain altitude' Caption = 'Set terrain altitude'
Checked = True Checked = True
ParentFont = True
State = cbChecked State = cbChecked
TabOrder = 0 TabOrder = 0
end end
@ -182,8 +174,8 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Top = 84 Top = 84
Width = 156 Width = 156
Caption = 'Relative altitude change' Caption = 'Relative altitude change'
ParentFont = True
TabOrder = 1 TabOrder = 1
TabStop = False
end end
object seTerrainAltitude1: TSpinEdit object seTerrainAltitude1: TSpinEdit
Left = 228 Left = 228
@ -192,7 +184,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Width = 50 Width = 50
MaxValue = 127 MaxValue = 127
MinValue = -128 MinValue = -128
ParentFont = True
TabOrder = 2 TabOrder = 2
end end
object seTerrainAltitude2: TSpinEdit object seTerrainAltitude2: TSpinEdit
@ -202,7 +193,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Width = 50 Width = 50
MaxValue = 127 MaxValue = 127
MinValue = -128 MinValue = -128
ParentFont = True
TabOrder = 3 TabOrder = 3
end end
object seRelativeAltitude: TSpinEdit object seRelativeAltitude: TSpinEdit
@ -212,47 +202,44 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Width = 50 Width = 50
MaxValue = 127 MaxValue = 127
MinValue = -128 MinValue = -128
ParentFont = True
TabOrder = 4 TabOrder = 4
end end
end end
object pgDrawTerrain: TPage object pgDrawTerrain: TPage
Caption = 'Draw Terrain' Caption = 'Draw Terrain'
ClientWidth = 464 ClientWidth = 462
ClientHeight = 335 ClientHeight = 331
ParentFont = True
object gbDrawTerrainTiles: TGroupBox object gbDrawTerrainTiles: TGroupBox
Left = 8 Left = 8
Height = 319 Height = 315
Top = 8 Top = 8
Width = 225 Width = 225
Align = alLeft Align = alLeft
BorderSpacing.Around = 8 BorderSpacing.Around = 8
Caption = 'Tiles' Caption = 'Tiles'
ClientHeight = 315 ClientHeight = 299
ClientWidth = 221 ClientWidth = 223
ParentFont = True
TabOrder = 0 TabOrder = 0
object lblDrawTerrainTilesDesc: TLabel object lblDrawTerrainTilesDesc: TLabel
Left = 4 Left = 4
Height = 58 Height = 58
Width = 213 Top = 0
Width = 215
Align = alTop Align = alTop
BorderSpacing.Left = 4 BorderSpacing.Left = 4
BorderSpacing.Right = 4 BorderSpacing.Right = 4
BorderSpacing.Bottom = 4 BorderSpacing.Bottom = 4
Caption = 'Drag terrain tiles from the main window and drop them on the list. For each cell in the target area, one of these (random) will be used.' Caption = 'Drag terrain tiles from the main window and drop them on the list. For each cell in the target area, one of these (random) will be used.'
ParentColor = False ParentColor = False
ParentFont = True
WordWrap = True WordWrap = True
end end
object vdtTerrainTiles: TVirtualDrawTree object vdtTerrainTiles: TVirtualDrawTree
Tag = 1 Tag = 1
Cursor = 63 Cursor = 63
Left = 4 Left = 4
Height = 223 Height = 207
Top = 62 Top = 62
Width = 213 Width = 215
Align = alClient Align = alClient
BorderSpacing.Left = 4 BorderSpacing.Left = 4
BorderSpacing.Right = 4 BorderSpacing.Right = 4
@ -260,10 +247,25 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
DefaultNodeHeight = 44 DefaultNodeHeight = 44
DragMode = dmAutomatic DragMode = dmAutomatic
DragType = dtVCL DragType = dtVCL
Header.AutoSizeIndex = 0
Header.Columns = <
item
Position = 0
Text = 'ID'
end
item
Position = 1
Text = 'Tile'
Width = 44
end
item
Position = 2
Text = 'Name'
Width = 100
end>
Header.Options = [hoColumnResize, hoDrag, hoVisible] Header.Options = [hoColumnResize, hoDrag, hoVisible]
Header.ParentFont = True Header.ParentFont = True
Header.Style = hsFlatButtons Header.Style = hsFlatButtons
ParentFont = True
TabOrder = 0 TabOrder = 0
TreeOptions.MiscOptions = [toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning, toFullRowDrag] TreeOptions.MiscOptions = [toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning, toFullRowDrag]
TreeOptions.PaintOptions = [toHideFocusRect, toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages] TreeOptions.PaintOptions = [toHideFocusRect, toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages]
@ -271,35 +273,22 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
OnDragOver = vdtTerrainTilesDragOver OnDragOver = vdtTerrainTilesDragOver
OnDragDrop = vdtTerrainTilesDragDrop OnDragDrop = vdtTerrainTilesDragDrop
OnDrawNode = vdtTerrainTilesDrawNode OnDrawNode = vdtTerrainTilesDrawNode
Columns = <
item
WideText = 'ID'
end
item
Position = 1
Width = 44
WideText = 'Tile'
end
item
Position = 2
Width = 100
WideText = 'Name'
end>
end end
object pnlDrawTerrainTilesControls: TPanel object pnlDrawTerrainTilesControls: TPanel
Left = 0
Height = 26 Height = 26
Top = 289 Top = 273
Width = 221 Width = 223
Align = alBottom Align = alBottom
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 26 ClientHeight = 26
ClientWidth = 221 ClientWidth = 223
ParentFont = True
TabOrder = 1 TabOrder = 1
object btnClearTerrain: TSpeedButton object btnClearTerrain: TSpeedButton
Left = 33 Left = 33
Height = 22 Height = 22
Hint = 'Clear' Hint = 'Clear'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -341,13 +330,13 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
NumGlyphs = 0 NumGlyphs = 0
OnClick = btnClearTerrainClick OnClick = btnClearTerrainClick
ShowHint = True ShowHint = True
ParentFont = True
ParentShowHint = False ParentShowHint = False
end end
object btnDeleteTerrain: TSpeedButton object btnDeleteTerrain: TSpeedButton
Left = 6 Left = 6
Height = 22 Height = 22
Hint = 'Delete' Hint = 'Delete'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -389,7 +378,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
NumGlyphs = 0 NumGlyphs = 0
OnClick = btnDeleteTerrainClick OnClick = btnDeleteTerrainClick
ShowHint = True ShowHint = True
ParentFont = True
ParentShowHint = False ParentShowHint = False
end end
end end
@ -397,41 +385,39 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
end end
object pgDeleteStatics: TPage object pgDeleteStatics: TPage
Caption = 'Delete statics' Caption = 'Delete statics'
ClientWidth = 464 ClientWidth = 462
ClientHeight = 360 ClientHeight = 358
ParentFont = True
object gbDeleteStaticsTiles: TGroupBox object gbDeleteStaticsTiles: TGroupBox
Left = 8 Left = 8
Height = 344 Height = 342
Top = 8 Top = 8
Width = 225 Width = 225
Align = alLeft Align = alLeft
BorderSpacing.Around = 8 BorderSpacing.Around = 8
Caption = 'Tiles' Caption = 'Tiles'
ClientHeight = 329 ClientHeight = 328
ClientWidth = 221 ClientWidth = 223
ParentFont = True
TabOrder = 0 TabOrder = 0
object lblDeleteStaticsTilesDesc: TLabel object lblDeleteStaticsTilesDesc: TLabel
Left = 4 Left = 4
Height = 78 Height = 78
Width = 213 Top = 0
Width = 215
Align = alTop Align = alTop
BorderSpacing.Left = 4 BorderSpacing.Left = 4
BorderSpacing.Right = 4 BorderSpacing.Right = 4
BorderSpacing.Bottom = 4 BorderSpacing.Bottom = 4
Caption = 'Drag statics tiles from the main window and drop them on the list. Only statics matching these tiles will be deleted. If the list is empty, every static will be deleted.' Caption = 'Drag statics tiles from the main window and drop them on the list. Only statics matching these tiles will be deleted. If the list is empty, every static will be deleted.'
ParentColor = False ParentColor = False
ParentFont = True
WordWrap = True WordWrap = True
end end
object vdtDeleteStaticsTiles: TVirtualDrawTree object vdtDeleteStaticsTiles: TVirtualDrawTree
Tag = 1 Tag = 1
Cursor = 63 Cursor = 63
Left = 4 Left = 4
Height = 217 Height = 216
Top = 82 Top = 82
Width = 213 Width = 215
Align = alClient Align = alClient
BorderSpacing.Left = 4 BorderSpacing.Left = 4
BorderSpacing.Right = 4 BorderSpacing.Right = 4
@ -439,10 +425,25 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
DefaultNodeHeight = 44 DefaultNodeHeight = 44
DragMode = dmAutomatic DragMode = dmAutomatic
DragType = dtVCL DragType = dtVCL
Header.AutoSizeIndex = 0
Header.Columns = <
item
Position = 0
Text = 'ID'
end
item
Position = 1
Text = 'Tile'
Width = 44
end
item
Position = 2
Text = 'Name'
Width = 100
end>
Header.Options = [hoColumnResize, hoDrag, hoVisible] Header.Options = [hoColumnResize, hoDrag, hoVisible]
Header.ParentFont = True Header.ParentFont = True
Header.Style = hsFlatButtons Header.Style = hsFlatButtons
ParentFont = True
TabOrder = 0 TabOrder = 0
TreeOptions.MiscOptions = [toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning, toFullRowDrag] TreeOptions.MiscOptions = [toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning, toFullRowDrag]
TreeOptions.PaintOptions = [toHideFocusRect, toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages] TreeOptions.PaintOptions = [toHideFocusRect, toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages]
@ -450,35 +451,22 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
OnDragOver = vdtTerrainTilesDragOver OnDragOver = vdtTerrainTilesDragOver
OnDragDrop = vdtTerrainTilesDragDrop OnDragDrop = vdtTerrainTilesDragDrop
OnDrawNode = vdtTerrainTilesDrawNode OnDrawNode = vdtTerrainTilesDrawNode
Columns = <
item
WideText = 'ID'
end
item
Position = 1
Width = 44
WideText = 'Tile'
end
item
Position = 2
Width = 100
WideText = 'Name'
end>
end end
object pnlDrawTerrainTilesControls2: TPanel object pnlDrawTerrainTilesControls2: TPanel
Left = 0
Height = 26 Height = 26
Top = 303 Top = 302
Width = 221 Width = 223
Align = alBottom Align = alBottom
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 26 ClientHeight = 26
ClientWidth = 221 ClientWidth = 223
ParentFont = True
TabOrder = 1 TabOrder = 1
object btnClearDStaticsTiles: TSpeedButton object btnClearDStaticsTiles: TSpeedButton
Left = 33 Left = 33
Height = 22 Height = 22
Hint = 'Clear' Hint = 'Clear'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -520,13 +508,13 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
NumGlyphs = 0 NumGlyphs = 0
OnClick = btnClearDStaticsTilesClick OnClick = btnClearDStaticsTilesClick
ShowHint = True ShowHint = True
ParentFont = True
ParentShowHint = False ParentShowHint = False
end end
object btnDeleteDStaticsTiles: TSpeedButton object btnDeleteDStaticsTiles: TSpeedButton
Left = 6 Left = 6
Height = 22 Height = 22
Hint = 'Delete' Hint = 'Delete'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -568,7 +556,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
NumGlyphs = 0 NumGlyphs = 0
OnClick = btnDeleteDStaticsTilesClick OnClick = btnDeleteDStaticsTilesClick
ShowHint = True ShowHint = True
ParentFont = True
ParentShowHint = False ParentShowHint = False
end end
end end
@ -579,31 +566,29 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Top = 8 Top = 8
Width = 185 Width = 185
Caption = 'Z Boundaries' Caption = 'Z Boundaries'
ClientHeight = 77 ClientHeight = 78
ClientWidth = 181 ClientWidth = 183
ParentFont = True
TabOrder = 1 TabOrder = 1
object Label7: TLabel object Label7: TLabel
Left = 4 Left = 4
Height = 30 Height = 30
Width = 173 Top = 0
Width = 175
Align = alTop Align = alTop
BorderSpacing.Left = 4 BorderSpacing.Left = 4
BorderSpacing.Right = 4 BorderSpacing.Right = 4
BorderSpacing.Bottom = 4 BorderSpacing.Bottom = 4
Caption = 'Only statics within this Z range will be deleted.' Caption = 'Only statics within this Z range will be deleted.'
ParentColor = False ParentColor = False
ParentFont = True
WordWrap = True WordWrap = True
end end
object Label8: TLabel object Label8: TLabel
Left = 64 Left = 64
Height = 14 Height = 14
Top = 42 Top = 42
Width = 12 Width = 11
Caption = 'to' Caption = 'to'
ParentColor = False ParentColor = False
ParentFont = True
end end
object seDeleteStaticsZ1: TSpinEdit object seDeleteStaticsZ1: TSpinEdit
Left = 4 Left = 4
@ -612,7 +597,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Width = 50 Width = 50
MaxValue = 127 MaxValue = 127
MinValue = -128 MinValue = -128
ParentFont = True
TabOrder = 0 TabOrder = 0
Value = -128 Value = -128
end end
@ -623,7 +607,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Width = 50 Width = 50
MaxValue = 127 MaxValue = 127
MinValue = -128 MinValue = -128
ParentFont = True
TabOrder = 1 TabOrder = 1
Value = 127 Value = 127
end end
@ -631,40 +614,38 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
end end
object pgInsertStatics: TPage object pgInsertStatics: TPage
Caption = 'Insert statics' Caption = 'Insert statics'
ClientWidth = 464 ClientWidth = 462
ClientHeight = 335 ClientHeight = 331
ParentFont = True
object gbInserStaticsTiles: TGroupBox object gbInserStaticsTiles: TGroupBox
Left = 8 Left = 8
Height = 319 Height = 315
Top = 8 Top = 8
Width = 225 Width = 225
Align = alLeft Align = alLeft
BorderSpacing.Around = 8 BorderSpacing.Around = 8
Caption = 'Tiles' Caption = 'Tiles'
ClientHeight = 315 ClientHeight = 299
ClientWidth = 221 ClientWidth = 223
ParentFont = True
TabOrder = 0 TabOrder = 0
object lblInsertStaticsTiles: TLabel object lblInsertStaticsTiles: TLabel
Left = 4 Left = 4
Height = 58 Height = 58
Width = 213 Top = 0
Width = 215
Align = alTop Align = alTop
BorderSpacing.Left = 4 BorderSpacing.Left = 4
BorderSpacing.Right = 4 BorderSpacing.Right = 4
BorderSpacing.Bottom = 4 BorderSpacing.Bottom = 4
Caption = 'Drag statics tiles from the main window and drop them on the list. For each cell in the target area, one of these (random) will be used.' Caption = 'Drag statics tiles from the main window and drop them on the list. For each cell in the target area, one of these (random) will be used.'
ParentColor = False ParentColor = False
ParentFont = True
WordWrap = True WordWrap = True
end end
object vdtInsertStaticsTiles: TVirtualDrawTree object vdtInsertStaticsTiles: TVirtualDrawTree
Tag = 1 Tag = 1
Left = 4 Left = 4
Height = 223 Height = 207
Top = 62 Top = 62
Width = 213 Width = 215
Align = alClient Align = alClient
BorderSpacing.Left = 4 BorderSpacing.Left = 4
BorderSpacing.Right = 4 BorderSpacing.Right = 4
@ -672,10 +653,25 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
DefaultNodeHeight = 44 DefaultNodeHeight = 44
DragMode = dmAutomatic DragMode = dmAutomatic
DragType = dtVCL DragType = dtVCL
Header.AutoSizeIndex = 0
Header.Columns = <
item
Position = 0
Text = 'ID'
end
item
Position = 1
Text = 'Tile'
Width = 44
end
item
Position = 2
Text = 'Name'
Width = 100
end>
Header.Options = [hoColumnResize, hoDrag, hoVisible] Header.Options = [hoColumnResize, hoDrag, hoVisible]
Header.ParentFont = True Header.ParentFont = True
Header.Style = hsFlatButtons Header.Style = hsFlatButtons
ParentFont = True
TabOrder = 0 TabOrder = 0
TreeOptions.MiscOptions = [toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning, toFullRowDrag] TreeOptions.MiscOptions = [toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning, toFullRowDrag]
TreeOptions.PaintOptions = [toHideFocusRect, toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages] TreeOptions.PaintOptions = [toHideFocusRect, toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages]
@ -683,35 +679,22 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
OnDragOver = vdtTerrainTilesDragOver OnDragOver = vdtTerrainTilesDragOver
OnDragDrop = vdtTerrainTilesDragDrop OnDragDrop = vdtTerrainTilesDragDrop
OnDrawNode = vdtTerrainTilesDrawNode OnDrawNode = vdtTerrainTilesDrawNode
Columns = <
item
WideText = 'ID'
end
item
Position = 1
Width = 44
WideText = 'Tile'
end
item
Position = 2
Width = 100
WideText = 'Name'
end>
end end
object pnlDrawTerrainTilesControls1: TPanel object pnlDrawTerrainTilesControls1: TPanel
Left = 0
Height = 26 Height = 26
Top = 289 Top = 273
Width = 221 Width = 223
Align = alBottom Align = alBottom
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 26 ClientHeight = 26
ClientWidth = 221 ClientWidth = 223
ParentFont = True
TabOrder = 1 TabOrder = 1
object btnClearIStaticsTiles: TSpeedButton object btnClearIStaticsTiles: TSpeedButton
Left = 33 Left = 33
Height = 22 Height = 22
Hint = 'Clear' Hint = 'Clear'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -753,13 +736,13 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
NumGlyphs = 0 NumGlyphs = 0
OnClick = btnClearIStaticsTilesClick OnClick = btnClearIStaticsTilesClick
ShowHint = True ShowHint = True
ParentFont = True
ParentShowHint = False ParentShowHint = False
end end
object btnDeleteIStaticsTiles: TSpeedButton object btnDeleteIStaticsTiles: TSpeedButton
Left = 6 Left = 6
Height = 22 Height = 22
Hint = 'Delete' Hint = 'Delete'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -801,7 +784,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
NumGlyphs = 0 NumGlyphs = 0
OnClick = btnDeleteIStaticsTilesClick OnClick = btnDeleteIStaticsTilesClick
ShowHint = True ShowHint = True
ParentFont = True
ParentShowHint = False ParentShowHint = False
end end
end end
@ -812,21 +794,20 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Top = 8 Top = 8
Width = 185 Width = 185
Caption = 'Probability' Caption = 'Probability'
ClientHeight = 67 ClientHeight = 68
ClientWidth = 181 ClientWidth = 183
ParentFont = True
TabOrder = 1 TabOrder = 1
object Label5: TLabel object Label5: TLabel
Left = 4 Left = 4
Height = 28 Height = 28
Width = 173 Top = 0
Width = 175
Align = alTop Align = alTop
BorderSpacing.Left = 4 BorderSpacing.Left = 4
BorderSpacing.Right = 4 BorderSpacing.Right = 4
BorderSpacing.Bottom = 4 BorderSpacing.Bottom = 4
Caption = 'A tile will only be placed with this probability:' Caption = 'A tile will only be placed with this probability:'
ParentColor = False ParentColor = False
ParentFont = True
WordWrap = True WordWrap = True
end end
object Label6: TLabel object Label6: TLabel
@ -836,14 +817,12 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Width = 11 Width = 11
Caption = '%' Caption = '%'
ParentColor = False ParentColor = False
ParentFont = True
end end
object seStaticsProbability: TSpinEdit object seStaticsProbability: TSpinEdit
Left = 4 Left = 4
Height = 23 Height = 23
Top = 36 Top = 36
Width = 50 Width = 50
ParentFont = True
TabOrder = 0 TabOrder = 0
Value = 100 Value = 100
end end
@ -854,9 +833,8 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Top = 100 Top = 100
Width = 185 Width = 185
Caption = 'Z Placement' Caption = 'Z Placement'
ClientHeight = 103 ClientHeight = 104
ClientWidth = 181 ClientWidth = 183
ParentFont = True
TabOrder = 2 TabOrder = 2
object rbPlaceStaticsOnTerrain: TRadioButton object rbPlaceStaticsOnTerrain: TRadioButton
Left = 4 Left = 4
@ -865,7 +843,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Width = 140 Width = 140
Caption = 'Place tiles on terrain' Caption = 'Place tiles on terrain'
Checked = True Checked = True
ParentFont = True
State = cbChecked State = cbChecked
TabOrder = 0 TabOrder = 0
end end
@ -875,8 +852,8 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Top = 27 Top = 27
Width = 120 Width = 120
Caption = 'Place tiles on top' Caption = 'Place tiles on top'
ParentFont = True
TabOrder = 1 TabOrder = 1
TabStop = False
end end
object rbPlaceStaticsOnZ: TRadioButton object rbPlaceStaticsOnZ: TRadioButton
Left = 4 Left = 4
@ -884,28 +861,28 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Top = 51 Top = 51
Width = 103 Width = 103
Caption = 'Place tiles on:' Caption = 'Place tiles on:'
ParentFont = True
TabOrder = 2 TabOrder = 2
TabStop = False
end end
object seInsertStaticsZ: TSpinEdit object seInsertStaticsZ: TSpinEdit
Left = 24 Left = 24
Height = 23 Height = 23
Top = 75 Top = 75
Width = 50 Width = 50
ParentFont = True
TabOrder = 3 TabOrder = 3
end end
end end
end end
end end
object pnlLeft: TPanel object pnlLeft: TPanel
Left = 0
Height = 364 Height = 364
Top = 0
Width = 152 Width = 152
Align = alLeft Align = alLeft
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 364 ClientHeight = 364
ClientWidth = 152 ClientWidth = 152
ParentFont = True
TabOrder = 1 TabOrder = 1
object Label1: TLabel object Label1: TLabel
Left = 4 Left = 4
@ -917,16 +894,24 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
BorderSpacing.Right = 4 BorderSpacing.Right = 4
Caption = 'Area:' Caption = 'Area:'
ParentColor = False ParentColor = False
ParentFont = True
end end
object vstActions: TVirtualStringTree object vstActions: TVirtualStringTree
Left = 0
Height = 136 Height = 136
Top = 0
Width = 152 Width = 152
Align = alTop Align = alTop
DefaultText = 'Node'
Header.AutoSizeIndex = 0
Header.Columns = <
item
Position = 0
Text = 'Actions'
Width = 152
end>
Header.Options = [hoAutoResize, hoVisible] Header.Options = [hoAutoResize, hoVisible]
Header.ParentFont = True Header.ParentFont = True
Header.Style = hsFlatButtons Header.Style = hsFlatButtons
ParentFont = True
TabOrder = 0 TabOrder = 0
TreeOptions.MiscOptions = [toCheckSupport, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning] TreeOptions.MiscOptions = [toCheckSupport, toFullRepaintOnResize, toInitOnSave, toToggleOnDblClick, toWheelPanning]
TreeOptions.PaintOptions = [toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages] TreeOptions.PaintOptions = [toShowButtons, toShowDropmark, toThemeAware, toUseBlendedImages]
@ -934,11 +919,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
OnChange = vstActionsChange OnChange = vstActionsChange
OnGetText = vstActionsGetText OnGetText = vstActionsGetText
OnPaintText = vstActionsPaintText OnPaintText = vstActionsPaintText
Columns = <
item
Width = 152
WideText = 'Actions'
end>
end end
object pnlAreaControls: TPanel object pnlAreaControls: TPanel
Left = 4 Left = 4
@ -950,7 +930,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 82 ClientHeight = 82
ClientWidth = 144 ClientWidth = 144
ParentFont = True
TabOrder = 1 TabOrder = 1
object lblX: TLabel object lblX: TLabel
Left = 4 Left = 4
@ -960,7 +939,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Caption = 'X' Caption = 'X'
Enabled = False Enabled = False
ParentColor = False ParentColor = False
ParentFont = True
end end
object lblY: TLabel object lblY: TLabel
Left = 4 Left = 4
@ -970,12 +948,12 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Caption = 'Y' Caption = 'Y'
Enabled = False Enabled = False
ParentColor = False ParentColor = False
ParentFont = True
end end
object btnAddArea: TSpeedButton object btnAddArea: TSpeedButton
Left = 30 Left = 30
Height = 22 Height = 22
Hint = 'Add area' Hint = 'Add area'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -1017,13 +995,13 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
NumGlyphs = 0 NumGlyphs = 0
OnClick = btnAddAreaClick OnClick = btnAddAreaClick
ShowHint = True ShowHint = True
ParentFont = True
ParentShowHint = False ParentShowHint = False
end end
object btnDeleteArea: TSpeedButton object btnDeleteArea: TSpeedButton
Left = 59 Left = 59
Height = 22 Height = 22
Hint = 'Delete area' Hint = 'Delete area'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -1065,13 +1043,13 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
NumGlyphs = 0 NumGlyphs = 0
OnClick = btnDeleteAreaClick OnClick = btnDeleteAreaClick
ShowHint = True ShowHint = True
ParentFont = True
ParentShowHint = False ParentShowHint = False
end end
object btnClearArea: TSpeedButton object btnClearArea: TSpeedButton
Left = 87 Left = 87
Height = 22 Height = 22
Hint = 'Delete all areas' Hint = 'Delete all areas'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -1113,7 +1091,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
NumGlyphs = 0 NumGlyphs = 0
OnClick = btnClearAreaClick OnClick = btnClearAreaClick
ShowHint = True ShowHint = True
ParentFont = True
ParentShowHint = False ParentShowHint = False
end end
object seX1: TSpinEdit object seX1: TSpinEdit
@ -1123,7 +1100,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Width = 50 Width = 50
Enabled = False Enabled = False
OnChange = seX1Change OnChange = seX1Change
ParentFont = True
TabOrder = 0 TabOrder = 0
end end
object seX2: TSpinEdit object seX2: TSpinEdit
@ -1133,7 +1109,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Width = 50 Width = 50
Enabled = False Enabled = False
OnChange = seX1Change OnChange = seX1Change
ParentFont = True
TabOrder = 1 TabOrder = 1
end end
object seY1: TSpinEdit object seY1: TSpinEdit
@ -1143,7 +1118,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Width = 50 Width = 50
Enabled = False Enabled = False
OnChange = seX1Change OnChange = seX1Change
ParentFont = True
TabOrder = 2 TabOrder = 2
end end
object seY2: TSpinEdit object seY2: TSpinEdit
@ -1153,7 +1127,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
Width = 50 Width = 50
Enabled = False Enabled = False
OnChange = seX1Change OnChange = seX1Change
ParentFont = True
TabOrder = 3 TabOrder = 3
end end
end end
@ -1167,6 +1140,9 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
BorderSpacing.Right = 4 BorderSpacing.Right = 4
BorderSpacing.Bottom = 4 BorderSpacing.Bottom = 4
BorderStyle = bsSingle BorderStyle = bsSingle
DefaultText = 'Node'
Header.AutoSizeIndex = 0
Header.Columns = <>
Header.MainColumn = -1 Header.MainColumn = -1
Header.Options = [hoColumnResize, hoDrag] Header.Options = [hoColumnResize, hoDrag]
TabOrder = 2 TabOrder = 2
@ -1174,7 +1150,6 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
TreeOptions.SelectionOptions = [toFullRowSelect] TreeOptions.SelectionOptions = [toFullRowSelect]
OnChange = vstAreaChange OnChange = vstAreaChange
OnGetText = vstAreaGetText OnGetText = vstAreaGetText
Columns = <>
end end
end end
object pnlControls: TPanel object pnlControls: TPanel
@ -1187,30 +1162,29 @@ object frmLargeScaleCommand: TfrmLargeScaleCommand
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 25 ClientHeight = 25
ClientWidth = 612 ClientWidth = 612
ParentFont = True
TabOrder = 2 TabOrder = 2
object btnExecute: TButton object btnExecute: TButton
Left = 480 Left = 480
Height = 25 Height = 25
Top = 0
Width = 64 Width = 64
Align = alRight Align = alRight
BorderSpacing.Right = 4 BorderSpacing.Right = 4
BorderSpacing.InnerBorder = 4 BorderSpacing.InnerBorder = 4
Caption = 'Execute' Caption = 'Execute'
OnClick = btnExecuteClick OnClick = btnExecuteClick
ParentFont = True
TabOrder = 0 TabOrder = 0
end end
object btnClose: TButton object btnClose: TButton
Left = 548 Left = 548
Height = 25 Height = 25
Top = 0
Width = 64 Width = 64
Align = alRight Align = alRight
BorderSpacing.Left = 4 BorderSpacing.Left = 4
BorderSpacing.InnerBorder = 4 BorderSpacing.InnerBorder = 4
Caption = 'Close' Caption = 'Close'
OnClick = btnCloseClick OnClick = btnCloseClick
ParentFont = True
TabOrder = 1 TabOrder = 1
end end
end end

View File

@ -146,18 +146,18 @@ type
procedure vstActionsChange(Sender: TBaseVirtualTree; Node: PVirtualNode); procedure vstActionsChange(Sender: TBaseVirtualTree; Node: PVirtualNode);
procedure vstActionsGetText(Sender: TBaseVirtualTree; procedure vstActionsGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
procedure vstActionsPaintText(Sender: TBaseVirtualTree; procedure vstActionsPaintText(Sender: TBaseVirtualTree;
const TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex; const TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
TextType: TVSTTextType); TextType: TVSTTextType);
procedure vstAreaChange(Sender: TBaseVirtualTree; Node: PVirtualNode); procedure vstAreaChange(Sender: TBaseVirtualTree; Node: PVirtualNode);
procedure vstAreaGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure vstAreaGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); Column: TColumnIndex; TextType: TVSTTextType; var CellText: UTF8String);
protected protected
FLastX: Integer; FLastX: Integer;
FLastY: Integer; FLastY: Integer;
FAreaMove: TAreaMove; FAreaMove: TAreaMove;
procedure AddNode(AActionID: Integer; ACaption: string); procedure AddNode(AActionID: Integer; ACaption: UTF8String);
function FindNode(AActionID: Integer): PVirtualNode; function FindNode(AActionID: Integer): PVirtualNode;
procedure SerializeTiles(ATileList: TVirtualDrawTree; procedure SerializeTiles(ATileList: TVirtualDrawTree;
AStream: TEnhancedMemoryStream); AStream: TEnhancedMemoryStream);
@ -178,7 +178,7 @@ type
PNodeInfo = ^TNodeInfo; PNodeInfo = ^TNodeInfo;
TNodeInfo = record TNodeInfo = record
ActionID: Integer; ActionID: Integer;
Caption: string; Caption: UTF8String;
end; end;
PTileInfo = ^TTileInfo; PTileInfo = ^TTileInfo;
TTileInfo = record TTileInfo = record
@ -569,7 +569,7 @@ end;
procedure TfrmLargeScaleCommand.vstActionsGetText( procedure TfrmLargeScaleCommand.vstActionsGetText(
Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
TextType: TVSTTextType; var CellText: WideString); TextType: TVSTTextType; var CellText: UTF8String);
var var
nodeInfo: PNodeInfo; nodeInfo: PNodeInfo;
begin begin
@ -612,7 +612,7 @@ end;
procedure TfrmLargeScaleCommand.vstAreaGetText(Sender: TBaseVirtualTree; procedure TfrmLargeScaleCommand.vstAreaGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
var var
nodeInfo: ^TRect; nodeInfo: ^TRect;
begin begin
@ -621,7 +621,7 @@ begin
nodeInfo^.Right, nodeInfo^.Bottom]); nodeInfo^.Right, nodeInfo^.Bottom]);
end; end;
procedure TfrmLargeScaleCommand.AddNode(AActionID: Integer; ACaption: string); procedure TfrmLargeScaleCommand.AddNode(AActionID: Integer; ACaption: UTF8String);
var var
node: PVirtualNode; node: PVirtualNode;
nodeInfo: PNodeInfo; nodeInfo: PNodeInfo;

View File

@ -1,7 +1,7 @@
object frmMain: TfrmMain object frmMain: TfrmMain
Left = 263 Left = 247
Height = 603 Height = 603
Top = 144 Top = 91
Width = 766 Width = 766
ActiveControl = pcLeft ActiveControl = pcLeft
Caption = 'UO CentrED' Caption = 'UO CentrED'
@ -15,12 +15,12 @@ object frmMain: TfrmMain
OnClose = FormClose OnClose = FormClose
OnCreate = FormCreate OnCreate = FormCreate
OnDestroy = FormDestroy OnDestroy = FormDestroy
ParentFont = False
Position = poScreenCenter Position = poScreenCenter
ShowInTaskBar = stAlways ShowInTaskBar = stAlways
LCLVersion = '0.9.27' LCLVersion = '0.9.27'
WindowState = wsMaximized WindowState = wsMaximized
object pnlBottom: TPanel object pnlBottom: TPanel
Left = 0
Height = 31 Height = 31
Top = 549 Top = 549
Width = 766 Width = 766
@ -56,6 +56,7 @@ object frmMain: TfrmMain
object lblTip: TLabel object lblTip: TLabel
Left = 554 Left = 554
Height = 31 Height = 31
Top = 0
Width = 204 Width = 204
Align = alRight Align = alRight
Alignment = taRightJustify Alignment = taRightJustify
@ -67,6 +68,7 @@ object frmMain: TfrmMain
object lblTipC: TLabel object lblTipC: TLabel
Left = 530 Left = 530
Height = 31 Height = 31
Top = 0
Width = 24 Width = 24
Align = alRight Align = alRight
Caption = 'Tip: ' Caption = 'Tip: '
@ -104,6 +106,7 @@ object frmMain: TfrmMain
end end
end end
object pcLeft: TPageControl object pcLeft: TPageControl
Left = 0
Height = 525 Height = 525
Top = 24 Top = 24
Width = 224 Width = 224
@ -113,29 +116,31 @@ object frmMain: TfrmMain
TabOrder = 1 TabOrder = 1
object tsTiles: TTabSheet object tsTiles: TTabSheet
Caption = 'Tiles' Caption = 'Tiles'
ClientHeight = 500 ClientHeight = 492
ClientWidth = 222 ClientWidth = 218
object pnlTileListSettings: TPanel object pnlTileListSettings: TPanel
Left = 0
Height = 56 Height = 56
Width = 222 Top = 0
Width = 218
Align = alTop Align = alTop
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 56 ClientHeight = 56
ClientWidth = 222 ClientWidth = 218
TabOrder = 0 TabOrder = 0
object lblFilter: TLabel object lblFilter: TLabel
Left = 84 Left = 84
Height = 14 Height = 14
Top = 8 Top = 8
Width = 30 Width = 29
Caption = 'Filter:' Caption = 'Filter:'
ParentColor = False ParentColor = False
end end
object cbTerrain: TCheckBox object cbTerrain: TCheckBox
Left = 4 Left = 4
Height = 18 Height = 22
Top = 8 Top = 8
Width = 57 Width = 60
Caption = 'Terrain' Caption = 'Terrain'
Checked = True Checked = True
OnChange = cbTerrainChange OnChange = cbTerrainChange
@ -144,9 +149,9 @@ object frmMain: TfrmMain
end end
object cbStatics: TCheckBox object cbStatics: TCheckBox
Left = 4 Left = 4
Height = 18 Height = 22
Top = 32 Top = 32
Width = 56 Width = 60
Caption = 'Statics' Caption = 'Statics'
Checked = True Checked = True
OnChange = cbStaticsChange OnChange = cbStaticsChange
@ -164,14 +169,30 @@ object frmMain: TfrmMain
end end
object vdtTiles: TVirtualDrawTree object vdtTiles: TVirtualDrawTree
Tag = 1 Tag = 1
Height = 246 Left = 0
Height = 238
Top = 56 Top = 56
Width = 222 Width = 218
Align = alClient Align = alClient
DefaultNodeHeight = 44 DefaultNodeHeight = 44
DragMode = dmAutomatic DragMode = dmAutomatic
DragType = dtVCL DragType = dtVCL
Header.AutoSizeIndex = 2 Header.AutoSizeIndex = 2
Header.Columns = <
item
Position = 0
Text = 'ID'
end
item
Position = 1
Text = 'Tile'
Width = 44
end
item
Position = 2
Text = 'Name'
Width = 100
end>
Header.MainColumn = 2 Header.MainColumn = 2
Header.Options = [hoVisible] Header.Options = [hoVisible]
Header.ParentFont = True Header.ParentFont = True
@ -190,39 +211,43 @@ object frmMain: TfrmMain
OnKeyPress = vdtTilesKeyPress OnKeyPress = vdtTilesKeyPress
OnMouseMove = vdtTilesMouseMove OnMouseMove = vdtTilesMouseMove
OnScroll = vdtTilesScroll OnScroll = vdtTilesScroll
Columns = <
item
WideText = 'ID'
end
item
Position = 1
Width = 44
WideText = 'Tile'
end
item
Position = 2
Width = 100
WideText = 'Name'
end>
end end
object gbRandom: TGroupBox object gbRandom: TGroupBox
Left = 0
Height = 193 Height = 193
Top = 307 Top = 299
Width = 222 Width = 218
Align = alBottom Align = alBottom
Caption = 'Random pool' Caption = 'Random pool'
ClientHeight = 179 ClientHeight = 179
ClientWidth = 220 ClientWidth = 216
TabOrder = 2 TabOrder = 2
object vdtRandom: TVirtualDrawTree object vdtRandom: TVirtualDrawTree
Tag = 1 Tag = 1
Cursor = 63 Cursor = 63
Left = 0
Height = 127 Height = 127
Top = 22 Top = 22
Width = 220 Width = 216
Align = alClient Align = alClient
DefaultNodeHeight = 44 DefaultNodeHeight = 44
DragType = dtVCL DragType = dtVCL
Header.AutoSizeIndex = 0
Header.Columns = <
item
Position = 0
Text = 'ID'
end
item
Position = 1
Text = 'Tile'
Width = 44
end
item
Position = 2
Text = 'Name'
Width = 100
end>
Header.Options = [hoColumnResize, hoDrag, hoVisible] Header.Options = [hoColumnResize, hoDrag, hoVisible]
Header.ParentFont = True Header.ParentFont = True
Header.Style = hsFlatButtons Header.Style = hsFlatButtons
@ -235,33 +260,22 @@ object frmMain: TfrmMain
OnLoadNode = vdtRandomLoadNode OnLoadNode = vdtRandomLoadNode
OnSaveNode = vdtRandomSaveNode OnSaveNode = vdtRandomSaveNode
OnUpdating = vdtRandomUpdating OnUpdating = vdtRandomUpdating
Columns = <
item
WideText = 'ID'
end
item
Position = 1
Width = 44
WideText = 'Tile'
end
item
Position = 2
Width = 100
WideText = 'Name'
end>
end end
object pnlRandomControl: TPanel object pnlRandomControl: TPanel
Left = 0
Height = 22 Height = 22
Width = 220 Top = 0
Width = 216
Align = alTop Align = alTop
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 22 ClientHeight = 22
ClientWidth = 220 ClientWidth = 216
TabOrder = 1 TabOrder = 1
object btnAddRandom: TSpeedButton object btnAddRandom: TSpeedButton
Left = 2 Left = 2
Height = 22 Height = 22
Hint = 'Add' Hint = 'Add'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -309,6 +323,7 @@ object frmMain: TfrmMain
Left = 26 Left = 26
Height = 22 Height = 22
Hint = 'Delete' Hint = 'Delete'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -356,6 +371,7 @@ object frmMain: TfrmMain
Left = 50 Left = 50
Height = 22 Height = 22
Hint = 'Clear' Hint = 'Clear'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -404,17 +420,18 @@ object frmMain: TfrmMain
Left = 4 Left = 4
Height = 22 Height = 22
Top = 153 Top = 153
Width = 212 Width = 208
Align = alBottom Align = alBottom
BorderSpacing.Around = 4 BorderSpacing.Around = 4
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 22 ClientHeight = 22
ClientWidth = 212 ClientWidth = 208
TabOrder = 2 TabOrder = 2
object btnRandomPresetSave: TSpeedButton object btnRandomPresetSave: TSpeedButton
Left = 158 Left = 158
Height = 22 Height = 22
Hint = 'Save Preset' Hint = 'Save Preset'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -463,6 +480,7 @@ object frmMain: TfrmMain
Left = 182 Left = 182
Height = 22 Height = 22
Hint = 'Delete Preset' Hint = 'Delete Preset'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -508,9 +526,13 @@ object frmMain: TfrmMain
ParentShowHint = False ParentShowHint = False
end end
object cbRandomPreset: TComboBox object cbRandomPreset: TComboBox
Height = 25 Left = 0
Height = 29
Top = 0
Width = 152 Width = 152
MaxLength = -1 AutoComplete = False
ItemHeight = 0
ItemWidth = 0
OnChange = cbRandomPresetChange OnChange = cbRandomPresetChange
Style = csDropDownList Style = csDropDownList
TabOrder = 0 TabOrder = 0
@ -519,9 +541,10 @@ object frmMain: TfrmMain
end end
object spTileList: TSplitter object spTileList: TSplitter
Cursor = crVSplit Cursor = crVSplit
Left = 0
Height = 5 Height = 5
Top = 302 Top = 294
Width = 222 Width = 218
Align = alBottom Align = alBottom
ResizeAnchor = akBottom ResizeAnchor = akBottom
end end
@ -542,12 +565,15 @@ object frmMain: TfrmMain
end end
object tsClients: TTabSheet object tsClients: TTabSheet
Caption = 'Clients' Caption = 'Clients'
ClientHeight = 500 ClientHeight = 492
ClientWidth = 222 ClientWidth = 218
object lbClients: TListBox object lbClients: TListBox
Height = 500 Left = 0
Width = 222 Height = 492
Top = 0
Width = 218
Align = alClient Align = alClient
ItemHeight = 0
OnDblClick = mnuGoToClientClick OnDblClick = mnuGoToClientClick
PopupMenu = pmClients PopupMenu = pmClients
Sorted = True Sorted = True
@ -557,18 +583,30 @@ object frmMain: TfrmMain
end end
object tsLocations: TTabSheet object tsLocations: TTabSheet
Caption = 'Locations' Caption = 'Locations'
ClientHeight = 500 ClientHeight = 492
ClientWidth = 222 ClientWidth = 218
object vstLocations: TVirtualStringTree object vstLocations: TVirtualStringTree
Cursor = 63 Cursor = 63
Left = 4 Left = 4
Height = 464 Height = 456
Top = 4 Top = 4
Width = 214 Width = 210
Align = alClient Align = alClient
BorderSpacing.Around = 4 BorderSpacing.Around = 4
BorderStyle = bsSingle BorderStyle = bsSingle
DefaultText = 'Node'
Header.AutoSizeIndex = 1 Header.AutoSizeIndex = 1
Header.Columns = <
item
Position = 0
Text = 'Coords'
Width = 75
end
item
Position = 1
Text = 'Name'
Width = 135
end>
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible] Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible]
Header.ParentFont = True Header.ParentFont = True
Header.Style = hsFlatButtons Header.Style = hsFlatButtons
@ -582,32 +620,23 @@ object frmMain: TfrmMain
OnLoadNode = vstLocationsLoadNode OnLoadNode = vstLocationsLoadNode
OnNewText = vstLocationsNewText OnNewText = vstLocationsNewText
OnSaveNode = vstLocationsSaveNode OnSaveNode = vstLocationsSaveNode
Columns = <
item
Width = 75
WideText = 'Coords'
end
item
Position = 1
Width = 139
WideText = 'Name'
end>
end end
object pnlLocationControls: TPanel object pnlLocationControls: TPanel
Left = 4 Left = 4
Height = 24 Height = 24
Top = 472 Top = 464
Width = 214 Width = 210
Align = alBottom Align = alBottom
BorderSpacing.Around = 4 BorderSpacing.Around = 4
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 24 ClientHeight = 24
ClientWidth = 214 ClientWidth = 210
TabOrder = 1 TabOrder = 1
object btnClearLocations: TSpeedButton object btnClearLocations: TSpeedButton
Left = 112 Left = 112
Height = 22 Height = 22
Hint = 'Clear' Hint = 'Clear'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -655,6 +684,7 @@ object frmMain: TfrmMain
Left = 88 Left = 88
Height = 22 Height = 22
Hint = 'Delete' Hint = 'Delete'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -702,6 +732,7 @@ object frmMain: TfrmMain
Left = 64 Left = 64
Height = 22 Height = 22
Hint = 'Add' Hint = 'Add'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Glyph.Data = { Glyph.Data = {
@ -749,10 +780,11 @@ object frmMain: TfrmMain
end end
end end
object tbMain: TToolBar object tbMain: TToolBar
Left = 0
Height = 24 Height = 24
Top = 0
Width = 766 Width = 766
Caption = 'tbMain' Caption = 'tbMain'
Flat = True
Images = ImageList1 Images = ImageList1
ParentShowHint = False ParentShowHint = False
ShowHint = True ShowHint = True
@ -775,7 +807,6 @@ object frmMain: TfrmMain
end end
object tbSelect: TToolButton object tbSelect: TToolButton
Left = 40 Left = 40
Hint = 'Select'
Top = 2 Top = 2
Action = acSelect Action = acSelect
Grouped = True Grouped = True
@ -785,7 +816,6 @@ object frmMain: TfrmMain
end end
object tbDrawTile: TToolButton object tbDrawTile: TToolButton
Left = 63 Left = 63
Hint = 'Draw tiles'
Top = 2 Top = 2
Action = acDraw Action = acDraw
Grouped = True Grouped = True
@ -795,7 +825,6 @@ object frmMain: TfrmMain
end end
object tbMoveTile: TToolButton object tbMoveTile: TToolButton
Left = 86 Left = 86
Hint = 'Move tiles'
Top = 2 Top = 2
Action = acMove Action = acMove
Grouped = True Grouped = True
@ -805,7 +834,6 @@ object frmMain: TfrmMain
end end
object tbElevateTile: TToolButton object tbElevateTile: TToolButton
Left = 109 Left = 109
Hint = 'Elevate tiles'
Top = 2 Top = 2
Action = acElevate Action = acElevate
Grouped = True Grouped = True
@ -815,7 +843,6 @@ object frmMain: TfrmMain
end end
object tbDeleteTile: TToolButton object tbDeleteTile: TToolButton
Left = 132 Left = 132
Hint = 'Delete tiles'
Top = 2 Top = 2
Action = acDelete Action = acDelete
Grouped = True Grouped = True
@ -825,7 +852,6 @@ object frmMain: TfrmMain
end end
object tbSetHue: TToolButton object tbSetHue: TToolButton
Left = 155 Left = 155
Hint = 'Hue tiles'
Top = 2 Top = 2
Action = acHue Action = acHue
Grouped = True Grouped = True
@ -842,7 +868,6 @@ object frmMain: TfrmMain
end end
object tbBoundaries: TToolButton object tbBoundaries: TToolButton
Left = 193 Left = 193
Hint = 'Boundaries'
Top = 2 Top = 2
Action = acBoundaries Action = acBoundaries
ParentShowHint = False ParentShowHint = False
@ -896,13 +921,11 @@ object frmMain: TfrmMain
end end
object tbVirtualLayer: TToolButton object tbVirtualLayer: TToolButton
Left = 216 Left = 216
Hint = 'Virtual Layer'
Top = 2 Top = 2
Action = acVirtualLayer Action = acVirtualLayer
end end
object tbFilter: TToolButton object tbFilter: TToolButton
Left = 239 Left = 239
Hint = 'Filter'
Top = 2 Top = 2
Action = acFilter Action = acFilter
Style = tbsCheck Style = tbsCheck
@ -910,14 +933,12 @@ object frmMain: TfrmMain
end end
object tbFlat: TToolButton object tbFlat: TToolButton
Left = 346 Left = 346
Hint = 'Flat view'
Top = 2 Top = 2
Action = acFlat Action = acFlat
Style = tbsCheck Style = tbsCheck
end end
object tbNoDraw: TToolButton object tbNoDraw: TToolButton
Left = 323 Left = 323
Hint = 'Display "No Draw" tiles'
Top = 2 Top = 2
Action = acNoDraw Action = acNoDraw
Style = tbsCheck Style = tbsCheck
@ -934,7 +955,9 @@ object frmMain: TfrmMain
ClientWidth = 542 ClientWidth = 542
TabOrder = 3 TabOrder = 3
object oglGameWindow: TOpenGLControl object oglGameWindow: TOpenGLControl
Left = 0
Height = 374 Height = 374
Top = 0
Width = 542 Width = 542
Align = alClient Align = alClient
OnDblClick = oglGameWindowDblClick OnDblClick = oglGameWindowDblClick
@ -947,6 +970,7 @@ object frmMain: TfrmMain
OnPaint = oglGameWindowPaint OnPaint = oglGameWindowPaint
end end
object pnlChatHeader: TPanel object pnlChatHeader: TPanel
Left = 0
Height = 24 Height = 24
Top = 374 Top = 374
Width = 542 Width = 542
@ -973,6 +997,7 @@ object frmMain: TfrmMain
end end
end end
object pnlChat: TPanel object pnlChat: TPanel
Left = 0
Height = 122 Height = 122
Top = 403 Top = 403
Width = 542 Width = 542
@ -984,10 +1009,29 @@ object frmMain: TfrmMain
Visible = False Visible = False
object vstChat: TVirtualStringTree object vstChat: TVirtualStringTree
Cursor = 63 Cursor = 63
Left = 0
Height = 99 Height = 99
Top = 0
Width = 542 Width = 542
Align = alClient Align = alClient
DefaultText = 'Node'
Header.AutoSizeIndex = 2 Header.AutoSizeIndex = 2
Header.Columns = <
item
Position = 0
Text = 'Time'
Width = 75
end
item
Position = 1
Text = 'Sender'
Width = 75
end
item
Position = 2
Text = 'Message'
Width = 392
end>
Header.MainColumn = 2 Header.MainColumn = 2
Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible] Header.Options = [hoAutoResize, hoColumnResize, hoDrag, hoVisible]
Header.ParentFont = True Header.ParentFont = True
@ -1000,23 +1044,9 @@ object frmMain: TfrmMain
OnFreeNode = vstChatFreeNode OnFreeNode = vstChatFreeNode
OnGetText = vstChatGetText OnGetText = vstChatGetText
OnPaintText = vstChatPaintText OnPaintText = vstChatPaintText
Columns = <
item
Width = 75
WideText = 'Time'
end
item
Position = 1
Width = 75
WideText = 'Sender'
end
item
Position = 2
Width = 392
WideText = 'Message'
end>
end end
object edChat: TEdit object edChat: TEdit
Left = 0
Height = 23 Height = 23
Top = 99 Top = 99
Width = 542 Width = 542
@ -1027,6 +1057,7 @@ object frmMain: TfrmMain
end end
object spChat: TSplitter object spChat: TSplitter
Cursor = crVSplit Cursor = crVSplit
Left = 0
Height = 5 Height = 5
Top = 398 Top = 398
Width = 542 Width = 542
@ -1312,6 +1343,7 @@ object frmMain: TfrmMain
end end
end end
object ImageList1: TImageList object ImageList1: TImageList
Masked = False
left = 264 left = 264
top = 32 top = 32
Bitmap = { Bitmap = {
@ -1972,6 +2004,7 @@ object frmMain: TfrmMain
HintHidePause = 2500 HintHidePause = 2500
HintPause = 500 HintPause = 500
HintShortCuts = True HintShortCuts = True
HintShortPause = 0
ShowHint = True ShowHint = True
OnIdle = ApplicationProperties1Idle OnIdle = ApplicationProperties1Idle
left = 295 left = 295

View File

@ -249,7 +249,7 @@ type
procedure vstChatClick(Sender: TObject); procedure vstChatClick(Sender: TObject);
procedure vstChatFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode); procedure vstChatFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
procedure vstChatGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure vstChatGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); Column: TColumnIndex; TextType: TVSTTextType; var CellText: UTF8String);
procedure vstChatPaintText(Sender: TBaseVirtualTree; procedure vstChatPaintText(Sender: TBaseVirtualTree;
const TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex; const TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
TextType: TVSTTextType); TextType: TVSTTextType);
@ -257,7 +257,7 @@ type
procedure vstLocationsFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode procedure vstLocationsFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode
); );
procedure vstLocationsGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure vstLocationsGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); Column: TColumnIndex; TextType: TVSTTextType; var CellText: UTF8String);
procedure vstLocationsLoadNode(Sender: TBaseVirtualTree; procedure vstLocationsLoadNode(Sender: TBaseVirtualTree;
Node: PVirtualNode; Stream: TStream); Node: PVirtualNode; Stream: TStream);
procedure vstLocationsNewText(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure vstLocationsNewText(Sender: TBaseVirtualTree; Node: PVirtualNode;
@ -1391,15 +1391,15 @@ begin
end; end;
procedure TfrmMain.vstChatGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure TfrmMain.vstChatGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); Column: TColumnIndex; TextType: TVSTTextType; var CellText: UTF8String);
var var
chatInfo: PChatInfo; chatInfo: PChatInfo;
begin begin
chatInfo := Sender.GetNodeData(Node); chatInfo := Sender.GetNodeData(Node);
case Column of case Column of
0: CellText := TimeToStr(chatInfo^.Time); 0: CellText := UTF8Encode(TimeToStr(chatInfo^.Time));
1: CellText := chatInfo^.Sender; 1: CellText := UTF8Encode(chatInfo^.Sender);
2: CellText := chatInfo^.Msg; 2: CellText := UTF8Encode(chatInfo^.Msg);
end; end;
end; end;
@ -1443,14 +1443,14 @@ end;
procedure TfrmMain.vstLocationsGetText(Sender: TBaseVirtualTree; procedure TfrmMain.vstLocationsGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
var var
locationInfo: PLocationInfo; locationInfo: PLocationInfo;
begin begin
locationInfo := Sender.GetNodeData(Node); locationInfo := Sender.GetNodeData(Node);
case Column of case Column of
0: CellText := Format('%d, %d', [locationInfo^.X, locationInfo^.Y]); 0: CellText := UTF8Encode(Format('%d, %d', [locationInfo^.X, locationInfo^.Y]));
1: CellText := locationInfo^.Name; 1: CellText := UTF8Encode(locationInfo^.Name);
end; end;
end; end;

View File

@ -3,6 +3,7 @@ object frmRegionControl: TfrmRegionControl
Height = 413 Height = 413
Top = 139 Top = 139
Width = 620 Width = 620
ActiveControl = Panel1
Caption = 'Region Control' Caption = 'Region Control'
ClientHeight = 413 ClientHeight = 413
ClientWidth = 620 ClientWidth = 620
@ -11,12 +12,13 @@ object frmRegionControl: TfrmRegionControl
OnCreate = FormCreate OnCreate = FormCreate
OnDestroy = FormDestroy OnDestroy = FormDestroy
OnShow = FormShow OnShow = FormShow
ParentFont = False
Position = poOwnerFormCenter Position = poOwnerFormCenter
ShowInTaskBar = stAlways ShowInTaskBar = stAlways
LCLVersion = '0.9.27' LCLVersion = '0.9.27'
object Panel1: TPanel object Panel1: TPanel
Left = 0
Height = 380 Height = 380
Top = 0
Width = 160 Width = 160
Align = alLeft Align = alLeft
ClientHeight = 380 ClientHeight = 380
@ -66,6 +68,7 @@ object frmRegionControl: TfrmRegionControl
Left = 30 Left = 30
Height = 22 Height = 22
Hint = 'Add area' Hint = 'Add area'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Enabled = False Enabled = False
@ -114,6 +117,7 @@ object frmRegionControl: TfrmRegionControl
Left = 59 Left = 59
Height = 22 Height = 22
Hint = 'Delete area' Hint = 'Delete area'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Enabled = False Enabled = False
@ -162,6 +166,7 @@ object frmRegionControl: TfrmRegionControl
Left = 87 Left = 87
Height = 22 Height = 22
Hint = 'Delete all areas' Hint = 'Delete all areas'
Top = 0
Width = 23 Width = 23
Color = clBtnFace Color = clBtnFace
Enabled = False Enabled = False
@ -253,6 +258,9 @@ object frmRegionControl: TfrmRegionControl
BorderSpacing.Right = 4 BorderSpacing.Right = 4
BorderSpacing.Bottom = 4 BorderSpacing.Bottom = 4
BorderStyle = bsSingle BorderStyle = bsSingle
DefaultText = 'Node'
Header.AutoSizeIndex = 0
Header.Columns = <>
Header.MainColumn = -1 Header.MainColumn = -1
Header.Options = [hoColumnResize, hoDrag] Header.Options = [hoColumnResize, hoDrag]
TabOrder = 1 TabOrder = 1
@ -260,7 +268,6 @@ object frmRegionControl: TfrmRegionControl
TreeOptions.SelectionOptions = [toFullRowSelect] TreeOptions.SelectionOptions = [toFullRowSelect]
OnChange = vstAreaChange OnChange = vstAreaChange
OnGetText = vstAreaGetText OnGetText = vstAreaGetText
Columns = <>
end end
object spRegionsArea: TSplitter object spRegionsArea: TSplitter
Cursor = crVSplit Cursor = crVSplit
@ -284,9 +291,19 @@ object frmRegionControl: TfrmRegionControl
ClientWidth = 158 ClientWidth = 158
TabOrder = 3 TabOrder = 3
object vstRegions: TVirtualStringTree object vstRegions: TVirtualStringTree
Left = 0
Height = 144 Height = 144
Top = 0
Width = 158 Width = 158
Align = alClient Align = alClient
DefaultText = 'Node'
Header.AutoSizeIndex = 0
Header.Columns = <
item
Position = 0
Text = 'Regions'
Width = 158
end>
Header.Options = [hoAutoResize, hoVisible] Header.Options = [hoAutoResize, hoVisible]
Header.ParentFont = True Header.ParentFont = True
Header.Style = hsFlatButtons Header.Style = hsFlatButtons
@ -298,13 +315,9 @@ object frmRegionControl: TfrmRegionControl
OnChange = vstRegionsChange OnChange = vstRegionsChange
OnFreeNode = vstRegionsFreeNode OnFreeNode = vstRegionsFreeNode
OnGetText = vstRegionsGetText OnGetText = vstRegionsGetText
Columns = <
item
Width = 158
WideText = 'Regions'
end>
end end
object Panel5: TPanel object Panel5: TPanel
Left = 0
Height = 26 Height = 26
Top = 144 Top = 144
Width = 158 Width = 158
@ -416,6 +429,7 @@ object frmRegionControl: TfrmRegionControl
object Panel2: TPanel object Panel2: TPanel
Left = 160 Left = 160
Height = 380 Height = 380
Top = 0
Width = 460 Width = 460
Align = alClient Align = alClient
Caption = 'Panel2' Caption = 'Panel2'
@ -428,9 +442,13 @@ object frmRegionControl: TfrmRegionControl
Top = 1 Top = 1
Width = 458 Width = 458
Align = alClient Align = alClient
ClientHeight = 378
ClientWidth = 458
TabOrder = 0 TabOrder = 0
object pbArea: TPaintBox object pbArea: TPaintBox
Left = 0
Height = 105 Height = 105
Top = 0
Width = 105 Width = 105
OnMouseDown = pbAreaMouseDown OnMouseDown = pbAreaMouseDown
OnMouseMove = pbAreaMouseMove OnMouseMove = pbAreaMouseMove
@ -452,6 +470,7 @@ object frmRegionControl: TfrmRegionControl
object btnClose: TButton object btnClose: TButton
Left = 548 Left = 548
Height = 25 Height = 25
Top = 0
Width = 64 Width = 64
Align = alRight Align = alRight
Anchors = [akTop, akRight] Anchors = [akTop, akRight]
@ -463,6 +482,7 @@ object frmRegionControl: TfrmRegionControl
object btnSave: TButton object btnSave: TButton
Left = 480 Left = 480
Height = 25 Height = 25
Top = 0
Width = 64 Width = 64
Align = alRight Align = alRight
Anchors = [akTop, akRight] Anchors = [akTop, akRight]

View File

@ -99,11 +99,11 @@ type
procedure seX1Change(Sender: TObject); procedure seX1Change(Sender: TObject);
procedure vstAreaChange(Sender: TBaseVirtualTree; Node: PVirtualNode); procedure vstAreaChange(Sender: TBaseVirtualTree; Node: PVirtualNode);
procedure vstAreaGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure vstAreaGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); Column: TColumnIndex; TextType: TVSTTextType; var CellText: UTF8String);
procedure vstRegionsChange(Sender: TBaseVirtualTree; Node: PVirtualNode); procedure vstRegionsChange(Sender: TBaseVirtualTree; Node: PVirtualNode);
procedure vstRegionsFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode); procedure vstRegionsFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
procedure vstRegionsGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure vstRegionsGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); Column: TColumnIndex; TextType: TVSTTextType; var CellText: UTF8String);
protected protected
FLastX: Integer; FLastX: Integer;
FLastY: Integer; FLastY: Integer;
@ -494,7 +494,7 @@ end;
procedure TfrmRegionControl.vstAreaGetText(Sender: TBaseVirtualTree; procedure TfrmRegionControl.vstAreaGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
var var
areaInfo: PRect; areaInfo: PRect;
begin begin
@ -562,12 +562,12 @@ end;
procedure TfrmRegionControl.vstRegionsGetText(Sender: TBaseVirtualTree; procedure TfrmRegionControl.vstRegionsGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
var var
regionInfo: PRegionInfo; regionInfo: PRegionInfo;
begin begin
regionInfo := Sender.GetNodeData(Node); regionInfo := Sender.GetNodeData(Node);
CellText := regionInfo^.Name; CellText := UTF8Encode(regionInfo^.Name);
end; end;
function TfrmRegionControl.FindRegion(AName: string): PVirtualNode; function TfrmRegionControl.FindRegion(AName: string): PVirtualNode;

10
README
View File

@ -1,4 +1,4 @@
CentrED (c) 2007 Andreas Schneider CentrED (c) 2009 Andreas Schneider
================================== ==================================
License License
@ -10,10 +10,10 @@ at http://www.opensource.org/licenses/cddl1.php.
Compiling Compiling
========= =========
To build CentrED you need at least FreePascal 2.2.0 and a To build CentrED you need at least FreePascal 2.2.2 and a
recent Lazarus (at least 0.9.24). recent Lazarus (at least 0.9.26).
You also have to have the following packages installed: You also have to have the following packages installed:
- VirtualTrees from https://luipack.bountysource.com/wiki/virtualtreeview - VirtualTrees from http://code.google.com/p/luipack/wiki/VirtualTreeview
- LazOpenGLContext (included with Lazarus) - LazOpenGLContext (included with Lazarus)
- lNet by Almindor: http://wiki.lazarus.freepascal.org/lNet - lNet by Almindor: http://wiki.lazarus.freepascal.org/lNet
@ -42,5 +42,5 @@ Thanks
Almindor for lNet and his support on how to use it efficently. Almindor for lNet and his support on how to use it efficently.
Marek Mauder for the great Vampyre Imaging Library and also his support and extensions. Marek Mauder for the great Vampyre Imaging Library and also his support and extensions.
Luiz Américo Pereira Câmara for his nice port of VirtualTrees. Luiz Américo Pereira Câmara for his nice port of VirtualTrees.
And last bot not least the whole FPC and Lazarus team for developing, maintaining And last but not least the whole FPC and Lazarus team for developing, maintaining
and supporting such great development tools, which make life a lot easier. and supporting such great development tools, which make life a lot easier.