* Update advanced demo to use utf8

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@670 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
blikblum
2009-01-24 11:00:47 +00:00
parent 50400d4c00
commit 46955c2cdf
28 changed files with 516 additions and 1187 deletions

View File

@@ -2,10 +2,11 @@
<CONFIG> <CONFIG>
<ProjectOptions> <ProjectOptions>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<Version Value="6"/> <Version Value="7"/>
<General> <General>
<Flags> <Flags>
<AlwaysBuild Value="False"/> <AlwaysBuild Value="False"/>
<LRSInOutputDirectory Value="False"/>
</Flags> </Flags>
<SessionStorage Value="InProjectDir"/> <SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/> <MainUnit Value="0"/>
@@ -48,7 +49,6 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="WindowsXPStyleDemo.lrs"/>
<UnitName Value="WindowsXPStyleDemo"/> <UnitName Value="WindowsXPStyleDemo"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
@@ -57,7 +57,6 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="AlignDemo.lrs"/>
<UnitName Value="AlignDemo"/> <UnitName Value="AlignDemo"/>
</Unit2> </Unit2>
<Unit3> <Unit3>
@@ -66,7 +65,6 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="DrawTreeDemo.lrs"/>
<UnitName Value="DrawTreeDemo"/> <UnitName Value="DrawTreeDemo"/>
</Unit3> </Unit3>
<Unit4> <Unit4>
@@ -80,7 +78,6 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="GeneralAbilitiesDemo.lrs"/>
<UnitName Value="GeneralAbilitiesDemo"/> <UnitName Value="GeneralAbilitiesDemo"/>
</Unit5> </Unit5>
<Unit6> <Unit6>
@@ -89,7 +86,6 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="GridDemo.lrs"/>
<UnitName Value="GridDemo"/> <UnitName Value="GridDemo"/>
</Unit6> </Unit6>
<Unit7> <Unit7>
@@ -98,7 +94,6 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="HeaderCustomDrawDemo.lrs"/>
<UnitName Value="HeaderCustomDrawDemo"/> <UnitName Value="HeaderCustomDrawDemo"/>
</Unit7> </Unit7>
<Unit8> <Unit8>
@@ -107,7 +102,6 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="Main.lrs"/>
<UnitName Value="Main"/> <UnitName Value="Main"/>
</Unit8> </Unit8>
<Unit9> <Unit9>
@@ -116,7 +110,6 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="MultilineDemo.lrs"/>
<UnitName Value="MultilineDemo"/> <UnitName Value="MultilineDemo"/>
</Unit9> </Unit9>
<Unit10> <Unit10>
@@ -125,7 +118,6 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="PropertiesDemo.lrs"/>
<UnitName Value="PropertiesDemo"/> <UnitName Value="PropertiesDemo"/>
</Unit10> </Unit10>
<Unit11> <Unit11>
@@ -134,7 +126,6 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="SpeedDemo.lrs"/>
<UnitName Value="SpeedDemo"/> <UnitName Value="SpeedDemo"/>
</Unit11> </Unit11>
<Unit12> <Unit12>
@@ -142,7 +133,6 @@
<ComponentName Value="StateForm"/> <ComponentName Value="StateForm"/>
<HasResources Value="True"/> <HasResources Value="True"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceFilename Value="States.lrs"/>
<UnitName Value="States"/> <UnitName Value="States"/>
</Unit12> </Unit12>
<Unit13> <Unit13>
@@ -151,7 +141,6 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<ResourceFilename Value="VisibilityDemo.lrs"/>
<UnitName Value="VisibilityDemo"/> <UnitName Value="VisibilityDemo"/>
</Unit13> </Unit13>
<Unit14> <Unit14>

View File

