* Advanced demos:

- cleanup, set anchors for Speed, GeneralAbilities and Properties demos. 
 - Set forms BorderStyle to  bsNone

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1070 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
blikblum
2009-12-16 22:50:04 +00:00
parent f0db79ea25
commit 0514629222
9 changed files with 140 additions and 126 deletions

View File

@ -12,7 +12,7 @@ object AlignForm: TAlignForm
Font.Name = 'Arial'
OnCreate = FormCreate
OnDestroy = FormDestroy
LCLVersion = '0.9.27'
LCLVersion = '0.9.29'
object Label8: TLabel
Left = 8
Height = 111
@ -77,7 +77,6 @@ object AlignForm: TAlignForm
Top = 2
Width = 554
Anchors = [akTop, akLeft, akRight, akBottom]
BorderStyle = bsSingle
CheckImageKind = ckDarkTick
ClipboardFormats.Strings = (
'CSV'
@ -96,6 +95,7 @@ object AlignForm: TAlignForm
DefaultNodeHeight = 34
DefaultText = 'Node'
EditDelay = 100
Header.AutoSizeIndex = 0
Header.Background = clBtnShadow
Header.Columns = <
item
@ -103,6 +103,7 @@ object AlignForm: TAlignForm
Hint = 'Text is initially centered and has a left-to-right directionality.'
ImageIndex = 20
Options = [coAllowClick, coDraggable, coEnabled, coResizable, coShowDropMark, coVisible, coAutoSpring]
Position = 0
Spacing = 10
Text = 'English text column'
Width = 185
@ -110,7 +111,7 @@ object AlignForm: TAlignForm
item
Hint = 'Text is initially left aligned and has a left-to-right directionality.'
ImageIndex = 35
Options = [coAllowClick, coDraggable, coEnabled, coResizable, coShowDropMark, coVisible, coAutoSpring]
Options = [coAllowClick, coDraggable, coEnabled, coResizable, coShowDropMark, coVisible, coAutoSpring, coWrapCaption]
Position = 1
Spacing = 10
Text = 'Greek text column'
@ -126,6 +127,7 @@ object AlignForm: TAlignForm
Text = 'Hebrew/arabic text column'
Width = 209
end>
Header.DefaultHeight = 17
Header.Font.Height = -12
Header.Font.Name = 'Arial'
Header.Font.Style = [fsBold]

View File

@ -14,30 +14,35 @@ object GeneralForm: TGeneralForm
ShowHint = True
LCLVersion = '0.9.29'
object Label18: TLabel
Left = 502
AnchorSideTop.Control = RadioGroup2
AnchorSideTop.Side = asrBottom
Left = 499
Height = 14
Top = 384
Top = 374
Width = 105
Anchors = [akRight, akBottom]
Anchors = [akTop, akRight]
BorderSpacing.Top = 20
Caption = 'Switch check images:'
ParentColor = False
end
object Label19: TLabel
Left = 506
AnchorSideTop.Control = CheckMarkCombo
AnchorSideTop.Side = asrBottom
Left = 499
Height = 14
Top = 432
Top = 431
Width = 98
Anchors = [akRight, akBottom]
Anchors = [akTop, akRight]
BorderSpacing.Top = 20
Caption = 'Switch main column:'
ParentColor = False
end
object Label8: TLabel
Left = 502
Height = 77
Left = 499
Height = 53
Top = 40
Width = 206
Anchors = [akTop, akRight]
AutoSize = False
Caption = 'This sample is an introduction to the general look and feel of Virtual Treeview. Note: you can change almost every visual aspect of the control.'
ParentColor = False
WordWrap = True
@ -49,7 +54,6 @@ object GeneralForm: TGeneralForm
Width = 474
Anchors = [akTop, akLeft, akRight, akBottom]
AutoExpandDelay = 300
BorderStyle = bsSingle
ButtonFillMode = fmWindowColor
CheckImageKind = ckDarkTick
ClipboardFormats.Strings = (
@ -130,11 +134,14 @@ object GeneralForm: TGeneralForm
OnStateChange = VST2StateChange
end
object CheckMarkCombo: TComboBox
Left = 503
AnchorSideTop.Control = Label18
AnchorSideTop.Side = asrBottom
Left = 499
Height = 21
Top = 401
Width = 200
Anchors = [akRight, akBottom]
Top = 390
Width = 205
Anchors = [akTop, akRight]
BorderSpacing.Top = 2
ItemHeight = 13
Items.Strings = (
'Light check marks'
@ -144,8 +151,8 @@ object GeneralForm: TGeneralForm
'Flat tick marks'
'Windows XP style images'
'Custom check images'
'System check images'
'System flat check images'
'System default check images'
)
OnChange = CheckMarkComboChange
PopupMenu = PopupMenu1
@ -153,11 +160,14 @@ object GeneralForm: TGeneralForm
TabOrder = 1
end
object MainColumnUpDown: TUpDown
Left = 507
AnchorSideTop.Control = Label19
AnchorSideTop.Side = asrBottom
Left = 499
Height = 16
Top = 455
Top = 447
Width = 37
Anchors = [akRight, akBottom]
Anchors = [akTop, akRight]
BorderSpacing.Top = 2
Min = 0
Max = 2
Increment = 2
@ -168,10 +178,10 @@ object GeneralForm: TGeneralForm
OnChanging = MainColumnUpDownChanging
end
object BitBtn1: TBitBtn
Left = 504
Left = 499
Height = 30
Hint = 'Pick a font to be used by this tree.'
Top = 6
Top = 8
Width = 91
Anchors = [akTop, akRight]
Caption = 'Tree font'
@ -195,12 +205,15 @@ object GeneralForm: TGeneralForm
TabOrder = 3
end
object RadioGroup1: TRadioGroup
Left = 501
AnchorSideTop.Control = ThemeRadioGroup
AnchorSideTop.Side = asrBottom
Left = 499
Height = 77
Top = 209
Top = 190
Width = 205
Anchors = [akRight, akBottom]
Anchors = [akTop, akRight]
AutoFill = True
BorderSpacing.Top = 10
Caption = 'Tree button look: '
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
@ -221,12 +234,15 @@ object GeneralForm: TGeneralForm
TabOrder = 4
end
object RadioGroup2: TRadioGroup
Left = 501
AnchorSideTop.Control = RadioGroup1
AnchorSideTop.Side = asrBottom
Left = 499
Height = 77
Top = 297
Top = 277
Width = 205
Anchors = [akRight, akBottom]
Anchors = [akTop, akRight]
AutoFill = True
BorderSpacing.Top = 10
Caption = 'Draw selection mode: '
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
@ -247,12 +263,17 @@ object GeneralForm: TGeneralForm
TabOrder = 5
end
object ThemeRadioGroup: TRadioGroup
Left = 501
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Label8
AnchorSideTop.Side = asrBottom
Left = 499
Height = 77
Top = 125
Top = 103
Width = 205
Anchors = [akRight, akBottom]
Anchors = [akTop, akRight]
AutoFill = True
BorderSpacing.Left = 10
BorderSpacing.Top = 10
Caption = ' Switch XP theme awareness: '
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
@ -272,9 +293,9 @@ object GeneralForm: TGeneralForm
TabOrder = 6
end
object SaveButton: TBitBtn
Left = 611
Left = 613
Height = 30
Top = 6
Top = 8
Width = 91
Anchors = [akTop, akRight]
Caption = 'Save as text...'

View File

@ -2,7 +2,6 @@ unit GeneralAbilitiesDemo;
{$MODE Delphi}
// Virtual Treeview sample form demonstrating following features:
// - General use and feel of TVirtualStringTree.
// - Themed/non-themed painting.
@ -19,14 +18,6 @@ unit GeneralAbilitiesDemo;
interface
{$ifdef COMPILER_7_UP}
// For some things to work we need code, which is classified as being unsafe for .NET.
{$warn UNSAFE_TYPE off}
{$warn UNSAFE_CAST off}
{$warn UNSAFE_CODE off}
{$endif COMPILER_7_UP}
uses
LCLIntf, LCLType, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, VTHeaderPopup, VirtualTrees, ComCtrls, ExtCtrls, Menus,
@ -95,9 +86,7 @@ var
implementation
uses
{$ifdef Windows}
ShellAPI,
{$endif} Main, States;
Main, States;
//----------------------------------------------------------------------------------------------------------------------
@ -124,7 +113,7 @@ var
begin
// Determine if we are running on Windows XP.
{$ifdef Windows}
{$ifdef LCLWin32}
ThemeRadioGroup.Enabled := (Win32MajorVersion >= 5) and (Win32MinorVersion >= 1);
{$else}
ThemeRadioGroup.Enabled := False;

View File

@ -13,9 +13,11 @@ object MainForm: TMainForm
OnCreate = FormCreate
OnShow = FormShow
Position = poScreenCenter
LCLVersion = '0.9.25'
LCLVersion = '0.9.29'
object PageScroller1: TPanel
Left = 0
Height = 77
Top = 0
Width = 980
Align = alTop
ClientHeight = 77
@ -26,7 +28,9 @@ object MainForm: TMainForm
ShowHint = True
TabOrder = 0
object MainPanel: TPanel
Left = 0
Height = 70
Top = 0
Width = 976
AutoSize = True
BevelOuter = bvNone
@ -39,6 +43,7 @@ object MainForm: TMainForm
Left = 216
Height = 70
Hint = 'The speed breakthrough'
Top = 0
Width = 70
Color = clBtnFace
Glyph.Data = {
@ -158,6 +163,7 @@ object MainForm: TMainForm
Left = 285
Height = 70
Hint = 'General abilities and features'
Top = 0
Width = 70
Color = clBtnFace
Glyph.Data = {
@ -277,6 +283,7 @@ object MainForm: TMainForm
Left = 354
Height = 70
Hint = 'Property tree simulation'
Top = 0
Width = 70
Color = clBtnFace
Glyph.Data = {
@ -452,6 +459,7 @@ object MainForm: TMainForm
Left = 423
Height = 70
Hint = 'Hide and show nodes, sync two trees'
Top = 0
Width = 70
Color = clBtnFace
Glyph.Data = {
@ -571,6 +579,7 @@ object MainForm: TMainForm
Left = 492
Height = 70
Hint = 'Tree in grid simulation'
Top = 0
Width = 70
Color = clBtnFace
Glyph.Data = {
@ -690,6 +699,7 @@ object MainForm: TMainForm
Left = 561
Height = 70
Hint = 'A paint tree as directory tree'
Top = 0
Width = 70
Color = clBtnFace
Glyph.Data = {
@ -809,6 +819,7 @@ object MainForm: TMainForm
Left = 630
Height = 70
Hint = 'Alignment, directionality and internationalization'
Top = 0
Width = 70
Color = clBtnFace
Glyph.Data = {
@ -980,19 +991,22 @@ object MainForm: TMainForm
OnClick = DemoButtonClick
end
object Label1: TLabel
Height = 17
Left = 0
Height = 14
Top = 26
Width = 92
Width = 73
Caption = 'Demo picker'
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = [fsBold]
ParentColor = False
ParentFont = False
end
object Label2: TLabel
Left = 0
Height = 17
Top = 42
Width = 244
Width = 197
Caption = 'Which demo do you want to see?'
ParentColor = False
end
@ -1001,6 +1015,7 @@ object MainForm: TMainForm
Left = 699
Height = 70
Hint = 'Painting like in Windows XP'
Top = 0
Width = 70
Color = clBtnFace
Glyph.Data = {
@ -1232,6 +1247,7 @@ object MainForm: TMainForm
Left = 768
Height = 70
Hint = 'Multiline nodes'
Top = 0
Width = 70
Color = clBtnFace
Glyph.Data = {
@ -1562,6 +1578,7 @@ object MainForm: TMainForm
Left = 837
Height = 70
Hint = 'Custom header drawing in advanced mode'
Top = 0
Width = 70
Color = clBtnFace
Glyph.Data = {
@ -1825,6 +1842,7 @@ object MainForm: TMainForm
Left = 906
Height = 70
Hint = 'Exit'
Top = 0
Width = 70
Color = clBtnFace
Glyph.Data = {
@ -1942,13 +1960,15 @@ object MainForm: TMainForm
end
end
object StatusBar: TStatusBar
Height = 24
Top = 542
Left = 0
Height = 20
Top = 546
Width = 980
Panels = <>
end
object ContainerPanel: TPanel
Height = 465
Left = 0
Height = 469
Top = 77
Width = 980
Align = alClient

View File

@ -1,7 +1,6 @@
unit Main;
{$MODE Delphi}
{$H+}
// Advanced demo for Virtual Treeview showing various effects and features in several forms.
// This is the main form which serves as container window for the demo forms.
@ -9,12 +8,6 @@ unit Main;
interface
{$ifdef COMPILER_7_UP}
// For some things to work we need code, which is classified as being unsafe for .NET.
{$warn UNSAFE_TYPE off}
{$warn UNSAFE_CAST off}
{$warn UNSAFE_CODE off}
{$endif COMPILER_7_UP}
uses
LCLIntf, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
@ -48,7 +41,7 @@ type
var
MainForm: TMainForm;
procedure LoadUnicodeStrings(Name: string; var Strings: array of UTF8String);
procedure LoadUnicodeStrings(const Name: string; var Strings: array of UTF8String);
procedure SetStatusbarText(const S: string);
//----------------------------------------------------------------------------------------------------------------------
@ -63,7 +56,7 @@ uses
//----------------------------------------------------------------------------------------------------------------------
procedure LoadUnicodeStrings(Name: string; var Strings: array of UTF8String);
procedure LoadUnicodeStrings(const Name: string; var Strings: array of UTF8String);
// Loads the Unicode strings from the resource.
@ -158,22 +151,12 @@ begin
if Assigned(NewDemoClass) then
begin
//original code:
{
NewDemo := NewDemoClass.Create(Self);
NewDemo.Hide;
NewDemo.BorderStyle := bsNone;
NewDemo.Parent := ContainerPanel;
NewDemo.Align := alClient;
NewDemo.Show;
}
//workaround
NewDemo := NewDemoClass.Create(Self);
NewDemo.Hide;
//NewDemo.BorderStyle := bsNone;
NewDemo.Align := alClient;
NewDemo.Show;
NewDemo.Parent := ContainerPanel;
end;
end;
end;

View File

@ -10,26 +10,27 @@ object PropertiesForm: TPropertiesForm
Font.Height = -13
Font.Name = 'MS Sans Serif'
OnCreate = FormCreate
LCLVersion = '0.9.27'
LCLVersion = '0.9.29'
object Label9: TLabel
Left = 420
Height = 81
Top = 12
Width = 198
Height = 65
Top = 6
Width = 212
Anchors = [akTop, akRight]
AutoSize = False
Caption = 'This tree demonstrates a typical property page as it can be found in the property dialog for Word and other documents.'
ParentColor = False
WordWrap = True
end
object Label10: TLabel
AnchorSideTop.Control = Label9
AnchorSideTop.Side = asrBottom
Left = 420
Height = 93
Top = 100
Width = 198
Height = 49
Top = 81
Width = 212
Anchors = [akTop, akRight]
AutoSize = False
Caption = 'What makes this demonstration special is the sample implementation for node editors. However, neither of them is Unicode aware.'
BorderSpacing.Top = 10
Caption = 'What makes this demonstration special is the sample implementation for node editors.'
ParentColor = False
WordWrap = True
end
@ -39,7 +40,6 @@ object PropertiesForm: TPropertiesForm
Top = 6
Width = 399
Anchors = [akTop, akLeft, akRight, akBottom]
BorderStyle = bsSingle
Colors.BorderColor = clWindowText
Colors.HotColor = clBlack
DefaultNodeHeight = 20
@ -48,6 +48,7 @@ object PropertiesForm: TPropertiesForm
Header.Columns = <
item
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark, coVisible, coAutoSpring]
Position = 0
Text = 'Properties'
Width = 203
end
@ -55,8 +56,9 @@ object PropertiesForm: TPropertiesForm
Options = [coAllowClick, coDraggable, coEnabled, coParentBidiMode, coParentColor, coResizable, coShowDropMark, coVisible, coAutoSpring]
Position = 1
Text = 'Values'
Width = 196
Width = 192
end>
Header.DefaultHeight = 17
Header.Font.Height = -11
Header.Font.Name = 'MS Sans Serif'
Header.Height = 18
@ -91,7 +93,7 @@ object PropertiesForm: TPropertiesForm
Left = 416
Height = 69
Top = 306
Width = 202
Width = 216
Anchors = [akRight, akBottom]
AutoFill = True
Caption = ' Incremental search direction: '
@ -104,11 +106,11 @@ object PropertiesForm: TPropertiesForm
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
ClientHeight = 51
ClientWidth = 198
ClientWidth = 212
ItemIndex = 0
Items.Strings = (
'forward'
'backward'
'Forward'
'Backward'
)
OnClick = RadioGroup1Click
TabOrder = 1

View File

@ -1,7 +1,6 @@
unit PropertiesDemo;
{$MODE Delphi}
{$H+}
// Virtual Treeview sample form demonstrating following features:
// - Property page like string tree with individual node editors.
@ -11,15 +10,13 @@ unit PropertiesDemo;
interface
uses
{$ifdef Windows} Messages, {$endif}
LCLIntf, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, VirtualTrees, ExtCtrls, LResources;
StdCtrls, VirtualTrees, ExtCtrls, LResources, LMessages;
{$ifdef Windows}
const
// Helper message to decouple node change handling from edit handling.
WM_STARTEDITING = WM_USER + 778;
{$endif}
WM_STARTEDITING = LM_USER + 778;
type
TPropertiesForm = class(TForm)
VST3: TVirtualStringTree;
@ -47,9 +44,7 @@ type
procedure RadioGroup1Click(Sender: TObject);
procedure VST3StateChange(Sender: TBaseVirtualTree; Enter, Leave: TVirtualTreeStates);
private
{$ifdef Windows}
procedure WMStartEditing(var Message: TMessage); message WM_STARTEDITING;
{$endif}
procedure WMStartEditing(var Message: TLMessage); message WM_STARTEDITING;
end;
var
@ -203,9 +198,7 @@ begin
// to start a new edit operation if the last one is still in progress. So we post us a special message and
// in the message handler we then can start editing the new node. This works because the posted message
// is first executed *after* this event and the message, which triggered it is finished.
{$ifdef Windows}
PostMessage(Self.Handle, WM_STARTEDITING, Integer(Node), 0);
{$endif}
end;
end;
end;
@ -256,9 +249,6 @@ var
PropText: string;
begin
// Note: This code requires a proper Unicode/WideString comparation routine which I did not want to link here for
// size and clarity reasons. For now strings are (implicitely) converted to ANSI to make the comparation work.
// Search is not case sensitive.
S := Text;
SetStatusbarText('Searching for: ' + S);
@ -298,7 +288,6 @@ procedure TPropertiesForm.VST3StateChange(Sender: TBaseVirtualTree; Enter, Leave
begin
if tsIncrementalSearching in Enter then
// Note: Unicode will be converted to ANSI here, but for demonstration purposes we accept that for now.
SetStatusbarText('Searching for: ' + Sender.SearchBuffer);
if tsIncrementalSearching in Leave then
SetStatusbarText('');
@ -309,8 +298,7 @@ end;
//----------------------------------------------------------------------------------------------------------------------
{$ifdef Windows}
procedure TPropertiesForm.WMStartEditing(var Message: TMessage);
procedure TPropertiesForm.WMStartEditing(var Message: TLMessage);
// This message was posted by ourselves from the node change handler above to decouple that change event and our
// intention to start editing a node. This is necessary to avoid interferences between nodes editors potentially created
@ -324,7 +312,6 @@ begin
// Note: the test whether a node can really be edited is done in the OnEditing event.
VST3.EditNode(Node, 1);
end;
{$endif}
//----------------------------------------------------------------------------------------------------------------------
initialization

View File

@ -9,7 +9,7 @@ object SpeedForm: TSpeedForm
ClientWidth = 566
Font.Height = -13
Font.Name = 'MS Sans Serif'
LCLVersion = '0.9.27'
LCLVersion = '0.9.29'
Visible = True
object Label1: TLabel
Left = 7
@ -39,21 +39,23 @@ object SpeedForm: TSpeedForm
end
object Label4: TLabel
Left = 264
Height = 85
Height = 81
Top = 24
Width = 285
Anchors = [akTop, akRight]
AutoSize = False
Caption = 'Test how fast the Virtual Treeview is. You can add and delete nodes as much as you like (provided your system has enough memory). An upper limit of one million nodes for a 128MB system is a good start.'
ParentColor = False
WordWrap = True
end
object Label2: TLabel
AnchorSideTop.Control = Label4
AnchorSideTop.Side = asrBottom
Left = 262
Height = 17
Top = 114
Top = 115
Width = 122
Anchors = [akTop, akRight]
BorderSpacing.Top = 10
Caption = 'As an orientation:'
Font.Height = -13
Font.Name = 'MS Sans Serif'
@ -62,23 +64,27 @@ object SpeedForm: TSpeedForm
ParentFont = False
end
object Label5: TLabel
AnchorSideTop.Control = Label2
AnchorSideTop.Side = asrBottom
Left = 276
Height = 41
Top = 136
Height = 33
Top = 134
Width = 273
Anchors = [akTop, akRight]
AutoSize = False
BorderSpacing.Top = 2
Caption = '1.000.000 nodes on Windows XP Pro, 650Mhz Athlon, 256 MB RAM, take ~ 850ms to add.'
ParentColor = False
WordWrap = True
end
object Label7: TLabel
AnchorSideTop.Control = Label5
AnchorSideTop.Side = asrBottom
Left = 276
Height = 41
Top = 176
Width = 269
Height = 33
Top = 169
Width = 273
Anchors = [akTop, akRight]
AutoSize = False
BorderSpacing.Top = 2
Caption = '5.000.000 nodes on Windows XP Pro, 1.8Ghz Pentium M , 1 GB RAM, are added in ~1.6s.'
ParentColor = False
WordWrap = True
@ -1541,12 +1547,12 @@ object SpeedForm: TSpeedForm
1410041410071410041410071410041410071400000000000404040004070004
10141014040C04140C070700040C040C0404141007040004071014040000
}
BorderStyle = bsSingle
Colors.BorderColor = clWindowText
Colors.HotColor = clBlack
DefaultText = 'Node'
Header.AutoSizeIndex = -1
Header.Columns = <>
Header.DefaultHeight = 17
Header.Font.Height = -11
Header.Font.Name = 'MS Sans Serif'
Header.MainColumn = -1
@ -1565,22 +1571,24 @@ object SpeedForm: TSpeedForm
OnStructureChange = VST1StructureChange
end
object GroupBox2: TGroupBox
AnchorSideBottom.Control = VST1
AnchorSideBottom.Side = asrBottom
Left = 268
Height = 57
Top = 454
Width = 272
Width = 281
Anchors = [akRight, akBottom]
Caption = ' Background '
ClientHeight = 39
ClientWidth = 268
ClientWidth = 277
DragMode = dmAutomatic
TabOrder = 1
object SBCheckBox: TCheckBox
Left = 24
Height = 20
Top = 10
Width = 126
Caption = 'show background'
Width = 129
Caption = 'Show Background'
OnClick = SBCheckBoxClick
TabOrder = 0
end
@ -1596,11 +1604,14 @@ object SpeedForm: TSpeedForm
end
end
object GroupBox1: TGroupBox
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Control = GroupBox2
Left = 268
Height = 122
Top = 316
Top = 322
Width = 281
Anchors = [akRight, akBottom]
BorderSpacing.Bottom = 10
Caption = ' Add and remove nodes '
ClientHeight = 104
ClientWidth = 277

View File

@ -1,7 +1,6 @@
unit SpeedDemo;
{$MODE Delphi}
{$H+}
// Virtual Treeview sample form demonstrating following features:
// - Speed.
@ -12,7 +11,7 @@ interface
uses
LCLIntf, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, VirtualTrees, ExtDlgs, ComCtrls, {jpeg,} Menus, LResources, Buttons;
StdCtrls, VirtualTrees, ExtDlgs, ComCtrls, Menus, LResources, Buttons;
type
TSpeedForm = class(TForm)