@@ -3,8 +3,6 @@ object AlignForm: TAlignForm
Height = 497 Height = 497
Top = 299 Top = 299
Width = 785 Width = 785
HorzScrollBar.Page = 784
VertScrollBar.Page = 496
ActiveControl = AlignTree ActiveControl = AlignTree
Caption = 'AlignForm' Caption = 'AlignForm'
ClientHeight = 497 ClientHeight = 497
@@ -14,7 +12,7 @@ object AlignForm: TAlignForm
Font.Name = 'Arial' Font.Name = 'Arial'
OnCreate = FormCreate OnCreate = FormCreate
OnDestroy = FormDestroy OnDestroy = FormDestroy
LCLVersion = '0.9.25' LCLVersion = '0.9.27'
object Label8: TLabel object Label8: TLabel
Left = 8 Left = 8
Height = 111 Height = 111
@@ -39,36 +37,36 @@ object AlignForm: TAlignForm
end end
object Label2: TLabel object Label2: TLabel
Left = 220 Left = 220
Height = 14 Height = 17
Top = 349 Top = 346
Width = 93 Width = 116
Anchors = [akLeft, akBottom] Anchors = [akLeft, akBottom]
Caption = 'English text column' Caption = 'English text column'
ParentColor = False ParentColor = False
end end
object Label3: TLabel object Label3: TLabel
Left = 348 Left = 338
Height = 14 Height = 17
Top = 349 Top = 346
Width = 88 Width = 108
Anchors = [akBottom] Anchors = [akBottom]
Caption = 'Greek text column' Caption = 'Greek text column'
ParentColor = False ParentColor = False
end end
object Label4: TLabel object Label4: TLabel
Left = 644 Left = 619
Height = 14 Height = 17
Top = 349 Top = 346
Width = 130 Width = 155
Anchors = [akRight, akBottom] Anchors = [akRight, akBottom]
Caption = 'Hebrew/arabic text column' Caption = 'Hebrew/arabic text column'
ParentColor = False ParentColor = False
end end
object Label5: TLabel object Label5: TLabel
Left = 8 Left = 8
Height = 14 Height = 17
Top = 281 Top = 278
Width = 104 Width = 121
Anchors = [akLeft, akBottom] Anchors = [akLeft, akBottom]
Caption = 'Header button layout' Caption = 'Header button layout'
ParentColor = False ParentColor = False
@@ -96,8 +94,38 @@ object AlignForm: TAlignForm
Colors.HotColor = clBlack Colors.HotColor = clBlack
Colors.UnfocusedSelectionBorderColor = clBtnShadow Colors.UnfocusedSelectionBorderColor = clBtnShadow
DefaultNodeHeight = 34 DefaultNodeHeight = 34
DefaultText = 'Node'
EditDelay = 100 EditDelay = 100
Header.Background = clBtnShadow Header.Background = clBtnShadow
Header.Columns = <
item
Alignment = taCenter
Hint = 'Text is initially centered and has a left-to-right directionality.'
ImageIndex = 20
Options = [coAllowClick, coDraggable, coEnabled, coResizable, coShowDropMark, coVisible, coAutoSpring]
Spacing = 10
Text = 'English text column'
Width = 185
end
item
Hint = 'Text is initially left aligned and has a left-to-right directionality.'
ImageIndex = 35
Options = [coAllowClick, coDraggable, coEnabled, coResizable, coShowDropMark, coVisible, coAutoSpring]
Position = 1
Spacing = 10
Text = 'Greek text column'
Width = 155
end
item
BiDiMode = bdRightToLeft
Hint = 'Text is initially left aligned and has a right-to-left directionality.'
ImageIndex = 32
Options = [coAllowClick, coDraggable, coEnabled, coResizable, coShowDropMark, coVisible, coAutoSpring]
Position = 2
Spacing = 10
Text = 'Hebrew/arabic text column'
Width = 209
end>
Header.Font.Height = -12 Header.Font.Height = -12
Header.Font.Name = 'Arial' Header.Font.Name = 'Arial'
Header.Font.Style = [fsBold] Header.Font.Style = [fsBold]
@@ -128,50 +156,19 @@ object AlignForm: TAlignForm
OnInitChildren = AlignTreeInitChildren OnInitChildren = AlignTreeInitChildren
OnInitNode = AlignTreeInitNode OnInitNode = AlignTreeInitNode
OnStateChange = AlignTreeStateChange OnStateChange = AlignTreeStateChange
Columns = <
item
Alignment = taCenter
ImageIndex = 20
Options = [coAllowClick, coDraggable, coEnabled, coResizable, coShowDropMark, coVisible, coAutoSpring]
Spacing = 10
Width = 185
WideText = 'English text column'
WideHint = 'Text is initially centered and has a left-to-right directionality.'
end
item
ImageIndex = 35
Options = [coAllowClick, coDraggable, coEnabled, coResizable, coShowDropMark, coVisible, coAutoSpring]
Position = 1
Spacing = 10
Width = 155
WideText = 'Greek text column'
WideHint = 'Text is initially left aligned and has a left-to-right directionality.'
end
item
BiDiMode = bdRightToLeft
ImageIndex = 32
Options = [coAllowClick, coDraggable, coEnabled, coResizable, coShowDropMark, coVisible, coAutoSpring]
Position = 2
Spacing = 10
Width = 209
WideText = 'Hebrew/arabic text column'
WideHint = 'Text is initially left aligned and has a right-to-left directionality.'
end>
end end
object AlignCombo0: TComboBox object AlignCombo0: TComboBox
Left = 220 Left = 220
Height = 21 Height = 24
Top = 371 Top = 368
Width = 130 Width = 130
Anchors = [akLeft, akBottom] Anchors = [akLeft, akBottom]
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] ItemHeight = 16
ItemHeight = 13
Items.Strings = ( Items.Strings = (
'Left' 'Left'
'Right' 'Right'
'Center' 'Center'
) )
MaxLength = 0
OnChange = AlignComboChange OnChange = AlignComboChange
Style = csDropDownList Style = csDropDownList
TabOrder = 1 TabOrder = 1
@@ -179,18 +176,16 @@ object AlignForm: TAlignForm
object AlignCombo1: TComboBox object AlignCombo1: TComboBox
Tag = 1 Tag = 1
Left = 327 Left = 327
Height = 21 Height = 24
Top = 371 Top = 368
Width = 130 Width = 130
Anchors = [akBottom] Anchors = [akBottom]
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] ItemHeight = 16
ItemHeight = 13
Items.Strings = ( Items.Strings = (
'Left' 'Left'
'Right' 'Right'
'Center' 'Center'
) )
MaxLength = 0
OnChange = AlignComboChange OnChange = AlignComboChange
Style = csDropDownList Style = csDropDownList
TabOrder = 2 TabOrder = 2
@@ -198,18 +193,16 @@ object AlignForm: TAlignForm
object AlignCombo2: TComboBox object AlignCombo2: TComboBox
Tag = 2 Tag = 2
Left = 640 Left = 640
Height = 21 Height = 24
Top = 371 Top = 368
Width = 130 Width = 130
Anchors = [akRight, akBottom] Anchors = [akRight, akBottom]
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] ItemHeight = 16
ItemHeight = 13
Items.Strings = ( Items.Strings = (
'Left' 'Left'
'Right' 'Right'
'Center' 'Center'
) )
MaxLength = 0
OnChange = AlignComboChange OnChange = AlignComboChange
Style = csDropDownList Style = csDropDownList
TabOrder = 3 TabOrder = 3
@@ -303,9 +296,9 @@ object AlignForm: TAlignForm
TabOrder = 7 TabOrder = 7
object ShowGlyphsOptionBox: TCheckBox object ShowGlyphsOptionBox: TCheckBox
Left = 12 Left = 12
Height = 19 Height = 20
Top = 4 Top = 4
Width = 86 Width = 94
Caption = 'Show glyphs' Caption = 'Show glyphs'
OnClick = OptionBoxClick OnClick = OptionBoxClick
TabOrder = 0 TabOrder = 0
@@ -313,9 +306,9 @@ object AlignForm: TAlignForm
object HotTrackOptionBox: TCheckBox object HotTrackOptionBox: TCheckBox
Tag = 1 Tag = 1
Left = 12 Left = 12
Height = 19 Height = 20
Top = 25 Top = 25
Width = 70 Width = 73
Caption = 'Hot track' Caption = 'Hot track'
OnClick = OptionBoxClick OnClick = OptionBoxClick
TabOrder = 1 TabOrder = 1
@@ -323,9 +316,9 @@ object AlignForm: TAlignForm
object ShowTextOptionBox: TCheckBox object ShowTextOptionBox: TCheckBox
Tag = 2 Tag = 2
Left = 12 Left = 12
Height = 19 Height = 20
Top = 46 Top = 46
Width = 73 Width = 78
Caption = 'Show text' Caption = 'Show text'
OnClick = OptionBoxClick OnClick = OptionBoxClick
TabOrder = 2 TabOrder = 2
@@ -333,9 +326,9 @@ object AlignForm: TAlignForm
object VisibleOptionBox: TCheckBox object VisibleOptionBox: TCheckBox
Tag = 3 Tag = 3
Left = 12 Left = 12
Height = 19 Height = 20
Top = 67 Top = 67
Width = 56 Width = 59
Caption = 'Visible' Caption = 'Visible'
OnClick = OptionBoxClick OnClick = OptionBoxClick
TabOrder = 3 TabOrder = 3
@@ -343,9 +336,9 @@ object AlignForm: TAlignForm
object EnabledOptionBox: TCheckBox object EnabledOptionBox: TCheckBox
Tag = 4 Tag = 4
Left = 12 Left = 12
Height = 19 Height = 20
Top = 88 Top = 88
Width = 65 Width = 67
Caption = 'Enabled' Caption = 'Enabled'
OnClick = OptionBoxClick OnClick = OptionBoxClick
TabOrder = 4 TabOrder = 4
@@ -353,19 +346,17 @@ object AlignForm: TAlignForm
end end
object LayoutCombo: TComboBox object LayoutCombo: TComboBox
Left = 8 Left = 8
Height = 21 Height = 24
Top = 303 Top = 300
Width = 130 Width = 130
Anchors = [akLeft, akBottom] Anchors = [akLeft, akBottom]
AutoCompleteText = [cbactEndOfLineComplete, cbactSearchAscending] ItemHeight = 16
ItemHeight = 13
Items.Strings = ( Items.Strings = (
'Glyph left' 'Glyph left'
'Glyph right' 'Glyph right'
'Glyph top' 'Glyph top'
'Glyph bottom' 'Glyph bottom'
) )
MaxLength = 0
OnChange = LayoutComboChange OnChange = LayoutComboChange
Style = csDropDownList Style = csDropDownList
TabOrder = 8 TabOrder = 8

View File

@@ -49,7 +49,7 @@ type
procedure AlignTreeGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex; procedure AlignTreeGetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
var Ghosted: Boolean; var Index: Integer); var Ghosted: Boolean; var Index: Integer);
procedure AlignTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; procedure AlignTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
procedure AlignTreePaintText(Sender: TBaseVirtualTree; const Canvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex; procedure AlignTreePaintText(Sender: TBaseVirtualTree; const Canvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
TextType: TVSTTextType); TextType: TVSTTextType);
procedure AlignTreeGetNodeDataSize(Sender: TBaseVirtualTree; var NodeDataSize: Integer); procedure AlignTreeGetNodeDataSize(Sender: TBaseVirtualTree; var NodeDataSize: Integer);
@@ -83,7 +83,7 @@ var
implementation implementation
uses uses
Main, States; Main, States, vtlogger, ipcchannel;
{.$R *.DFM} {.$R *.DFM}
@@ -100,7 +100,7 @@ type
TAlignData = record TAlignData = record
MainColumnText, MainColumnText,
GreekText, GreekText,
RTLText: WideString; RTLText: UTF8String;
ImageIndex: Integer; ImageIndex: Integer;
end; end;
@@ -109,9 +109,9 @@ type
// Additionally, some greek text for another column is stored here too just because I like how it looks (the text, // Additionally, some greek text for another column is stored here too just because I like how it looks (the text,
// not the storage ;-)). // not the storage ;-)).
var var
GreekStrings: array[0..8] of WideString; GreekStrings: array[0..8] of UTF8String;
ArabicStrings: array[0..3] of WideString; ArabicStrings: array[0..3] of UTF8String;
HebrewStrings: array[0..2] of WideString; HebrewStrings: array[0..2] of UTF8String;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
@@ -172,7 +172,7 @@ end;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
procedure TAlignForm.AlignTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; procedure TAlignForm.AlignTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
TextType: TVSTTextType; var CellText: WideString); TextType: TVSTTextType; var CellText: UTF8String);
var var
Data: PAlignData; Data: PAlignData;
@@ -277,6 +277,8 @@ var
NewItem: TMenuItem; NewItem: TMenuItem;
begin begin
Logger.Channels.Add(TIPCChannel.Create);
Logger.ActiveClasses := [lcWarning];
// To display the various texts in a nice manner we use some specialized fonts of the system. // To display the various texts in a nice manner we use some specialized fonts of the system.
// We could directly assign the font names used here in the OnPaintText event, but since this // We could directly assign the font names used here in the OnPaintText event, but since this
// would then be the only reference for the font it would cause the font to be recreated every // would then be the only reference for the font it would cause the font to be recreated every

View File

@@ -3,8 +3,6 @@ object DrawTreeForm: TDrawTreeForm
Height = 477 Height = 477
Top = 339 Top = 339
Width = 710 Width = 710
HorzScrollBar.Page = 709
VertScrollBar.Page = 476
ActiveControl = VDT1 ActiveControl = VDT1
Caption = 'DrawTreeForm' Caption = 'DrawTreeForm'
ClientHeight = 477 ClientHeight = 477
@@ -12,7 +10,7 @@ object DrawTreeForm: TDrawTreeForm
Font.Height = -13 Font.Height = -13
Font.Name = 'Trebuchet MS' Font.Name = 'Trebuchet MS'
OnCreate = FormCreate OnCreate = FormCreate
LCLVersion = '0.9.25' LCLVersion = '0.9.27'
object Label7: TLabel object Label7: TLabel
Height = 61 Height = 61
Width = 710 Width = 710
@@ -24,18 +22,18 @@ object DrawTreeForm: TDrawTreeForm
end end
object Label1: TLabel object Label1: TLabel
Left = 4 Left = 4
Height = 14 Height = 19
Top = 385 Top = 380
Width = 199 Width = 248
Anchors = [akLeft, akBottom] Anchors = [akLeft, akBottom]
Caption = 'Adjust vertical image alignment of nodes:' Caption = 'Adjust vertical image alignment of nodes:'
ParentColor = False ParentColor = False
end end
object Label3: TLabel object Label3: TLabel
Left = 424 Left = 424
Height = 14 Height = 19
Top = 385 Top = 380
Width = 24 Width = 23
Anchors = [akLeft, akBottom] Anchors = [akLeft, akBottom]
Caption = '50%' Caption = '50%'
ParentColor = False ParentColor = False
@@ -58,6 +56,22 @@ object DrawTreeForm: TDrawTreeForm
DefaultNodeHeight = 32 DefaultNodeHeight = 32
Header.AutoSizeIndex = -1 Header.AutoSizeIndex = -1
Header.Background = clBtnHighlight Header.Background = clBtnHighlight
Header.Columns = <
item
Options = [coAllowClick, coEnabled, coParentColor, coResizable, coShowDropMark, coVisible]
Text = 'Image file name'
Width = 217
end
item
Position = 1
Text = 'Thumbnail'
Width = 200
end
item
Position = 2
Text = 'Properties'
Width = 160
end>
Header.Height = 22 Header.Height = 22
Header.Options = [hoColumnResize, hoDblClickResize, hoDrag, hoRestrictDrag, hoShowSortGlyphs, hoVisible] Header.Options = [hoColumnResize, hoDblClickResize, hoDrag, hoRestrictDrag, hoShowSortGlyphs, hoVisible]
Header.ParentFont = True Header.ParentFont = True
@@ -88,22 +102,6 @@ object DrawTreeForm: TDrawTreeForm
OnInitChildren = VDT1InitChildren OnInitChildren = VDT1InitChildren
OnInitNode = VDT1InitNode OnInitNode = VDT1InitNode
OnStateChange = VDT1StateChange OnStateChange = VDT1StateChange
Columns = <
item
Options = [coAllowClick, coEnabled, coParentColor, coResizable, coShowDropMark, coVisible]
Width = 217
WideText = 'Image file name'
end
item
Position = 1
Width = 200
WideText = 'Thumbnail'
end
item
Position = 2
Width = 160
WideText = 'Properties'
end>
end end
object TrackBar1: TTrackBar object TrackBar1: TTrackBar
Left = 264 Left = 264
@@ -113,7 +111,6 @@ object DrawTreeForm: TDrawTreeForm
Max = 100 Max = 100
OnChange = TrackBar1Change OnChange = TrackBar1Change
Position = 50 Position = 50
ScalePos = trTop
TickStyle = tsNone TickStyle = tsNone
Anchors = [akLeft, akBottom] Anchors = [akLeft, akBottom]
TabOrder = 1 TabOrder = 1

View File

@@ -67,7 +67,7 @@ type
FDriveStrings: string; FDriveStrings: string;
function CanDisplay(const Name: String): Boolean; function CanDisplay(const Name: String): Boolean;
function GetDriveString(Index: Integer): string; function GetDriveString(Index: Integer): string;
function ReadAttributes(const Name: WideString): Cardinal; function ReadAttributes(const Name: UTF8String): Cardinal;
procedure RescaleImage(Source, Target: TBitmap); procedure RescaleImage(Source, Target: TBitmap);
end; end;
@@ -89,12 +89,12 @@ type
PShellObjectData = ^TShellObjectData; PShellObjectData = ^TShellObjectData;
TShellObjectData = record TShellObjectData = record
FullPath, FullPath,
Display: WideString; Display: UTF8String;
Attributes: Cardinal; Attributes: Cardinal;
OpenIndex, OpenIndex,
CloseIndex: Integer; // image indices into the system image list CloseIndex: Integer; // image indices into the system image list
Image: TBitmap; Image: TBitmap;
Properties: WideString; // some image properties, preformatted Properties: UTF8String; // some image properties, preformatted
end; end;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
@@ -262,7 +262,7 @@ end;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
function TDrawTreeForm.ReadAttributes(const Name: WideString): Cardinal; function TDrawTreeForm.ReadAttributes(const Name: UTF8String): Cardinal;
// Determines the attributes of the given shell object (file, folder). // Determines the attributes of the given shell object (file, folder).
@@ -432,7 +432,7 @@ procedure TDrawTreeForm.VDT1DrawNode(Sender: TBaseVirtualTree; const PaintInfo:
var var
Data: PShellObjectData; Data: PShellObjectData;
X: Integer; X: Integer;
S: WideString; S: UTF8String;
R: TRect; R: TRect;
begin begin
@@ -471,7 +471,7 @@ begin
if (NodeWidth - 2 * Margin) > (Right - Left) then if (NodeWidth - 2 * Margin) > (Right - Left) then
S := ShortenString(Canvas.Handle, S, Right - Left); S := ShortenString(Canvas.Handle, S, Right - Left);
end; end;
DrawTextW(Canvas.Handle, PWideChar(S), Length(S), R, DT_TOP or DT_LEFT or DT_VCENTER or DT_SINGLELINE); DrawText(Canvas.Handle, PChar(S), Length(S), R, DT_TOP or DT_LEFT or DT_VCENTER or DT_SINGLELINE);
end; end;
end; end;
1: 1:

View File

@@ -34,7 +34,7 @@ type
PPropertyData = ^TPropertyData; PPropertyData = ^TPropertyData;
TPropertyData = record TPropertyData = record
ValueType: TValueType; ValueType: TValueType;
Value: WideString; // This value can actually be a date or a number too. Value: UTF8String; // This value can actually be a date or a number too.
Changed: Boolean; Changed: Boolean;
end; end;
@@ -275,7 +275,7 @@ function TPropertyEditLink.EndEdit: Boolean;
var var
Data: PPropertyData; Data: PPropertyData;
Buffer: array[0..1024] of Char; Buffer: array[0..1024] of Char;
S: WideString; S: UTF8String;
begin begin
Result := True; Result := True;

View File

@@ -63,6 +63,7 @@ object GeneralForm: TGeneralForm
Colors.HotColor = clBlack Colors.HotColor = clBlack
Colors.UnfocusedSelectionBorderColor = clBtnShadow Colors.UnfocusedSelectionBorderColor = clBtnShadow
DefaultNodeHeight = 24 DefaultNodeHeight = 24
DefaultText = 'Node'
DragCursor = crHelp DragCursor = crHelp
DrawSelectionMode = smBlendedRectangle DrawSelectionMode = smBlendedRectangle
EditDelay = 200 EditDelay = 200
@@ -70,6 +71,32 @@ object GeneralForm: TGeneralForm
Font.Name = 'Lucida Sans Unicode' Font.Name = 'Lucida Sans Unicode'
Header.AutoSizeIndex = -1 Header.AutoSizeIndex = -1
Header.Background = clBtnShadow Header.Background = clBtnShadow
Header.Columns = <
item
Hint = 'Column which initially contains the tree.'
ImageIndex = 10
Position = 1
Spacing = 20
Text = 'Initial main column'
Width = 300
end
item
Color = 14737632
Hint = 'Image only column.'
MaxWidth = 22
Options = [coEnabled, coParentBidiMode, coVisible]
Spacing = 0
Width = 22
end
item
Hint = 'Column with mathematic, greek, japanese and german (nonsense) text.'
ImageIndex = 4
Options = [coAllowClick, coEnabled, coParentColor, coResizable, coShowDropMark, coVisible, coAllowFocus]
Position = 2
Spacing = 20
Text = 'Language column'
Width = 300
end>
Header.Font.Height = -11 Header.Font.Height = -11
Header.Font.Name = 'Lucida Sans Unicode' Header.Font.Name = 'Lucida Sans Unicode'
Header.Height = 20 Header.Height = 20
@@ -102,32 +129,6 @@ object GeneralForm: TGeneralForm
OnKeyDown = VST2KeyDown OnKeyDown = VST2KeyDown
OnNewText = VST2NewText OnNewText = VST2NewText
OnStateChange = VST2StateChange OnStateChange = VST2StateChange
Columns = <
item
ImageIndex = 10
Position = 1
Spacing = 20
Width = 300
WideText = 'Initial main column'
WideHint = 'Column which initially contains the tree.'
end
item
Color = 14737632
MaxWidth = 22
Options = [coEnabled, coParentBidiMode, coVisible]
Spacing = 0
Width = 22
WideHint = 'Image only column.'
end
item
ImageIndex = 4
Options = [coAllowClick, coEnabled, coParentColor, coResizable, coShowDropMark, coVisible, coAllowFocus]
Position = 2
Spacing = 20
Width = 300
WideText = 'Language column'
WideHint = 'Column with mathematic, greek, japanese and german (nonsense) text.'
end>
end end
object CheckMarkCombo: TComboBox object CheckMarkCombo: TComboBox
Left = 503 Left = 503

View File

@@ -58,9 +58,9 @@ type
procedure VST2InitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode; procedure VST2InitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode;
var InitialStates: TVirtualNodeInitStates); var InitialStates: TVirtualNodeInitStates);
procedure VST2InitChildren(Sender: TBaseVirtualTree; Node: PVirtualNode; var ChildCount: Cardinal); procedure VST2InitChildren(Sender: TBaseVirtualTree; Node: PVirtualNode; var ChildCount: Cardinal);
procedure VST2NewText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; Text: WideString); procedure VST2NewText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; Text: UTF8String);
procedure VST2GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; procedure VST2GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
procedure VST2PaintText(Sender: TBaseVirtualTree; const TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex; procedure VST2PaintText(Sender: TBaseVirtualTree; const TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
TextType: TVSTTextType); TextType: TVSTTextType);
procedure VST2GetNodeDataSize(Sender: TBaseVirtualTree; var NodeDataSize: Integer); procedure VST2GetNodeDataSize(Sender: TBaseVirtualTree; var NodeDataSize: Integer);
@@ -110,7 +110,7 @@ type
TNodeData2 = record TNodeData2 = record
Caption, Caption,
StaticText, StaticText,
ForeignText: WideString; ForeignText: UTF8String;
ImageIndex, ImageIndex,
Level: Integer; Level: Integer;
end; end;
@@ -189,7 +189,7 @@ end;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
procedure TGeneralForm.VST2GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; procedure TGeneralForm.VST2GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
TextType: TVSTTextType; var CellText: WideString); TextType: TVSTTextType; var CellText: UTF8String);
// Returns the text as it is stored in the nodes data record. // Returns the text as it is stored in the nodes data record.
@@ -227,7 +227,7 @@ const
var var
Data: PNodeData2; Data: PNodeData2;
WideStr: WideString;
begin begin
Data := Sender.GetNodeData(Node); Data := Sender.GetNodeData(Node);
with Data^ do with Data^ do
@@ -248,25 +248,29 @@ begin
case Data.Level of case Data.Level of
1: 1:
begin begin
ForeignText := WideChar($2200); WideStr := WideChar($2200);
ForeignText := ForeignText + WideChar($2202) + WideChar($221C) + WideChar($221E) + WideChar($2230) + WideStr := WideStr + WideChar($2202) + WideChar($221C) + WideChar($221E) + WideChar($2230) +
WideChar($2233) + WideChar($2257) + WideChar($225D) + WideChar($22B6) + WideChar($22BF); WideChar($2233) + WideChar($2257) + WideChar($225D) + WideChar($22B6) + WideChar($22BF);
ForeignText := UTF8Encode(WideStr);
end; end;
2: 2:
begin begin
ForeignText := WideChar($32E5); WideStr := WideChar($32E5);
ForeignText := ForeignText + WideChar($32E6) + WideChar($32E7) + WideChar($32E8) + WideChar($32E9); WideStr := WideStr + WideChar($32E6) + WideChar($32E7) + WideChar($32E8) + WideChar($32E9);
ForeignText := UTF8Encode(WideStr);
end; end;
3: 3:
begin begin
ForeignText := WideChar($03B1); WideStr := WideChar($03B1);
ForeignText := ForeignText + WideChar($03B2) + WideChar($03B3) + WideChar($03B4) + WideChar($03B5) + WideStr := WideStr + WideChar($03B2) + WideChar($03B3) + WideChar($03B4) + WideChar($03B5) +
WideChar($03B6) + WideChar($03B7) + WideChar($03B8) + WideChar($03B9); WideChar($03B6) + WideChar($03B7) + WideChar($03B8) + WideChar($03B9);
ForeignText := UTF8Encode(WideStr);
end; end;
4: 4:
begin begin
ForeignText := WideChar($20AC); WideStr := WideChar($20AC);
ForeignText := 'nichts ist unm�glich ' + ForeignText; WideStr := 'nichts ist unm�glich ' + WideStr;
ForeignText := UTF8Encode(WideStr);
end; end;
5: 5:
begin begin
@@ -332,7 +336,7 @@ end;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
procedure TGeneralForm.VST2NewText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; procedure TGeneralForm.VST2NewText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
Text: WideString); Text: UTF8String);
// The caption of a node has been changed, keep this in the node record. // The caption of a node has been changed, keep this in the node record.
@@ -485,7 +489,7 @@ const
var var
S: string; S: string;
WS: WideString; WS: UTF8String;
Data: Pointer; Data: Pointer;
DataSize: Cardinal; DataSize: Cardinal;
TargetName: string; TargetName: string;

View File

@@ -52,12 +52,42 @@ object GridForm: TGridForm
Colors.BorderColor = clWindowText Colors.BorderColor = clWindowText
Colors.HotColor = clBlack Colors.HotColor = clBlack
DefaultNodeHeight = 19 DefaultNodeHeight = 19
DefaultText = 'Node'
DragMode = dmAutomatic DragMode = dmAutomatic
EditDelay = 300 EditDelay = 300
Font.Height = -11 Font.Height = -11
Font.Name = 'Microsoft Sans Serif' Font.Name = 'Microsoft Sans Serif'
Header.AutoSizeIndex = 2 Header.AutoSizeIndex = 2
Header.Background = clBtnShadow Header.Background = clBtnShadow
Header.Columns = <
item
Options = [coParentBidiMode, coVisible, coFixed]
Width = 20
end
item
Margin = 0
Position = 1
Text = 'Customer ID'
Width = 100
end
item
Margin = 0
Position = 2
Text = 'First Name'
Width = 120
end
item
Margin = 0
Position = 3
Text = 'Last Name'
Width = 120
end
item
Margin = 0
Position = 4
Text = 'Order date'
Width = 100
end>
Header.Font.Height = -12 Header.Font.Height = -12
Header.Font.Name = 'Microsoft Sans Serif' Header.Font.Name = 'Microsoft Sans Serif'
Header.Options = [hoColumnResize, hoDblClickResize, hoDrag, hoShowImages, hoVisible] Header.Options = [hoColumnResize, hoDblClickResize, hoDrag, hoShowImages, hoVisible]
@@ -84,41 +114,12 @@ object GridForm: TGridForm
OnPaintText = VST5PaintText OnPaintText = VST5PaintText
OnInitNode = VST5InitNode OnInitNode = VST5InitNode
OnStateChange = VST5StateChange OnStateChange = VST5StateChange
Columns = <
item
Options = [coParentBidiMode, coVisible, coFixed]
Width = 20
end
item
Margin = 0
Position = 1
Width = 100
WideText = 'Customer ID'
end
item
Margin = 0
Position = 2
Width = 120
WideText = 'First Name'
end
item
Margin = 0
Position = 3
Width = 120
WideText = 'Last Name'
end
item
Margin = 0
Position = 4
Width = 100
WideText = 'Order date'
end>
end end
object GridLineCheckBox: TCheckBox object GridLineCheckBox: TCheckBox
Left = 556 Left = 562
Height = 22 Height = 20
Top = 364 Top = 366
Width = 127 Width = 121
Anchors = [akRight, akBottom] Anchors = [akRight, akBottom]
Caption = 'Toggle grid lines' Caption = 'Toggle grid lines'
Checked = True Checked = True

View File

@@ -35,7 +35,7 @@ type
procedure VST5FocusChanging(Sender: TBaseVirtualTree; OldNode, NewNode: PVirtualNode; OldColumn, procedure VST5FocusChanging(Sender: TBaseVirtualTree; OldNode, NewNode: PVirtualNode; OldColumn,
NewColumn: TColumnIndex; var Allowed: Boolean); NewColumn: TColumnIndex; var Allowed: Boolean);
procedure VST5GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; procedure VST5GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
procedure VST5InitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode; procedure VST5InitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode;
var InitialStates: TVirtualNodeInitStates); var InitialStates: TVirtualNodeInitStates);
procedure VST5PaintText(Sender: TBaseVirtualTree; const TargetCanvas: TCanvas; Node: PVirtualNode; procedure VST5PaintText(Sender: TBaseVirtualTree; const TargetCanvas: TCanvas; Node: PVirtualNode;
@@ -129,7 +129,7 @@ end;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
procedure TGridForm.VST5GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; procedure TGridForm.VST5GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
TextType: TVSTTextType; var CellText: WideString); TextType: TVSTTextType; var CellText: UTF8String);
var var
Data: PGridData; Data: PGridData;
@@ -138,7 +138,7 @@ begin
if Column > 0 then if Column > 0 then
begin begin
Data := Sender.GetNodeData(Node); Data := Sender.GetNodeData(Node);
CellText := Data.Value[Column - 1]; CellText := String(Data.Value[Column - 1]);
end end
else else
CellText := ''; CellText := '';

View File

@@ -3,8 +3,6 @@ object HeaderOwnerDrawForm: THeaderOwnerDrawForm
Height = 440 Height = 440
Top = 275 Top = 275
Width = 776 Width = 776
HorzScrollBar.Page = 775
VertScrollBar.Page = 439
ActiveControl = HeaderCustomDrawTree ActiveControl = HeaderCustomDrawTree
Caption = 'HeaderOwnerDrawForm' Caption = 'HeaderOwnerDrawForm'
ClientHeight = 440 ClientHeight = 440
@@ -13,7 +11,7 @@ object HeaderOwnerDrawForm: THeaderOwnerDrawForm
Font.Name = 'MS Sans Serif' Font.Name = 'MS Sans Serif'
OnCreate = FormCreate OnCreate = FormCreate
OnDestroy = FormDestroy OnDestroy = FormDestroy
LCLVersion = '0.9.25' LCLVersion = '0.9.27'
object Label8: TLabel object Label8: TLabel
Left = 12 Left = 12
Height = 83 Height = 83
@@ -25,6 +23,7 @@ object HeaderOwnerDrawForm: THeaderOwnerDrawForm
Font.Height = -13 Font.Height = -13
Font.Name = 'MS Sans Serif' Font.Name = 'MS Sans Serif'
ParentColor = False ParentColor = False
ParentFont = False
ShowAccelChar = False ShowAccelChar = False
WordWrap = True WordWrap = True
end end
@@ -51,8 +50,41 @@ object HeaderOwnerDrawForm: THeaderOwnerDrawForm
Colors.HotColor = clBlack Colors.HotColor = clBlack
Colors.UnfocusedSelectionBorderColor = clBtnShadow Colors.UnfocusedSelectionBorderColor = clBtnShadow
DefaultNodeHeight = 24 DefaultNodeHeight = 24
DefaultText = 'Node'
EditDelay = 100 EditDelay = 100
Header.Background = clBtnShadow Header.Background = clBtnShadow
Header.Columns = <
item
Hint = 'This column is drawn entirely by the tree.'
ImageIndex = 1
Options = [coDraggable, coEnabled, coResizable, coShowDropMark, coVisible]
Spacing = -1
Text = 'Default drawing'
Width = 200
end
item
Alignment = taCenter
Hint = 'Only the background is customized.'
ImageIndex = 2
Layout = blGlyphTop
Options = [coAllowClick, coDraggable, coEnabled, coResizable, coShowDropMark, coVisible]
Position = 1
Spacing = -10
Style = vsOwnerDraw
Text = 'Custom background'
Width = 230
end
item
Alignment = taCenter
Color = clInfoBk
Hint = 'Background and text in this column are customized.'
ImageIndex = 0
Options = [coAllowClick, coDraggable, coEnabled, coResizable, coShowDropMark, coVisible]
Position = 2
Spacing = -1
Style = vsOwnerDraw
Width = 350
end>
Header.Font.Height = -12 Header.Font.Height = -12
Header.Font.Name = 'Arial' Header.Font.Name = 'Arial'
Header.Font.Style = [fsBold] Header.Font.Style = [fsBold]
@@ -82,38 +114,6 @@ object HeaderOwnerDrawForm: THeaderOwnerDrawForm
OnHeaderMouseDown = HeaderCustomDrawTreeHeaderMouseDown OnHeaderMouseDown = HeaderCustomDrawTreeHeaderMouseDown
OnHeaderMouseUp = HeaderCustomDrawTreeHeaderMouseUp OnHeaderMouseUp = HeaderCustomDrawTreeHeaderMouseUp
OnStateChange = HeaderCustomDrawTreeStateChange OnStateChange = HeaderCustomDrawTreeStateChange
Columns = <
item
ImageIndex = 1
Options = [coDraggable, coEnabled, coResizable, coShowDropMark, coVisible]
Spacing = -1
Width = 200
WideText = 'Default drawing'
WideHint = 'This column is drawn entirely by the tree.'
end
item
Alignment = taCenter
ImageIndex = 2
Layout = blGlyphTop
Options = [coAllowClick, coDraggable, coEnabled, coResizable, coShowDropMark, coVisible]
Position = 1
Spacing = -10
Style = vsOwnerDraw
Width = 230
WideText = 'Custom background'
WideHint = 'Only the background is customized.'
end
item
Alignment = taCenter
Color = clInfoBk
ImageIndex = 0
Options = [coAllowClick, coDraggable, coEnabled, coResizable, coShowDropMark, coVisible]
Position = 2
Spacing = -1
Style = vsOwnerDraw
Width = 350
WideHint = 'Background and text in this column are customized.'
end>
end end
object HeaderImages: TImageList object HeaderImages: TImageList
Height = 90 Height = 90

View File

@@ -11,7 +11,7 @@ interface
uses uses
LCLIntf, Types, SysUtils, Classes, Graphics, Controls, Forms, LCLIntf, Types, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, VirtualTrees, StdCtrls, ExtCtrls, LResources, LCLType; Dialogs, VirtualTrees, StdCtrls, ExtCtrls, LResources, LCLType, LCLProc;
type type
THeaderOwnerDrawForm = class(TForm) THeaderOwnerDrawForm = class(TForm)
@@ -33,7 +33,7 @@ type
procedure HeaderCustomDrawTreeStateChange(Sender: TBaseVirtualTree; Enter, Leave: TVirtualTreeStates); procedure HeaderCustomDrawTreeStateChange(Sender: TBaseVirtualTree; Enter, Leave: TVirtualTreeStates);
procedure HeaderCustomDrawTreeGetText(Sender: TBaseVirtualTree; procedure HeaderCustomDrawTreeGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
private private
FBackBitmap1, FBackBitmap1,
FBackBitmap2, FBackBitmap2,
@@ -297,7 +297,7 @@ end;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
procedure THeaderOwnerDrawForm.HeaderCustomDrawTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; procedure THeaderOwnerDrawForm.HeaderCustomDrawTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); Column: TColumnIndex; TextType: TVSTTextType; var CellText: UTF8String);
begin begin
CellText := 'Some simple text.'; CellText := 'Some simple text.';

View File

@@ -48,7 +48,7 @@ type
var var
MainForm: TMainForm; MainForm: TMainForm;
procedure LoadUnicodeStrings(Name: string; var Strings: array of WideString); procedure LoadUnicodeStrings(Name: string; var Strings: array of UTF8String);
procedure SetStatusbarText(const S: string); procedure SetStatusbarText(const S: string);
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
@@ -63,29 +63,25 @@ uses
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
procedure LoadUnicodeStrings(Name: string; var Strings: array of WideString); procedure LoadUnicodeStrings(Name: string; var Strings: array of UTF8String);
// Loads the Unicode strings from the resource. // Loads the Unicode strings from the resource.
var var
Res: TLResource; Res: TLResource;
Head, Tail: PWideChar; Head, Tail: PChar;
I: Integer; I: Integer;
begin begin
//Stream := TResourceStream.Create(0, Name, 'Unicode');
Res := LazarusResources.Find(Name); Res := LazarusResources.Find(Name);
if (Res <> nil) and (Res.Value <> '') then if (Res <> nil) and (Res.Value <> '') then
begin begin
//Head := Stream.Memory; Head := PChar(Res.Value);
Head := PWideChar(Res.Value);
// Skip byte order mark.
Inc(Head);
Tail := Head; Tail := Head;
for I := 0 to High(Strings) do for I := 0 to High(Strings) do
begin begin
Head := Tail; Head := Tail;
while not (Tail^ in [WideChar(#0), WideChar(#13)]) do while not (Tail^ in [#0, #13]) do
Inc(Tail); Inc(Tail);
SetString(Strings[I], Head, Tail - Head); SetString(Strings[I], Head, Tail - Head);
// Skip carriage return and linefeed. // Skip carriage return and linefeed.

View File

@@ -51,6 +51,14 @@ object NodeForm: TNodeForm
) )
Colors.SelectionRectangleBlendColor = 10539203 Colors.SelectionRectangleBlendColor = 10539203
DefaultNodeHeight = 130 DefaultNodeHeight = 130
DefaultText = 'Node'
Header.Columns = <
item
Position = 1
Width = 483
end
item
end>
Header.Font.Height = -11 Header.Font.Height = -11
Header.Font.Name = 'MS Sans Serif' Header.Font.Name = 'MS Sans Serif'
Header.Options = [hoAutoResize, hoColumnResize, hoDrag] Header.Options = [hoAutoResize, hoColumnResize, hoDrag]
@@ -75,20 +83,13 @@ object NodeForm: TNodeForm
OnInitNode = MLTreeInitNode OnInitNode = MLTreeInitNode
OnMeasureItem = MLTreeMeasureItem OnMeasureItem = MLTreeMeasureItem
OnStateChange = MLTreeStateChange OnStateChange = MLTreeStateChange
Columns = <
item
Position = 1
Width = 483
end
item
end>
end end
end end
object AutoAdjustCheckBox: TCheckBox object AutoAdjustCheckBox: TCheckBox
Left = 12 Left = 12
Height = 22 Height = 20
Top = 399 Top = 401
Width = 292 Width = 286
Anchors = [akLeft, akBottom] Anchors = [akLeft, akBottom]
Caption = 'Automatically adjust node height to node text.' Caption = 'Automatically adjust node height to node text.'
OnClick = AutoAdjustCheckBoxClick OnClick = AutoAdjustCheckBoxClick

View File

@@ -23,7 +23,7 @@ type
var InitialStates: TVirtualNodeInitStates); var InitialStates: TVirtualNodeInitStates);
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure MLTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; procedure MLTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
TextType: TVSTTextType; var CellText: WideString); TextType: TVSTTextType; var CellText: UTF8String);
procedure MLTreePaintText(Sender: TBaseVirtualTree; const TargetCanvas: TCanvas; Node: PVirtualNode; procedure MLTreePaintText(Sender: TBaseVirtualTree; const TargetCanvas: TCanvas; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType); Column: TColumnIndex; TextType: TVSTTextType);
procedure MLTreeEditing(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; var Allowed: Boolean); procedure MLTreeEditing(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; var Allowed: Boolean);
@@ -42,7 +42,7 @@ uses
var var
DemoText: array[0..29] of WideString; DemoText: array[0..29] of UTF8String;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
@@ -73,7 +73,7 @@ end;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
procedure TNodeForm.MLTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; procedure TNodeForm.MLTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
TextType: TVSTTextType; var CellText: WideString); TextType: TVSTTextType; var CellText: UTF8String);
// Returns the text for the given node. This text was loaded at form creation time from the application resource. // Returns the text for the given node. This text was loaded at form creation time from the application resource.

View File

@@ -3,8 +3,6 @@ object PropertiesForm: TPropertiesForm
Height = 419 Height = 419
Top = 294 Top = 294
Width = 637 Width = 637
HorzScrollBar.Page = 636
VertScrollBar.Page = 418
ActiveControl = VST3 ActiveControl = VST3
Caption = 'PropertiesForm' Caption = 'PropertiesForm'
ClientHeight = 419 ClientHeight = 419
@@ -12,7 +10,7 @@ object PropertiesForm: TPropertiesForm
Font.Height = -13 Font.Height = -13
Font.Name = 'MS Sans Serif' Font.Name = 'MS Sans Serif'
OnCreate = FormCreate OnCreate = FormCreate
LCLVersion = '0.9.25' LCLVersion = '0.9.27'
object Label9: TLabel object Label9: TLabel
Left = 420 Left = 420
Height = 81 Height = 81
@@ -45,7 +43,20 @@ object PropertiesForm: TPropertiesForm
Colors.BorderColor = clWindowText Colors.BorderColor = clWindowText
Colors.HotColor = clBlack Colors.HotColor = clBlack
DefaultNodeHeight = 20 DefaultNodeHeight = 20
DefaultText = 'Node'
Header.AutoSizeIndex = 1 Header.AutoSizeIndex = 1
Header.Columns = <
item
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark, coVisible, coAutoSpring]
Text = 'Properties'
Width = 203
end
item
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark, coVisible, coAutoSpring]
Position = 1
Text = 'Values'
Width = 196
end>
Header.Font.Height = -11 Header.Font.Height = -11
Header.Font.Name = 'MS Sans Serif' Header.Font.Name = 'MS Sans Serif'
Header.Height = 18 Header.Height = 18
@@ -76,18 +87,6 @@ object PropertiesForm: TPropertiesForm
OnInitChildren = VST3InitChildren OnInitChildren = VST3InitChildren
OnInitNode = VST3InitNode OnInitNode = VST3InitNode
OnStateChange = VST3StateChange OnStateChange = VST3StateChange
Columns = <
item
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark, coVisible, coAutoSpring]
Width = 203
WideText = 'Properties'
end
item
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark, coVisible, coAutoSpring]
Position = 1
Width = 196
WideText = 'Values'
end>
end end
object RadioGroup1: TRadioGroup object RadioGroup1: TRadioGroup
Left = 416 Left = 416

View File

@@ -32,17 +32,17 @@ type
procedure VST3CreateEditor(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; out EditLink: IVTEditLink); procedure VST3CreateEditor(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; out EditLink: IVTEditLink);
procedure VST3Editing(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; var Allowed: Boolean); procedure VST3Editing(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; var Allowed: Boolean);
procedure VST3GetHint(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; procedure VST3GetHint(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
var LineBreakStyle: TVTTooltipLineBreakStyle; var HintText: WideString); var LineBreakStyle: TVTTooltipLineBreakStyle; var HintText: UTF8String);
procedure VST3GetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex; procedure VST3GetImageIndex(Sender: TBaseVirtualTree; Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
var Ghosted: Boolean; var Index: Integer); var Ghosted: Boolean; var Index: Integer);
procedure VST3GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; procedure VST3GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
procedure VST3InitChildren(Sender: TBaseVirtualTree; Node: PVirtualNode; var ChildCount: Cardinal); procedure VST3InitChildren(Sender: TBaseVirtualTree; Node: PVirtualNode; var ChildCount: Cardinal);
procedure VST3InitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode; procedure VST3InitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode;
var InitialStates: TVirtualNodeInitStates); var InitialStates: TVirtualNodeInitStates);
procedure VST3PaintText(Sender: TBaseVirtualTree; const TargetCanvas: TCanvas; Node: PVirtualNode; procedure VST3PaintText(Sender: TBaseVirtualTree; const TargetCanvas: TCanvas; Node: PVirtualNode;
Column: TColumnIndex; TextType: TVSTTextType); Column: TColumnIndex; TextType: TVSTTextType);
procedure VST3IncrementalSearch(Sender: TBaseVirtualTree; Node: PVirtualNode; const Text: WideString; procedure VST3IncrementalSearch(Sender: TBaseVirtualTree; Node: PVirtualNode; const Text: UTF8String;
var Result: Integer); var Result: Integer);
procedure RadioGroup1Click(Sender: TObject); procedure RadioGroup1Click(Sender: TObject);
procedure VST3StateChange(Sender: TBaseVirtualTree; Enter, Leave: TVirtualTreeStates); procedure VST3StateChange(Sender: TBaseVirtualTree; Enter, Leave: TVirtualTreeStates);
@@ -111,7 +111,7 @@ end;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
procedure TPropertiesForm.VST3GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; procedure TPropertiesForm.VST3GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
TextType: TVSTTextType; var CellText: WideString); TextType: TVSTTextType; var CellText: UTF8String);
var var
Data: PPropertyData; Data: PPropertyData;
@@ -141,7 +141,7 @@ end;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
procedure TPropertiesForm.VST3GetHint(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; procedure TPropertiesForm.VST3GetHint(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
var LineBreakStyle: TVTTooltipLineBreakStyle; var HintText: WideString); var LineBreakStyle: TVTTooltipLineBreakStyle; var HintText: UTF8String);
begin begin
// Add a dummy hint to the normal hint to demonstrate multiline hints. // Add a dummy hint to the normal hint to demonstrate multiline hints.
@@ -248,7 +248,7 @@ end;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
procedure TPropertiesForm.VST3IncrementalSearch(Sender: TBaseVirtualTree; Node: PVirtualNode; const Text: WideString; procedure TPropertiesForm.VST3IncrementalSearch(Sender: TBaseVirtualTree; Node: PVirtualNode; const Text: UTF8String;
var Result: Integer); var Result: Integer);
var var

View File

@@ -1544,7 +1544,9 @@ object SpeedForm: TSpeedForm
BorderStyle = bsSingle BorderStyle = bsSingle
Colors.BorderColor = clWindowText Colors.BorderColor = clWindowText
Colors.HotColor = clBlack Colors.HotColor = clBlack
DefaultText = 'Node'
Header.AutoSizeIndex = -1 Header.AutoSizeIndex = -1
Header.Columns = <>
Header.Font.Height = -11 Header.Font.Height = -11
Header.Font.Name = 'MS Sans Serif' Header.Font.Name = 'MS Sans Serif'
Header.MainColumn = -1 Header.MainColumn = -1
@@ -1562,7 +1564,6 @@ object SpeedForm: TSpeedForm
OnGetText = VST1GetText OnGetText = VST1GetText
OnStateChange = VST1StateChange OnStateChange = VST1StateChange
OnStructureChange = VST1StructureChange OnStructureChange = VST1StructureChange
Columns = <>
end end
object GroupBox2: TGroupBox object GroupBox2: TGroupBox
Left = 268 Left = 268
@@ -1577,9 +1578,9 @@ object SpeedForm: TSpeedForm
TabOrder = 1 TabOrder = 1
object SBCheckBox: TCheckBox object SBCheckBox: TCheckBox
Left = 24 Left = 24
Height = 22 Height = 20
Top = 10 Top = 10
Width = 132 Width = 126
Caption = 'show background' Caption = 'show background'
OnClick = SBCheckBoxClick OnClick = SBCheckBoxClick
TabOrder = 0 TabOrder = 0

View File

@@ -39,7 +39,7 @@ type
procedure ClearButtonClick(Sender: TObject); procedure ClearButtonClick(Sender: TObject);
procedure AddButtonClick(Sender: TObject); procedure AddButtonClick(Sender: TObject);
procedure VST1GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; procedure VST1GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
procedure VST1Change(Sender: TBaseVirtualTree; Node: PVirtualNode); procedure VST1Change(Sender: TBaseVirtualTree; Node: PVirtualNode);
procedure VST1StructureChange(Sender: TBaseVirtualTree; Node: PVirtualNode; Reason: TChangeReason); procedure VST1StructureChange(Sender: TBaseVirtualTree; Node: PVirtualNode; Reason: TChangeReason);
procedure DeleteSelectionButtonClick(Sender: TObject); procedure DeleteSelectionButtonClick(Sender: TObject);
@@ -143,7 +143,7 @@ end;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
procedure TSpeedForm.VST1GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; procedure TSpeedForm.VST1GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
begin begin
CellText := Format('Level %d, Index %d', [Sender.GetNodeLevel(Node), Node.Index]); CellText := Format('Level %d, Index %d', [Sender.GetNodeLevel(Node), Node.Index]);

View File

@@ -4125,9 +4125,15 @@ object VisibilityForm: TVisibilityForm
Colors.UnfocusedSelectionColor = clHighlight Colors.UnfocusedSelectionColor = clHighlight
Colors.UnfocusedSelectionBorderColor = clHighlight Colors.UnfocusedSelectionBorderColor = clHighlight
DefaultNodeHeight = 24 DefaultNodeHeight = 24
DefaultText = 'Node'
Font.Color = clNavy Font.Color = clNavy
Font.Height = -11 Font.Height = -11
Font.Name = 'Verdana' Font.Name = 'Verdana'
Header.Columns = <
item
Text = 'Main column'
Width = 204
end>
Header.Font.Color = clNavy Header.Font.Color = clNavy
Header.Font.Height = -13 Header.Font.Height = -13
Header.Font.Name = 'Verdana' Header.Font.Name = 'Verdana'
@@ -4157,12 +4163,6 @@ object VisibilityForm: TVisibilityForm
OnInitChildren = VST2InitChildren OnInitChildren = VST2InitChildren
OnInitNode = VST1InitNode OnInitNode = VST1InitNode
OnScroll = VST2Scroll OnScroll = VST2Scroll
Columns = <
item
Width = 204
WideText = 'Main column'
end>
WideDefaultText = ''
end end
object VST3: TVirtualStringTree object VST3: TVirtualStringTree
Left = 207 Left = 207
@@ -8174,14 +8174,17 @@ object VisibilityForm: TVisibilityForm
Colors.UnfocusedSelectionColor = clHighlight Colors.UnfocusedSelectionColor = clHighlight
Colors.UnfocusedSelectionBorderColor = clHighlight Colors.UnfocusedSelectionBorderColor = clHighlight
DefaultNodeHeight = 24 DefaultNodeHeight = 24
DefaultText = 'Node'
Font.Color = clNavy Font.Color = clNavy
Font.Height = -11 Font.Height = -11
Font.Name = 'Verdana' Font.Name = 'Verdana'
Header.Columns = <>
Header.Font.Color = clNavy Header.Font.Color = clNavy
Header.Font.Height = -13 Header.Font.Height = -13
Header.Font.Name = 'Verdana' Header.Font.Name = 'Verdana'
Header.Font.Style = [fsBold] Header.Font.Style = [fsBold]
Header.Height = 24 Header.Height = 24
Header.MainColumn = -1
Header.Options = [hoColumnResize, hoDrag, hoVisible] Header.Options = [hoColumnResize, hoDrag, hoVisible]
Header.Style = hsFlatButtons Header.Style = hsFlatButtons
HintAnimation = hatNone HintAnimation = hatNone
@@ -8205,33 +8208,6 @@ object VisibilityForm: TVisibilityForm
OnInitChildren = VST2InitChildren OnInitChildren = VST2InitChildren
OnInitNode = VST1InitNode OnInitNode = VST1InitNode
OnScroll = VST3Scroll OnScroll = VST3Scroll
Columns = <
item
Options = [coAllowClick, coEnabled, coParentBidiMode, coResizable, coShowDropMark]
Width = 100
WideText = 'Column 0'
end
item
Position = 1
Width = 100
WideText = 'Column 1'
end
item
Position = 2
Width = 100
WideText = 'Column 2'
end
item
Position = 3
Width = 100
WideText = 'Column 3'
end
item
Position = 4
Width = 100
WideText = 'Column 4'
end>
WideDefaultText = ''
end end
end end
object VST1: TVirtualStringTree object VST1: TVirtualStringTree
@@ -8244,6 +8220,8 @@ object VisibilityForm: TVisibilityForm
Colors.BorderColor = clWindowText Colors.BorderColor = clWindowText
Colors.HotColor = clBlack Colors.HotColor = clBlack
DefaultNodeHeight = 24 DefaultNodeHeight = 24
DefaultText = 'Node'
Header.Columns = <>
Header.Font.Height = -11 Header.Font.Height = -11
Header.Font.Name = 'MS Sans Serif' Header.Font.Name = 'MS Sans Serif'
Header.MainColumn = -1 Header.MainColumn = -1
@@ -8260,7 +8238,5 @@ object VisibilityForm: TVisibilityForm
OnGetText = VST1GetText OnGetText = VST1GetText
OnInitChildren = VST1InitChildren OnInitChildren = VST1InitChildren
OnInitNode = VST1InitNode OnInitNode = VST1InitNode
Columns = <>
WideDefaultText = ''
end end
end end

View File

@@ -34,7 +34,7 @@ type
procedure FormCreate(Sender: TObject); procedure FormCreate(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject); procedure RadioGroup1Click(Sender: TObject);
procedure VST2GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; procedure VST2GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
procedure VST3Scroll(Sender: TBaseVirtualTree; DeltaX, DeltaY: Integer); procedure VST3Scroll(Sender: TBaseVirtualTree; DeltaX, DeltaY: Integer);
procedure VST2InitChildren(Sender: TBaseVirtualTree; Node: PVirtualNode; var ChildCount: Cardinal); procedure VST2InitChildren(Sender: TBaseVirtualTree; Node: PVirtualNode; var ChildCount: Cardinal);
procedure VST2Scroll(Sender: TBaseVirtualTree; DeltaX, DeltaY: Integer); procedure VST2Scroll(Sender: TBaseVirtualTree; DeltaX, DeltaY: Integer);
@@ -44,7 +44,7 @@ type
var Accept: Boolean); var Accept: Boolean);
procedure Splitter2Paint(Sender: TObject); procedure Splitter2Paint(Sender: TObject);
procedure VST1GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; procedure VST1GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString); var CellText: UTF8String);
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure FormHide(Sender: TObject); procedure FormHide(Sender: TObject);
private private
@@ -65,7 +65,7 @@ uses States;
type type
PLinkData = ^TLinkData; PLinkData = ^TLinkData;
TLinkData = record TLinkData = record
Caption: WideString; Caption: UTF8String;
OtherNode: PVirtualNode; OtherNode: PVirtualNode;
end; end;
@@ -167,7 +167,7 @@ end;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
procedure TVisibilityForm.VST2GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; procedure TVisibilityForm.VST2GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
TextType: TVSTTextType; var CellText: WideString); TextType: TVSTTextType; var CellText: UTF8String);
var var
Data: PLinkData; Data: PLinkData;
@@ -314,7 +314,7 @@ end;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
procedure TVisibilityForm.VST1GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; procedure TVisibilityForm.VST1GetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
TextType: TVSTTextType; var CellText: WideString); TextType: TVSTTextType; var CellText: UTF8String);
begin begin
CellText := Format('Node Level %d, Index %d', [Sender.GetNodeLevel(Node), Node.Index]); CellText := Format('Node Level %d, Index %d', [Sender.GetNodeLevel(Node), Node.Index]);

View File

@@ -72,9 +72,28 @@ object WindowsXPForm: TWindowsXPForm
Colors.GridLineColor = clBtnShadow Colors.GridLineColor = clBtnShadow
Colors.UnfocusedSelectionBorderColor = clBtnShadow Colors.UnfocusedSelectionBorderColor = clBtnShadow
DefaultNodeHeight = 34 DefaultNodeHeight = 34
DefaultText = 'Node'
DragMode = dmAutomatic DragMode = dmAutomatic
DrawSelectionMode = smBlendedRectangle DrawSelectionMode = smBlendedRectangle
Header.AutoSizeIndex = -1 Header.AutoSizeIndex = -1
Header.Columns = <
item
Color = 16250871
Options = [coAllowClick, coEnabled, coParentBidiMode, coResizable, coShowDropMark, coVisible]
Text = 'Name'
Width = 200
end
item
Alignment = taRightJustify
Position = 1
Text = 'Size'
Width = 100
end
item
Position = 2
Text = 'Type'
Width = 100
end>
Header.Font.CharSet = ANSI_CHARSET Header.Font.CharSet = ANSI_CHARSET
Header.Font.Height = -12 Header.Font.Height = -12
Header.Font.Name = 'Microsoft Sans Serif' Header.Font.Name = 'Microsoft Sans Serif'
@@ -102,24 +121,6 @@ object WindowsXPForm: TWindowsXPForm
OnInitChildren = XPTreeInitChildren OnInitChildren = XPTreeInitChildren
OnInitNode = XPTreeInitNode OnInitNode = XPTreeInitNode
OnStateChange = XPTreeStateChange OnStateChange = XPTreeStateChange
Columns = <
item
Color = 16250871
Options = [coAllowClick, coEnabled, coParentBidiMode, coResizable, coShowDropMark, coVisible]
Width = 200
WideText = 'Name'
end
item
Alignment = taRightJustify
Position = 1
Width = 100
WideText = 'Size'
end
item
Position = 2
Width = 100
WideText = 'Type'
end>
end end
object ToolBar2: TToolBar object ToolBar2: TToolBar
Height = 34 Height = 34

View File

@@ -51,13 +51,13 @@ type
var InitialStates: TVirtualNodeInitStates); var InitialStates: TVirtualNodeInitStates);
procedure XPTreeInitChildren(Sender: TBaseVirtualTree; Node: PVirtualNode; var ChildCount: Cardinal); procedure XPTreeInitChildren(Sender: TBaseVirtualTree; Node: PVirtualNode; var ChildCount: Cardinal);
procedure XPTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; procedure XPTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
TextType: TVSTTextType; var CellText: WideString); TextType: TVSTTextType; var CellText: UTF8String);
procedure XPTreeHeaderClick(Sender: TVTHeader; Column: TColumnIndex; Button: TMouseButton; Shift: TShiftState; procedure XPTreeHeaderClick(Sender: TVTHeader; Column: TColumnIndex; Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); X, Y: Integer);
procedure XPTreeCompareNodes(Sender: TBaseVirtualTree; Node1, Node2: PVirtualNode; Column: TColumnIndex; procedure XPTreeCompareNodes(Sender: TBaseVirtualTree; Node1, Node2: PVirtualNode; Column: TColumnIndex;
var Result: Integer); var Result: Integer);
procedure XPTreeGetHint(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; procedure XPTreeGetHint(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
var LineBreakStyle: TVTTooltipLineBreakStyle; var HintText: WideString); var LineBreakStyle: TVTTooltipLineBreakStyle; var HintText: UTF8String);
procedure Label4Click(Sender: TObject); procedure Label4Click(Sender: TObject);
procedure ToolButton9Click(Sender: TObject); procedure ToolButton9Click(Sender: TObject);
procedure XPTreeStateChange(Sender: TBaseVirtualTree; Enter, Leave: TVirtualTreeStates); procedure XPTreeStateChange(Sender: TBaseVirtualTree; Enter, Leave: TVirtualTreeStates);
@@ -80,7 +80,7 @@ uses
type type
PEntry = ^TEntry; PEntry = ^TEntry;
TEntry = record TEntry = record
Caption: WideString; Caption: UTF8String;
Image: Integer; Image: Integer;
Size: Int64; Size: Int64;
end; end;
@@ -171,7 +171,7 @@ end;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
procedure TWindowsXPForm.XPTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; procedure TWindowsXPForm.XPTreeGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
TextType: TVSTTextType; var CellText: WideString); TextType: TVSTTextType; var CellText: UTF8String);
var var
Data: PEntry; Data: PEntry;
@@ -251,7 +251,7 @@ end;
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
procedure TWindowsXPForm.XPTreeGetHint(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; procedure TWindowsXPForm.XPTreeGetHint(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex;
var LineBreakStyle: TVTTooltipLineBreakStyle; var HintText: WideString); var LineBreakStyle: TVTTooltipLineBreakStyle; var HintText: UTF8String);
begin begin
// Show only a dummy hint. It is just to demonstrate how to do it. // Show only a dummy hint. It is just to demonstrate how to do it.

File diff suppressed because it is too large Load Diff