├── .gitignore ├── Source ├── include │ └── intf │ │ ├── carbon │ │ ├── olemethods.inc │ │ ├── vtvdragmanager.inc │ │ └── vtgraphicsi.inc │ │ ├── cocoa │ │ ├── olemethods.inc │ │ ├── vtvdragmanager.inc │ │ └── vtgraphicsi.inc │ │ ├── gtk │ │ ├── olemethods.inc │ │ ├── vtvdragmanager.inc │ │ └── vtgraphicsi.inc │ │ ├── gtk2 │ │ ├── olemethods.inc │ │ ├── vtvdragmanager.inc │ │ └── vtgraphicsi.inc │ │ └── qt │ │ ├── olemethods.inc │ │ └── vtvdragmanager.inc ├── units │ ├── gtk │ │ ├── fakeactivex.pas │ │ ├── fakemmsystem.pas │ │ └── virtualpanningwindow.pas │ ├── qt │ │ ├── fakeactivex.pas │ │ ├── fakemmsystem.pas │ │ └── virtualpanningwindow.pas │ ├── carbon │ │ ├── fakeactivex.pas │ │ ├── fakemmsystem.pas │ │ └── virtualpanningwindow.pas │ ├── cocoa │ │ ├── fakeactivex.pas │ │ ├── fakemmsystem.pas │ │ └── virtualpanningwindow.pas │ ├── gtk2 │ │ ├── fakeactivex.pas │ │ ├── fakemmsystem.pas │ │ └── virtualpanningwindow.pas │ └── win32 │ │ └── virtualpanningwindow.pas ├── CHANGES.txt ├── VirtualTrees.res ├── VTAccessibilityFactory.pas ├── virtualtreeview_package.pas ├── upgrade-v5-issues.txt ├── registervirtualtreeview.pas ├── VTGraphics.pas ├── VTIDEEditors.pas ├── VTConfig.inc ├── vtlogger.pas ├── ideicons.lrs ├── virtualtreeview_package.lpk └── lclfunctions.inc ├── CHANGES.txt ├── Demos ├── OLE │ ├── OLE.res │ ├── mainicon.ico │ ├── Res │ │ ├── Extra.res │ │ └── Text.rtf │ ├── OLE.dpr │ ├── ole.lpr │ ├── OLE.exe.Manifest │ ├── ole.lpi │ └── OLE.dof ├── Advanced │ ├── Res │ │ ├── Arabic.uni │ │ ├── XP.bmp │ │ ├── Book.bmp │ │ ├── Exit.bmp │ │ ├── Eye.bmp │ │ ├── Fist.bmp │ │ ├── Chart.bmp │ │ ├── Chinese.bmp │ │ ├── Earth.bmp │ │ ├── Header.bmp │ │ ├── Omega.bmp │ │ ├── Sheets.bmp │ │ ├── Clipboard.bmp │ │ ├── Cyrillic.bmp │ │ ├── Multiline.bmp │ │ ├── Background.bmp │ │ ├── Background2.bmp │ │ ├── Paintbrush.bmp │ │ ├── Transcriptions.bmp │ │ ├── buildres.bat │ │ ├── Image list 24x24.bmp │ │ ├── Image list 32x32.bmp │ │ ├── Hebrew.uni │ │ ├── ForeignStrings.rc │ │ ├── ExtraRes.rc │ │ └── Greek.uni │ ├── Advanced.ico │ ├── Advanced.res │ ├── mainicon.ico │ ├── extraresources.res │ ├── GeneralAbilitiesDemo.pas │ ├── ExtraRes.rc │ ├── Advanced.exe.Manifest │ ├── Advanced.dpr │ ├── shlobjext.pas │ ├── Advanced.lpr │ ├── Advanced.dof │ ├── MultilineDemo.lfm │ └── MultilineDemo.dfm ├── images │ ├── Unit1.pas │ ├── images.lpr │ └── images.lpi ├── Minimal │ ├── Minimal.res │ ├── mainicon.ico │ ├── Minimal.dpr │ ├── Minimal.exe.Manifest │ ├── Minimal.dof │ └── Main.dfm ├── Objects │ ├── MVCDemo.dpr │ ├── MVCDemo.res │ ├── MVCPanel.pas │ ├── MVCTypes.pas │ ├── mainicon.ico │ ├── MVCDemoMain.dfm │ ├── MVCDemoMain.pas │ ├── mvcdemo.lpr │ ├── Objects.exe.Manifest │ ├── mvcdemo.lpi │ └── MVCDemo.dof ├── vtbasic │ ├── customers.db │ ├── vtbasic.lpr │ ├── ViewCode.pas │ ├── VTCheckList.lfm │ └── VTreeData.pas ├── mininal │ ├── minimal_lcl.lpr │ ├── Minimal.exe.Manifest │ ├── minimal_lcl.lpi │ └── Main.lfm ├── unicode │ ├── unicode.lpr │ ├── welcome.txt │ └── unicode.lpi ├── dataarray │ ├── dataarray.lpr │ └── dataarray.lpi ├── dragdrop │ ├── vtvdragdrop.lpr │ ├── fmain.lfm │ └── vtvdragdrop.lpi ├── VirtualTreeview.bdsgroup └── VirtualTreeview.bpg ├── Resources ├── VT XP.bmp ├── VT_XP.bmp ├── VT flat.bmp ├── VT_FLAT.bmp ├── VT_MOVEE.cur ├── VT_MOVEN.cur ├── VT_MOVES.cur ├── VT_MOVEW.cur ├── VT move all.bmp ├── VT move all.cur ├── VT_MOVEALL.cur ├── VT_MOVEEW.cur ├── VT_MOVENE.cur ├── VT_MOVENS.cur ├── VT_MOVENW.cur ├── VT_MOVESE.cur ├── VT_MOVESW.cur ├── VT check dark.bmp ├── VT move east.cur ├── VT move north.cur ├── VT move south.cur ├── VT move west.cur ├── VT tick dark.bmp ├── VT tick light.bmp ├── VT utilities.bmp ├── VT_CHECK_DARK.bmp ├── VT_MOVEEW_BMP.bmp ├── VT_MOVENS_BMP.bmp ├── VT_TICK_DARK.bmp ├── VT_TICK_LIGHT.bmp ├── VT_UTILITIES.bmp ├── VT_VERTSPLIT.cur ├── VT check light.bmp ├── VT header split.cur ├── VT_CHECK_LIGHT.bmp ├── VT_HEADERSPLIT.cur ├── VT_MOVEALL_BMP.bmp ├── VT_XPBUTTONMINUS.bmp ├── VT_XPBUTTONPLUS.bmp ├── VT XP button minus.bmp ├── VT XP button plus.bmp ├── VT move east-west.bmp ├── VT move east-west.cur ├── VT move north-east.cur ├── VT move north-west.cur ├── VT move south-east.cur ├── VT move south-west.cur ├── VT vertical split.cur ├── VT move north-south.bmp ├── VT move north-south.cur ├── VirtualTreeview-Icon.ico ├── createres.bat ├── tvtheaderpopupmenu.xpm ├── tvirtualdrawtree.xpm ├── tvirtualexplorertree.xpm └── tvirtualstringtree.xpm ├── Design └── VirtualTrees.dcr ├── Help ├── VirtualTreeview.chm └── Source │ ├── Images │ ├── Hot.bmp │ ├── Hot.jpg │ ├── Info.bmp │ ├── Info.jpg │ ├── Mail.bmp │ ├── Mail.jpg │ ├── Class 2.bmp │ ├── Class 2.jpg │ ├── Clock.bmp │ ├── Clock.jpg │ ├── Event 2.bmp │ ├── Event 2.jpg │ ├── Field 2.bmp │ ├── Field 2.jpg │ ├── Folder.bmp │ ├── Folder.jpg │ ├── Library.bmp │ ├── Library.jpg │ ├── License.bmp │ ├── License.jpg │ ├── Titel.jpg │ ├── Topaz.bmp │ ├── Topaz.jpg │ ├── Type 2.bmp │ ├── Type 2.jpg │ ├── Blue star.bmp │ ├── Blue star.jpg │ ├── CheckDark.bmp │ ├── CheckDark.jpg │ ├── Document.bmp │ ├── Document.jpg │ ├── GenericXP.bmp │ ├── GenericXP.jpg │ ├── Hierarchy.bmp │ ├── Hierarchy.jpg │ ├── LineModes.bmp │ ├── LineModes.jpg │ ├── Link new.bmp │ ├── Link new.jpg │ ├── Method 2.bmp │ ├── Method 2.jpg │ ├── Overview.bmp │ ├── Overview.jpg │ ├── Space100.bmp │ ├── Space100.jpg │ ├── Struct 2.bmp │ ├── Struct 2.jpg │ ├── TickDark.bmp │ ├── TickDark.jpg │ ├── TickLight.bmp │ ├── TickLight.jpg │ ├── private 2.bmp │ ├── private 2.jpg │ ├── public 2.bmp │ ├── public 2.jpg │ ├── public DG.bmp │ ├── public DG.jpg │ ├── virtual 2.bmp │ ├── virtual 2.jpg │ ├── Background.bmp │ ├── Background.jpg │ ├── Big folder.bmp │ ├── Big folder.jpg │ ├── CheckLight.bmp │ ├── CheckLight.jpg │ ├── Checker150.bmp │ ├── Checker150.jpg │ ├── Constant 2.bmp │ ├── Constant 2.jpg │ ├── Help+Support.bmp │ ├── Help+Support.jpg │ ├── Property 2.bmp │ ├── Property 2.jpg │ ├── Read only 3.bmp │ ├── Read only 3.jpg │ ├── Snow earth.bmp │ ├── Snow earth.jpg │ ├── Source code.bmp │ ├── Source code.jpg │ ├── StripeDark.bmp │ ├── StripeDark.jpg │ ├── StripeLight.bmp │ ├── StripeLight.jpg │ ├── TreeWindow.bmp │ ├── TreeWindow.jpg │ ├── Variable 2.bmp │ ├── Variable 2.jpg │ ├── abstract 2.bmp │ ├── abstract 2.jpg │ ├── private DG.bmp │ ├── private DG.jpg │ ├── protect DG.bmp │ ├── protect DG.jpg │ ├── protected 2.bmp │ ├── protected 2.jpg │ ├── published 2.bmp │ ├── published 2.jpg │ ├── read only 2.bmp │ ├── read only 2.jpg │ ├── readonly DG.bmp │ ├── readonly DG.jpg │ ├── Selection mode.bmp │ ├── Selection mode.jpg │ ├── ButtonFillModes.bmp │ ├── ButtonFillModes.jpg │ ├── Check images overview.bmp │ └── Check images overview.jpg │ ├── VirtualTreeview.ldb │ └── Include │ ├── GettingStartedE.dtx │ ├── Licensing.dtx │ ├── Installation.dtx │ ├── AdditionalInfo.dtx │ ├── Overview.dtx │ └── Editing.dtx ├── Packages ├── CBuilder XE7 │ ├── VirtualTreesCD.res │ ├── VirtualTreesCR.res │ ├── VirtualTreesCD.cpp │ ├── VirtualTreesCR.cpp │ └── CBuilder.groupproj ├── RAD Studio XE3 │ ├── VirtualTreesD.res │ ├── VirtualTreesR.res │ ├── VirtualTreesD.dpk │ ├── VirtualTreesR.dpk │ └── RAD Studio XE3.groupproj ├── RAD Studio XE4 │ ├── VirtualTreesD.res │ ├── VirtualTreesR.res │ ├── VirtualTreesD.dpk │ ├── VirtualTreesR.dpk │ └── RAD Studio XE4.groupproj ├── RAD Studio XE5 │ ├── VirtualTreesD.res │ ├── VirtualTreesR.res │ ├── VirtualTreesD.cpp │ ├── VirtualTreesR.cpp │ ├── VirtualTreesD.dpk │ ├── VirtualTreesR.dpk │ └── RAD Studio XE5.groupproj ├── RAD Studio XE6 │ ├── VirtualTreesD.res │ ├── VirtualTreesR.res │ ├── VirtualTreesD.dpk │ ├── VirtualTreesR.dpk │ └── RAD Studio XE6.groupproj └── RAD Studio XE7 │ ├── VirtualTreesD.dpk │ ├── VirtualTreesR.dpk │ └── RAD Studio XE7.groupproj ├── .github └── ISSUE_TEMPLATE.txt ├── README.md ├── MakeRelease.Bat └── INSTALL.txt /.gitignore: -------------------------------------------------------------------------------- 1 | **/lib/ 2 | *.lps 3 | *.exe -------------------------------------------------------------------------------- /Source/include/intf/carbon/olemethods.inc: -------------------------------------------------------------------------------- 1 | 2 | {$i ../dummyolemethods.inc} 3 | -------------------------------------------------------------------------------- /Source/include/intf/cocoa/olemethods.inc: -------------------------------------------------------------------------------- 1 | 2 | {$i ../dummyolemethods.inc} 3 | -------------------------------------------------------------------------------- /Source/include/intf/gtk/olemethods.inc: -------------------------------------------------------------------------------- 1 | 2 | {$i ../dummyolemethods.inc} 3 | -------------------------------------------------------------------------------- /Source/include/intf/gtk2/olemethods.inc: -------------------------------------------------------------------------------- 1 | 2 | {$i ../dummyolemethods.inc} 3 | -------------------------------------------------------------------------------- /Source/include/intf/qt/olemethods.inc: -------------------------------------------------------------------------------- 1 | 2 | {$i ../dummyolemethods.inc} 3 | -------------------------------------------------------------------------------- /Source/include/intf/carbon/vtvdragmanager.inc: -------------------------------------------------------------------------------- 1 | 2 | {$i ../dummydragmanager.inc} 3 | -------------------------------------------------------------------------------- /Source/include/intf/cocoa/vtvdragmanager.inc: -------------------------------------------------------------------------------- 1 | 2 | {$i ../dummydragmanager.inc} 3 | -------------------------------------------------------------------------------- /Source/include/intf/gtk/vtvdragmanager.inc: -------------------------------------------------------------------------------- 1 | 2 | {$i ../dummydragmanager.inc} 3 | -------------------------------------------------------------------------------- /Source/include/intf/gtk2/vtvdragmanager.inc: -------------------------------------------------------------------------------- 1 | 2 | {$i ../dummydragmanager.inc} 3 | -------------------------------------------------------------------------------- /Source/include/intf/qt/vtvdragmanager.inc: -------------------------------------------------------------------------------- 1 | 2 | {$i ../dummydragmanager.inc} 3 | -------------------------------------------------------------------------------- /Source/units/gtk/fakeactivex.pas: -------------------------------------------------------------------------------- 1 | unit FakeActiveX; 2 | 3 | {$i ../dummyactivex.inc} 4 | -------------------------------------------------------------------------------- /Source/units/qt/fakeactivex.pas: -------------------------------------------------------------------------------- 1 | unit FakeActiveX; 2 | 3 | {$i ../dummyactivex.inc} 4 | -------------------------------------------------------------------------------- /CHANGES.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/CHANGES.txt -------------------------------------------------------------------------------- /Source/units/carbon/fakeactivex.pas: -------------------------------------------------------------------------------- 1 | unit FakeActiveX; 2 | 3 | {$i ../dummyactivex.inc} 4 | -------------------------------------------------------------------------------- /Source/units/cocoa/fakeactivex.pas: -------------------------------------------------------------------------------- 1 | unit FakeActiveX; 2 | 3 | {$i ../dummyactivex.inc} 4 | -------------------------------------------------------------------------------- /Source/units/gtk2/fakeactivex.pas: -------------------------------------------------------------------------------- 1 | unit FakeActiveX; 2 | 3 | {$i ../dummyactivex.inc} 4 | -------------------------------------------------------------------------------- /Demos/OLE/OLE.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/OLE/OLE.res -------------------------------------------------------------------------------- /Demos/Advanced/Res/Arabic.uni: -------------------------------------------------------------------------------- 1 | الجـديـد 2 | المنتجــات 3 | دليـل المواقـع العربية 4 | المساعـدة الفنية -------------------------------------------------------------------------------- /Resources/VT XP.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT XP.bmp -------------------------------------------------------------------------------- /Resources/VT_XP.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_XP.bmp -------------------------------------------------------------------------------- /Source/CHANGES.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Source/CHANGES.txt -------------------------------------------------------------------------------- /Demos/OLE/mainicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/OLE/mainicon.ico -------------------------------------------------------------------------------- /Demos/images/Unit1.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/images/Unit1.pas -------------------------------------------------------------------------------- /Resources/VT flat.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT flat.bmp -------------------------------------------------------------------------------- /Resources/VT_FLAT.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_FLAT.bmp -------------------------------------------------------------------------------- /Resources/VT_MOVEE.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_MOVEE.cur -------------------------------------------------------------------------------- /Resources/VT_MOVEN.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_MOVEN.cur -------------------------------------------------------------------------------- /Resources/VT_MOVES.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_MOVES.cur -------------------------------------------------------------------------------- /Resources/VT_MOVEW.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_MOVEW.cur -------------------------------------------------------------------------------- /Demos/Advanced/Res/XP.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/XP.bmp -------------------------------------------------------------------------------- /Demos/Minimal/Minimal.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Minimal/Minimal.res -------------------------------------------------------------------------------- /Demos/OLE/Res/Extra.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/OLE/Res/Extra.res -------------------------------------------------------------------------------- /Demos/Objects/MVCDemo.dpr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Objects/MVCDemo.dpr -------------------------------------------------------------------------------- /Demos/Objects/MVCDemo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Objects/MVCDemo.res -------------------------------------------------------------------------------- /Design/VirtualTrees.dcr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Design/VirtualTrees.dcr -------------------------------------------------------------------------------- /Help/VirtualTreeview.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/VirtualTreeview.chm -------------------------------------------------------------------------------- /Resources/VT move all.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT move all.bmp -------------------------------------------------------------------------------- /Resources/VT move all.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT move all.cur -------------------------------------------------------------------------------- /Resources/VT_MOVEALL.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_MOVEALL.cur -------------------------------------------------------------------------------- /Resources/VT_MOVEEW.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_MOVEEW.cur -------------------------------------------------------------------------------- /Resources/VT_MOVENE.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_MOVENE.cur -------------------------------------------------------------------------------- /Resources/VT_MOVENS.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_MOVENS.cur -------------------------------------------------------------------------------- /Resources/VT_MOVENW.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_MOVENW.cur -------------------------------------------------------------------------------- /Resources/VT_MOVESE.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_MOVESE.cur -------------------------------------------------------------------------------- /Resources/VT_MOVESW.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_MOVESW.cur -------------------------------------------------------------------------------- /Source/VirtualTrees.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Source/VirtualTrees.res -------------------------------------------------------------------------------- /Demos/Advanced/Advanced.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Advanced.ico -------------------------------------------------------------------------------- /Demos/Advanced/Advanced.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Advanced.res -------------------------------------------------------------------------------- /Demos/Advanced/Res/Book.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Book.bmp -------------------------------------------------------------------------------- /Demos/Advanced/Res/Exit.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Exit.bmp -------------------------------------------------------------------------------- /Demos/Advanced/Res/Eye.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Eye.bmp -------------------------------------------------------------------------------- /Demos/Advanced/Res/Fist.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Fist.bmp -------------------------------------------------------------------------------- /Demos/Advanced/mainicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/mainicon.ico -------------------------------------------------------------------------------- /Demos/Minimal/mainicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Minimal/mainicon.ico -------------------------------------------------------------------------------- /Demos/Objects/MVCPanel.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Objects/MVCPanel.pas -------------------------------------------------------------------------------- /Demos/Objects/MVCTypes.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Objects/MVCTypes.pas -------------------------------------------------------------------------------- /Demos/Objects/mainicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Objects/mainicon.ico -------------------------------------------------------------------------------- /Demos/vtbasic/customers.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/vtbasic/customers.db -------------------------------------------------------------------------------- /Help/Source/Images/Hot.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Hot.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Hot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Hot.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Info.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Info.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Info.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Info.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Mail.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Mail.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Mail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Mail.jpg -------------------------------------------------------------------------------- /Resources/VT check dark.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT check dark.bmp -------------------------------------------------------------------------------- /Resources/VT move east.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT move east.cur -------------------------------------------------------------------------------- /Resources/VT move north.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT move north.cur -------------------------------------------------------------------------------- /Resources/VT move south.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT move south.cur -------------------------------------------------------------------------------- /Resources/VT move west.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT move west.cur -------------------------------------------------------------------------------- /Resources/VT tick dark.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT tick dark.bmp -------------------------------------------------------------------------------- /Resources/VT tick light.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT tick light.bmp -------------------------------------------------------------------------------- /Resources/VT utilities.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT utilities.bmp -------------------------------------------------------------------------------- /Resources/VT_CHECK_DARK.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_CHECK_DARK.bmp -------------------------------------------------------------------------------- /Resources/VT_MOVEEW_BMP.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_MOVEEW_BMP.bmp -------------------------------------------------------------------------------- /Resources/VT_MOVENS_BMP.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_MOVENS_BMP.bmp -------------------------------------------------------------------------------- /Resources/VT_TICK_DARK.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_TICK_DARK.bmp -------------------------------------------------------------------------------- /Resources/VT_TICK_LIGHT.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_TICK_LIGHT.bmp -------------------------------------------------------------------------------- /Resources/VT_UTILITIES.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_UTILITIES.bmp -------------------------------------------------------------------------------- /Resources/VT_VERTSPLIT.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_VERTSPLIT.cur -------------------------------------------------------------------------------- /Demos/Advanced/Res/Chart.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Chart.bmp -------------------------------------------------------------------------------- /Demos/Advanced/Res/Chinese.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Chinese.bmp -------------------------------------------------------------------------------- /Demos/Advanced/Res/Earth.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Earth.bmp -------------------------------------------------------------------------------- /Demos/Advanced/Res/Header.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Header.bmp -------------------------------------------------------------------------------- /Demos/Advanced/Res/Omega.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Omega.bmp -------------------------------------------------------------------------------- /Demos/Advanced/Res/Sheets.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Sheets.bmp -------------------------------------------------------------------------------- /Demos/Objects/MVCDemoMain.dfm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Objects/MVCDemoMain.dfm -------------------------------------------------------------------------------- /Demos/Objects/MVCDemoMain.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Objects/MVCDemoMain.pas -------------------------------------------------------------------------------- /Help/Source/Images/Class 2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Class 2.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Class 2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Class 2.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Clock.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Clock.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Clock.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Clock.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Event 2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Event 2.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Event 2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Event 2.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Field 2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Field 2.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Field 2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Field 2.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Folder.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Folder.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Folder.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Folder.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Library.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Library.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Library.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Library.jpg -------------------------------------------------------------------------------- /Help/Source/Images/License.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/License.bmp -------------------------------------------------------------------------------- /Help/Source/Images/License.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/License.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Titel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Titel.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Topaz.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Topaz.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Topaz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Topaz.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Type 2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Type 2.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Type 2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Type 2.jpg -------------------------------------------------------------------------------- /Resources/VT check light.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT check light.bmp -------------------------------------------------------------------------------- /Resources/VT header split.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT header split.cur -------------------------------------------------------------------------------- /Resources/VT_CHECK_LIGHT.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_CHECK_LIGHT.bmp -------------------------------------------------------------------------------- /Resources/VT_HEADERSPLIT.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_HEADERSPLIT.cur -------------------------------------------------------------------------------- /Resources/VT_MOVEALL_BMP.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_MOVEALL_BMP.bmp -------------------------------------------------------------------------------- /Resources/VT_XPBUTTONMINUS.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_XPBUTTONMINUS.bmp -------------------------------------------------------------------------------- /Resources/VT_XPBUTTONPLUS.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT_XPBUTTONPLUS.bmp -------------------------------------------------------------------------------- /Demos/Advanced/Res/Clipboard.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Clipboard.bmp -------------------------------------------------------------------------------- /Demos/Advanced/Res/Cyrillic.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Cyrillic.bmp -------------------------------------------------------------------------------- /Demos/Advanced/Res/Multiline.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Multiline.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Blue star.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Blue star.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Blue star.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Blue star.jpg -------------------------------------------------------------------------------- /Help/Source/Images/CheckDark.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/CheckDark.bmp -------------------------------------------------------------------------------- /Help/Source/Images/CheckDark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/CheckDark.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Document.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Document.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Document.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Document.jpg -------------------------------------------------------------------------------- /Help/Source/Images/GenericXP.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/GenericXP.bmp -------------------------------------------------------------------------------- /Help/Source/Images/GenericXP.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/GenericXP.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Hierarchy.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Hierarchy.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Hierarchy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Hierarchy.jpg -------------------------------------------------------------------------------- /Help/Source/Images/LineModes.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/LineModes.bmp -------------------------------------------------------------------------------- /Help/Source/Images/LineModes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/LineModes.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Link new.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Link new.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Link new.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Link new.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Method 2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Method 2.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Method 2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Method 2.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Overview.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Overview.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Overview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Overview.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Space100.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Space100.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Space100.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Space100.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Struct 2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Struct 2.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Struct 2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Struct 2.jpg -------------------------------------------------------------------------------- /Help/Source/Images/TickDark.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/TickDark.bmp -------------------------------------------------------------------------------- /Help/Source/Images/TickDark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/TickDark.jpg -------------------------------------------------------------------------------- /Help/Source/Images/TickLight.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/TickLight.bmp -------------------------------------------------------------------------------- /Help/Source/Images/TickLight.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/TickLight.jpg -------------------------------------------------------------------------------- /Help/Source/Images/private 2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/private 2.bmp -------------------------------------------------------------------------------- /Help/Source/Images/private 2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/private 2.jpg -------------------------------------------------------------------------------- /Help/Source/Images/public 2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/public 2.bmp -------------------------------------------------------------------------------- /Help/Source/Images/public 2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/public 2.jpg -------------------------------------------------------------------------------- /Help/Source/Images/public DG.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/public DG.bmp -------------------------------------------------------------------------------- /Help/Source/Images/public DG.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/public DG.jpg -------------------------------------------------------------------------------- /Help/Source/Images/virtual 2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/virtual 2.bmp -------------------------------------------------------------------------------- /Help/Source/Images/virtual 2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/virtual 2.jpg -------------------------------------------------------------------------------- /Help/Source/VirtualTreeview.ldb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/VirtualTreeview.ldb -------------------------------------------------------------------------------- /Resources/VT XP button minus.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT XP button minus.bmp -------------------------------------------------------------------------------- /Resources/VT XP button plus.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT XP button plus.bmp -------------------------------------------------------------------------------- /Resources/VT move east-west.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT move east-west.bmp -------------------------------------------------------------------------------- /Resources/VT move east-west.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT move east-west.cur -------------------------------------------------------------------------------- /Resources/VT move north-east.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT move north-east.cur -------------------------------------------------------------------------------- /Resources/VT move north-west.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT move north-west.cur -------------------------------------------------------------------------------- /Resources/VT move south-east.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT move south-east.cur -------------------------------------------------------------------------------- /Resources/VT move south-west.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT move south-west.cur -------------------------------------------------------------------------------- /Resources/VT vertical split.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT vertical split.cur -------------------------------------------------------------------------------- /Demos/Advanced/Res/Background.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Background.bmp -------------------------------------------------------------------------------- /Demos/Advanced/Res/Background2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Background2.bmp -------------------------------------------------------------------------------- /Demos/Advanced/Res/Paintbrush.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Paintbrush.bmp -------------------------------------------------------------------------------- /Demos/Advanced/extraresources.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/extraresources.res -------------------------------------------------------------------------------- /Help/Source/Images/Background.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Background.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Background.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Big folder.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Big folder.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Big folder.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Big folder.jpg -------------------------------------------------------------------------------- /Help/Source/Images/CheckLight.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/CheckLight.bmp -------------------------------------------------------------------------------- /Help/Source/Images/CheckLight.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/CheckLight.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Checker150.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Checker150.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Checker150.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Checker150.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Constant 2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Constant 2.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Constant 2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Constant 2.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Help+Support.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Help+Support.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Help+Support.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Help+Support.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Property 2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Property 2.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Property 2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Property 2.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Read only 3.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Read only 3.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Read only 3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Read only 3.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Snow earth.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Snow earth.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Snow earth.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Snow earth.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Source code.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Source code.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Source code.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Source code.jpg -------------------------------------------------------------------------------- /Help/Source/Images/StripeDark.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/StripeDark.bmp -------------------------------------------------------------------------------- /Help/Source/Images/StripeDark.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/StripeDark.jpg -------------------------------------------------------------------------------- /Help/Source/Images/StripeLight.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/StripeLight.bmp -------------------------------------------------------------------------------- /Help/Source/Images/StripeLight.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/StripeLight.jpg -------------------------------------------------------------------------------- /Help/Source/Images/TreeWindow.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/TreeWindow.bmp -------------------------------------------------------------------------------- /Help/Source/Images/TreeWindow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/TreeWindow.jpg -------------------------------------------------------------------------------- /Help/Source/Images/Variable 2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Variable 2.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Variable 2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Variable 2.jpg -------------------------------------------------------------------------------- /Help/Source/Images/abstract 2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/abstract 2.bmp -------------------------------------------------------------------------------- /Help/Source/Images/abstract 2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/abstract 2.jpg -------------------------------------------------------------------------------- /Help/Source/Images/private DG.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/private DG.bmp -------------------------------------------------------------------------------- /Help/Source/Images/private DG.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/private DG.jpg -------------------------------------------------------------------------------- /Help/Source/Images/protect DG.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/protect DG.bmp -------------------------------------------------------------------------------- /Help/Source/Images/protect DG.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/protect DG.jpg -------------------------------------------------------------------------------- /Help/Source/Images/protected 2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/protected 2.bmp -------------------------------------------------------------------------------- /Help/Source/Images/protected 2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/protected 2.jpg -------------------------------------------------------------------------------- /Help/Source/Images/published 2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/published 2.bmp -------------------------------------------------------------------------------- /Help/Source/Images/published 2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/published 2.jpg -------------------------------------------------------------------------------- /Help/Source/Images/read only 2.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/read only 2.bmp -------------------------------------------------------------------------------- /Help/Source/Images/read only 2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/read only 2.jpg -------------------------------------------------------------------------------- /Help/Source/Images/readonly DG.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/readonly DG.bmp -------------------------------------------------------------------------------- /Help/Source/Images/readonly DG.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/readonly DG.jpg -------------------------------------------------------------------------------- /Resources/VT move north-south.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT move north-south.bmp -------------------------------------------------------------------------------- /Resources/VT move north-south.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VT move north-south.cur -------------------------------------------------------------------------------- /Resources/VirtualTreeview-Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Resources/VirtualTreeview-Icon.ico -------------------------------------------------------------------------------- /Source/VTAccessibilityFactory.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Source/VTAccessibilityFactory.pas -------------------------------------------------------------------------------- /Demos/Advanced/Res/Transcriptions.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Transcriptions.bmp -------------------------------------------------------------------------------- /Demos/Advanced/Res/buildres.bat: -------------------------------------------------------------------------------- 1 | lazres unicode.lrs Greek.uni Arabic.uni Hebrew.uni "Lorem ipsum.uni" 2 | lazres bitmap.lrs Transcriptions.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Selection mode.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Selection mode.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Selection mode.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Selection mode.jpg -------------------------------------------------------------------------------- /Demos/Advanced/GeneralAbilitiesDemo.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/GeneralAbilitiesDemo.pas -------------------------------------------------------------------------------- /Demos/Advanced/Res/Image list 24x24.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Image list 24x24.bmp -------------------------------------------------------------------------------- /Demos/Advanced/Res/Image list 32x32.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Demos/Advanced/Res/Image list 32x32.bmp -------------------------------------------------------------------------------- /Help/Source/Images/ButtonFillModes.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/ButtonFillModes.bmp -------------------------------------------------------------------------------- /Help/Source/Images/ButtonFillModes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/ButtonFillModes.jpg -------------------------------------------------------------------------------- /Help/Source/Include/GettingStartedE.dtx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Include/GettingStartedE.dtx -------------------------------------------------------------------------------- /Packages/CBuilder XE7/VirtualTreesCD.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Packages/CBuilder XE7/VirtualTreesCD.res -------------------------------------------------------------------------------- /Packages/CBuilder XE7/VirtualTreesCR.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Packages/CBuilder XE7/VirtualTreesCR.res -------------------------------------------------------------------------------- /Packages/RAD Studio XE3/VirtualTreesD.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Packages/RAD Studio XE3/VirtualTreesD.res -------------------------------------------------------------------------------- /Packages/RAD Studio XE3/VirtualTreesR.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Packages/RAD Studio XE3/VirtualTreesR.res -------------------------------------------------------------------------------- /Packages/RAD Studio XE4/VirtualTreesD.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Packages/RAD Studio XE4/VirtualTreesD.res -------------------------------------------------------------------------------- /Packages/RAD Studio XE4/VirtualTreesR.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Packages/RAD Studio XE4/VirtualTreesR.res -------------------------------------------------------------------------------- /Packages/RAD Studio XE5/VirtualTreesD.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Packages/RAD Studio XE5/VirtualTreesD.res -------------------------------------------------------------------------------- /Packages/RAD Studio XE5/VirtualTreesR.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Packages/RAD Studio XE5/VirtualTreesR.res -------------------------------------------------------------------------------- /Packages/RAD Studio XE6/VirtualTreesD.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Packages/RAD Studio XE6/VirtualTreesD.res -------------------------------------------------------------------------------- /Packages/RAD Studio XE6/VirtualTreesR.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Packages/RAD Studio XE6/VirtualTreesR.res -------------------------------------------------------------------------------- /Help/Source/Images/Check images overview.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Check images overview.bmp -------------------------------------------------------------------------------- /Help/Source/Images/Check images overview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Help/Source/Images/Check images overview.jpg -------------------------------------------------------------------------------- /Source/units/win32/virtualpanningwindow.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/blikblum/VirtualTreeView-Lazarus/HEAD/Source/units/win32/virtualpanningwindow.pas -------------------------------------------------------------------------------- /Demos/Advanced/Res/Hebrew.uni: -------------------------------------------------------------------------------- 1 | הלכות תלמוד תורה 2 | .יש בכללן שתי מצוות עשה--(א) ללמוד תורה; (ב) לכבד מלמדיה ויודעיה. וביאור שתי מצוות אלו בפרקים אלו 3 | הלכות תלמוד תורה פרק א -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.txt: -------------------------------------------------------------------------------- 1 | # What is the VirtualTreeView version / branch? 2 | 3 | # What is the Lazarus and Freepascal version? 4 | 5 | # Does the bug occurs also in Delphi? 6 | -------------------------------------------------------------------------------- /Demos/Advanced/Res/ForeignStrings.rc: -------------------------------------------------------------------------------- 1 | Arabic Unicode "Arabic.uni" 2 | Hebrew Unicode "Hebrew.uni" 3 | Greek Unicode "Greek.uni" 4 | 5 | LoremIpsum Unicode "Lorem ipsum.uni" 6 | -------------------------------------------------------------------------------- /Demos/Advanced/Res/ExtraRes.rc: -------------------------------------------------------------------------------- 1 | Arabic Unicode "Arabic.uni" 2 | Hebrew Unicode "Hebrew.uni" 3 | Greek Unicode "Greek.uni" 4 | 5 | LoremIpsum Unicode "Lorem ipsum.uni" 6 | 7 | Transcriptions Bitmap "Transcriptions.bmp" 8 | 9 | -------------------------------------------------------------------------------- /Demos/Advanced/ExtraRes.rc: -------------------------------------------------------------------------------- 1 | Arabic Unicode "Res\Arabic.uni" 2 | Hebrew Unicode "Res\Hebrew.uni" 3 | Greek Unicode "Res\Greek.uni" 4 | 5 | LoremIpsum Unicode "Res\Lorem ipsum.uni" 6 | 7 | Transcriptions Bitmap "Res\Transcriptions.bmp" 8 | 9 | -------------------------------------------------------------------------------- /Demos/Advanced/Res/Greek.uni: -------------------------------------------------------------------------------- 1 | Greek text part 1 2 | Εκλογές στο Ισραήλ 3 | Απεβίωσε ο Γιάννης Ξενάκης 4 | Μεταμόσχευση χεριού 5 | Σάμπα, κλόουν, μασκαράδες και πενιές 6 | Greek text part 2 7 | Δοκιμάζει τις αντοχές του 8 | Ενα ντέρμπι αχρείαστο! 9 | Το Πόρτο Αλέγρε καλεί το Νταβός -------------------------------------------------------------------------------- /Demos/Minimal/Minimal.dpr: -------------------------------------------------------------------------------- 1 | program Minimal; 2 | 3 | uses 4 | Forms, 5 | Main in 'Main.pas' {MainForm}; 6 | 7 | {$R *.RES} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.CreateForm(TMainForm, MainForm); 12 | Application.Run; 13 | end. 14 | 15 | -------------------------------------------------------------------------------- /Demos/OLE/OLE.dpr: -------------------------------------------------------------------------------- 1 | program OLE; 2 | 3 | uses 4 | Forms, 5 | Main in 'Main.pas' {MainForm}; 6 | 7 | {$R *.RES} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.Title := 'OLE Drag''n drop and cut''n paste demo'; 12 | Application.CreateForm(TMainForm, MainForm); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Demos/OLE/ole.lpr: -------------------------------------------------------------------------------- 1 | program ole; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | uses 6 | {$IFDEF UNIX}{$IFDEF UseCThreads} 7 | cthreads, 8 | {$ENDIF}{$ENDIF} 9 | Interfaces, // this includes the LCL widgetset 10 | Forms 11 | { add your units here }, Main; 12 | 13 | {$R *.res} 14 | 15 | begin 16 | Application.Initialize; 17 | Application.CreateForm(TMainForm, MainForm); 18 | Application.Run; 19 | end. 20 | 21 | -------------------------------------------------------------------------------- /Demos/mininal/minimal_lcl.lpr: -------------------------------------------------------------------------------- 1 | program minimal_lcl; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | uses 6 | {$IFDEF UNIX}{$IFDEF UseCThreads} 7 | cthreads, 8 | {$ENDIF}{$ENDIF} 9 | Interfaces, // this includes the LCL widgetset 10 | Forms 11 | { add your units here }, Main; 12 | 13 | {$R *.res} 14 | 15 | begin 16 | Application.Initialize; 17 | Application.CreateForm(TMainForm,MainForm); 18 | Application.Run; 19 | end. 20 | 21 | -------------------------------------------------------------------------------- /Demos/unicode/unicode.lpr: -------------------------------------------------------------------------------- 1 | program unicode; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | uses 6 | {$IFDEF UNIX}{$IFDEF UseCThreads} 7 | cthreads, 8 | {$ENDIF}{$ENDIF} 9 | Interfaces, // this includes the LCL widgetset 10 | Forms 11 | { you can add units after this }, fMain; 12 | 13 | 14 | {$R *.res} 15 | 16 | begin 17 | Application.Initialize; 18 | Application.CreateForm(TMainForm, MainForm); 19 | Application.Run; 20 | end. 21 | 22 | -------------------------------------------------------------------------------- /Demos/Objects/mvcdemo.lpr: -------------------------------------------------------------------------------- 1 | program mvcdemo; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | uses 6 | {$IFDEF UNIX}{$IFDEF UseCThreads} 7 | cthreads, 8 | {$ENDIF}{$ENDIF} 9 | Interfaces, // this includes the LCL widgetset 10 | Forms 11 | { add your units here }, MVCDemoMain, lclextensions_package; 12 | 13 | {$R *.res} 14 | 15 | begin 16 | Application.Initialize; 17 | Application.CreateForm(TfmMVCDemo, fmMVCDemo); 18 | Application.Run; 19 | end. 20 | 21 | -------------------------------------------------------------------------------- /Demos/dataarray/dataarray.lpr: -------------------------------------------------------------------------------- 1 | program dataarray; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | uses 6 | {$IFDEF UNIX}{$IFDEF UseCThreads} 7 | cthreads, 8 | {$ENDIF}{$ENDIF} 9 | Interfaces, // this includes the LCL widgetset 10 | Forms 11 | { add your units here }, virtualtreeview_package, Main; 12 | 13 | {$R *.res} 14 | 15 | begin 16 | Application.Initialize; 17 | Application.CreateForm(TMainForm, MainForm); 18 | Application.Run; 19 | end. 20 | 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # VirtualTreeView-Lazarus 2 | This is the Lazarus port of Virtual Treeview control 3 | 4 | ## Requirements 5 | Versions 4.x or 5.x 6 | * Lazarus 1.6 or newer 7 | * fpc 2.6.4 or newer 8 | * LCL Extensions 0.6 or newer 9 | 10 | Version 6.x (lazarus_master branch) 11 | * Lazarus 1.6 or newer 12 | * fpc 3.1 (trunk) or newer 13 | * LCL Extensions 0.6 or newer 14 | 15 | ## Downloads 16 | See [releases] (https://github.com/blikblum/VirtualTreeView-Lazarus/releases) 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Demos/dragdrop/vtvdragdrop.lpr: -------------------------------------------------------------------------------- 1 | program vtvdragdrop; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | uses 6 | {$IFDEF UNIX}{$IFDEF UseCThreads} 7 | cthreads, 8 | {$ENDIF}{$ENDIF} 9 | Interfaces, // this includes the LCL widgetset 10 | Forms, fMain, virtualtreeview_package 11 | { you can add units after this }; 12 | 13 | {$R *.res} 14 | 15 | begin 16 | RequireDerivedFormResource := True; 17 | Application.Initialize; 18 | Application.CreateForm(TMainForm, MainForm); 19 | Application.Run; 20 | end. 21 | 22 | -------------------------------------------------------------------------------- /Resources/createres.bat: -------------------------------------------------------------------------------- 1 | lazres ..\virtualtrees.lrs VT_VERTSPLIT.cur VT_HEADERSPLIT.cur VT_MOVEALL.cur VT_MOVEE.cur VT_MOVEEW.cur VT_MOVEN.cur VT_MOVENE.cur VT_MOVENS.cur VT_MOVENW.cur VT_MOVES.cur VT_MOVESE.cur VT_MOVESW.cur VT_MOVEW.cur VT_XPBUTTONPLUS.bmp VT_XPBUTTONMINUS.bmp VT_CHECK_LIGHT.bmp VT_CHECK_DARK.bmp VT_FLAT.bmp VT_TICK_DARK.bmp VT_TICK_LIGHT.bmp VT_UTILITIES.bmp VT_XP.bmp VT_MOVENS_BMP.bmp VT_MOVEEW_BMP.bmp VT_MOVEALL_BMP.bmp 2 | 3 | lazres ..\ideicons.lrs tvirtualdrawtree.xpm tvirtualstringtree.xpm tvtheaderpopupmenu.xpm -------------------------------------------------------------------------------- /Source/units/gtk2/fakemmsystem.pas: -------------------------------------------------------------------------------- 1 | unit fakemmsystem; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, Types, LCLIntf; 9 | 10 | function timeBeginPeriod(x1: DWord): DWord; 11 | 12 | function timeEndPeriod(x1: DWord): DWord; 13 | 14 | function timeGetTime: DWORD; 15 | 16 | implementation 17 | 18 | function timeBeginPeriod(x1: DWord): DWord; 19 | begin 20 | // 21 | end; 22 | 23 | function timeEndPeriod(x1: DWord): DWord; 24 | begin 25 | // 26 | end; 27 | 28 | function timeGetTime: DWORD; 29 | begin 30 | Result := GetTickCount; 31 | end; 32 | 33 | end. 34 | 35 | -------------------------------------------------------------------------------- /Packages/CBuilder XE7/VirtualTreesCD.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | #pragma package(smart_init) 6 | //--------------------------------------------------------------------------- 7 | 8 | // Package source. 9 | //--------------------------------------------------------------------------- 10 | 11 | 12 | #pragma argsused 13 | int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) 14 | { 15 | return 1; 16 | } 17 | //--------------------------------------------------------------------------- 18 | -------------------------------------------------------------------------------- /Packages/CBuilder XE7/VirtualTreesCR.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | #pragma package(smart_init) 6 | //--------------------------------------------------------------------------- 7 | 8 | // Package source. 9 | //--------------------------------------------------------------------------- 10 | 11 | 12 | #pragma argsused 13 | int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) 14 | { 15 | return 1; 16 | } 17 | //--------------------------------------------------------------------------- 18 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE5/VirtualTreesD.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | #pragma package(smart_init) 6 | //--------------------------------------------------------------------------- 7 | 8 | // Package source. 9 | //--------------------------------------------------------------------------- 10 | 11 | 12 | #pragma argsused 13 | int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) 14 | { 15 | return 1; 16 | } 17 | //--------------------------------------------------------------------------- 18 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE5/VirtualTreesR.cpp: -------------------------------------------------------------------------------- 1 | //--------------------------------------------------------------------------- 2 | 3 | #include 4 | #pragma hdrstop 5 | #pragma package(smart_init) 6 | //--------------------------------------------------------------------------- 7 | 8 | // Package source. 9 | //--------------------------------------------------------------------------- 10 | 11 | 12 | #pragma argsused 13 | int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) 14 | { 15 | return 1; 16 | } 17 | //--------------------------------------------------------------------------- 18 | -------------------------------------------------------------------------------- /Demos/vtbasic/vtbasic.lpr: -------------------------------------------------------------------------------- 1 | program vtbasic; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | uses 6 | {$IFDEF UNIX}{$IFDEF UseCThreads} 7 | cthreads, 8 | {$ENDIF}{$ENDIF} 9 | Interfaces, // this includes the LCL widgetset 10 | Forms 11 | { add your units here }, Main 12 | {$ifdef DEBUG_VTV} 13 | ,vtlogger, ipcchannel 14 | {$endif} 15 | ; 16 | 17 | {$R *.res} 18 | 19 | begin 20 | {$ifdef DEBUG_VTV} 21 | Logger.Channels.Add(TIPCChannel.Create); 22 | Logger.Clear; 23 | Logger.ActiveClasses := [lcScroll, lcWarning]; 24 | {$endif} 25 | Application.Initialize; 26 | Application.CreateForm(TfrmMain, frmMain); 27 | Application.Run; 28 | end. 29 | 30 | -------------------------------------------------------------------------------- /Source/virtualtreeview_package.pas: -------------------------------------------------------------------------------- 1 | { This file was automatically created by Lazarus. Do not edit! 2 | This source is only used to compile and install the package. 3 | } 4 | 5 | unit virtualtreeview_package; 6 | 7 | {$warn 5023 off : no warning about unused units} 8 | interface 9 | 10 | uses 11 | VirtualTrees, VTHeaderPopup, registervirtualtreeview, VTGraphics, 12 | VTIDEEditors, LazarusPackageIntf; 13 | 14 | implementation 15 | 16 | procedure Register; 17 | begin 18 | RegisterUnit('registervirtualtreeview', @registervirtualtreeview.Register); 19 | end; 20 | 21 | initialization 22 | RegisterPackage('virtualtreeview_package', @Register); 23 | end. 24 | -------------------------------------------------------------------------------- /Demos/images/images.lpr: -------------------------------------------------------------------------------- 1 | program images; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | {.$define DEBUG_VTV} 6 | 7 | uses 8 | {$IFDEF UNIX}{$IFDEF UseCThreads} 9 | cthreads, 10 | {$ENDIF}{$ENDIF} 11 | Interfaces, // this includes the LCL widgetset 12 | Forms 13 | { add your units here }, Unit1 14 | {$ifdef DEBUG_VTV} 15 | ,ipcchannel, vtlogger 16 | {$endif} 17 | ; 18 | 19 | {$R *.res} 20 | 21 | begin 22 | {$ifdef DEBUG_VTV} 23 | Logger.Channels.Add(TIPCChannel.Create); 24 | Logger.Clear; 25 | Logger.ActiveClasses := [lcHeaderOffset]; 26 | {$endif} 27 | 28 | Application.Initialize; 29 | Application.CreateForm(TForm1, Form1); 30 | Application.Run; 31 | end. 32 | 33 | -------------------------------------------------------------------------------- /Source/units/qt/fakemmsystem.pas: -------------------------------------------------------------------------------- 1 | unit fakemmsystem; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, Types; 9 | 10 | function timeBeginPeriod(x1: DWord): DWord; 11 | 12 | function timeEndPeriod(x1: DWord): DWord; 13 | 14 | function timeGetTime: DWORD; 15 | 16 | implementation 17 | 18 | function timeBeginPeriod(x1: DWord): DWord; 19 | begin 20 | 21 | end; 22 | 23 | function timeEndPeriod(x1: DWord): DWord; 24 | begin 25 | 26 | end; 27 | 28 | function timeGetTime: DWORD; 29 | var 30 | ATime: TSystemTime; 31 | begin 32 | //todo: properly implement 33 | GetLocalTime(ATime); 34 | Result := ATime.MilliSecond; 35 | end; 36 | 37 | end. 38 | 39 | -------------------------------------------------------------------------------- /Source/units/carbon/fakemmsystem.pas: -------------------------------------------------------------------------------- 1 | unit fakemmsystem; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, Types; 9 | 10 | function timeBeginPeriod(x1: DWord): DWord; 11 | 12 | function timeEndPeriod(x1: DWord): DWord; 13 | 14 | function timeGetTime: DWORD; 15 | 16 | implementation 17 | 18 | function timeBeginPeriod(x1: DWord): DWord; 19 | begin 20 | 21 | end; 22 | 23 | function timeEndPeriod(x1: DWord): DWord; 24 | begin 25 | 26 | end; 27 | 28 | function timeGetTime: DWORD; 29 | var 30 | ATime: TSystemTime; 31 | begin 32 | //todo: properly implement 33 | GetLocalTime(ATime); 34 | Result := ATime.MilliSecond; 35 | end; 36 | 37 | end. 38 | 39 | -------------------------------------------------------------------------------- /Source/units/cocoa/fakemmsystem.pas: -------------------------------------------------------------------------------- 1 | unit fakemmsystem; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, Types; 9 | 10 | function timeBeginPeriod(x1: DWord): DWord; 11 | 12 | function timeEndPeriod(x1: DWord): DWord; 13 | 14 | function timeGetTime: DWORD; 15 | 16 | implementation 17 | 18 | function timeBeginPeriod(x1: DWord): DWord; 19 | begin 20 | 21 | end; 22 | 23 | function timeEndPeriod(x1: DWord): DWord; 24 | begin 25 | 26 | end; 27 | 28 | function timeGetTime: DWORD; 29 | var 30 | ATime: TSystemTime; 31 | begin 32 | //todo: properly implement 33 | GetLocalTime(ATime); 34 | Result := ATime.MilliSecond; 35 | end; 36 | 37 | end. 38 | 39 | -------------------------------------------------------------------------------- /Source/units/gtk/fakemmsystem.pas: -------------------------------------------------------------------------------- 1 | unit fakemmsystem; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils, Types; 9 | 10 | function timeBeginPeriod(x1: DWord): DWord; 11 | 12 | function timeEndPeriod(x1: DWord): DWord; 13 | 14 | function timeGetTime: DWORD; 15 | 16 | implementation 17 | 18 | function timeBeginPeriod(x1: DWord): DWord; 19 | begin 20 | 21 | end; 22 | 23 | function timeEndPeriod(x1: DWord): DWord; 24 | begin 25 | 26 | end; 27 | 28 | function timeGetTime: DWORD; 29 | var 30 | ATime: TSystemTime; 31 | begin 32 | //todo: properly implement 33 | GetLocalTime(ATime); 34 | Result := ATime.MilliSecond; 35 | end; 36 | 37 | end. 38 | 39 | -------------------------------------------------------------------------------- /Demos/OLE/OLE.exe.Manifest: -------------------------------------------------------------------------------- 1 | Windows Shell -------------------------------------------------------------------------------- /Source/include/intf/carbon/vtgraphicsi.inc: -------------------------------------------------------------------------------- 1 | //todo: properly implement 2 | procedure AlphaBlend(Source, Destination: HDC; const R: TRect; const Target: TPoint; Mode: TBlendMode; ConstantAlpha, Bias: Integer); 3 | begin 4 | case Mode of 5 | bmConstantAlpha, 6 | bmPerPixelAlpha, 7 | bmMasterAlpha, 8 | bmConstantAlphaAndColor: 9 | begin 10 | BitBlt(Destination, Target.X, Target.Y, R.Right - R.Left, R.Bottom - R.Top, Source, R.Left, R.Right, SRCCOPY); 11 | end; 12 | end; 13 | end; 14 | 15 | function CalculateScanline(Bits: Pointer; Width, Height, Row: Integer): Pointer; 16 | begin 17 | Result := nil; 18 | end; 19 | 20 | function GetBitmapBitsFromBitmap(Bitmap: HBITMAP): Pointer; 21 | begin 22 | Result := nil; 23 | end; -------------------------------------------------------------------------------- /Source/include/intf/cocoa/vtgraphicsi.inc: -------------------------------------------------------------------------------- 1 | //todo: properly implement 2 | procedure AlphaBlend(Source, Destination: HDC; const R: TRect; const Target: TPoint; Mode: TBlendMode; ConstantAlpha, Bias: Integer); 3 | begin 4 | case Mode of 5 | bmConstantAlpha, 6 | bmPerPixelAlpha, 7 | bmMasterAlpha, 8 | bmConstantAlphaAndColor: 9 | begin 10 | BitBlt(Destination, Target.X, Target.Y, R.Right - R.Left, R.Bottom - R.Top, Source, R.Left, R.Right, SRCCOPY); 11 | end; 12 | end; 13 | end; 14 | 15 | function CalculateScanline(Bits: Pointer; Width, Height, Row: Integer): Pointer; 16 | begin 17 | Result := nil; 18 | end; 19 | 20 | function GetBitmapBitsFromBitmap(Bitmap: HBITMAP): Pointer; 21 | begin 22 | Result := nil; 23 | end; -------------------------------------------------------------------------------- /Demos/Minimal/Minimal.exe.Manifest: -------------------------------------------------------------------------------- 1 | Windows Shell -------------------------------------------------------------------------------- /Demos/Objects/Objects.exe.Manifest: -------------------------------------------------------------------------------- 1 | Windows Shell -------------------------------------------------------------------------------- /Demos/mininal/Minimal.exe.Manifest: -------------------------------------------------------------------------------- 1 | Windows Shell -------------------------------------------------------------------------------- /Demos/Advanced/Advanced.exe.Manifest: -------------------------------------------------------------------------------- 1 | Windows Shell -------------------------------------------------------------------------------- /Demos/unicode/welcome.txt: -------------------------------------------------------------------------------- 1 | Arabic مرحباً 2 | Armenian բարի գալուստ 3 | Azeri xoş gəlmişsiniz 4 | Catalan benvinguts 5 | Cherokee ᎤᎵᎮᎵᏍᏗ 6 | Chinese (trad.) 歡迎 7 | Chinese (simp.) 欢迎 8 | Czech vítejte 9 | Danish velkommen 10 | Dutch welkom 11 | English welcome 12 | Esperanto bonveno 13 | Estonian tere tulemast 14 | Finnish tervetuloa 15 | French bienvenue 16 | German willkommen 17 | Greek καλώς ορίσατε 18 | Hebrew ברוכים הבאים 19 | Italian benvenuti 20 | Japanese ようこそ 21 | Latin salve 22 | Norwegian velkommen 23 | Persian خوش آمدید 24 | Polish zapraszamy 25 | Portuguese bem-vindo 26 | Romanian bun venit 27 | Sindhi ڀلي ڪري آيا 28 | Slovak víta vás 29 | Slovenian dobrodošli 30 | Spanish bienvenido 31 | Swahili karibu 32 | Swedish välkommen 33 | Turkish hoş geldiniz 34 | Uyghur خۇش كەپسىز 35 | Zulu sawubona 36 | -------------------------------------------------------------------------------- /Source/upgrade-v5-issues.txt: -------------------------------------------------------------------------------- 1 | * Use TImageList in checkbox support 2 | * Review ContentTo* methods 3 | * Review Thread support 4 | * Review TVirtualTreeHintWindow. LCL has better support than Delphi so, no need to much changes 5 | * Review PrepareBitmaps.FiilBitmaps 6 | * DoDragMsg 7 | * Evaluate the advantage to use SetCanvasOrigin instead of SetWindowOrgEx. Define UseSetCanvasOrigin 8 | * See if issue with pf32Bit PixelFormat in PaintTree is still present 9 | * Check black background in empty tree 10 | * Review ASM procedures 11 | * Review DoDragMsg/CMDrag 12 | * Add CHANGES.TXT file 13 | * Review KeyUnicode -> unnecessary? 14 | * review FDottedBrush life cycle 15 | * Reverted changes is FillBitmap. See if will work as is 16 | * See if will keep TVTHintKind 17 | * Review thread support 18 | * Test design-time header feature. Look for code in WMSetCursor (does not exist in LCL port) -------------------------------------------------------------------------------- /MakeRelease.Bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | REM This small batch file is intended to create a source code release file of the VirtualTreeView as ZIP archive 3 | REM It expects the ZIP.EXE from the InfoZip project V3.0 or higher to be in the system's search path 4 | REM Download e.g. from: ftp://ftp.info-zip.org/pub/infozip/win32/ 5 | REM 6 | ZIP -9 -r .\VirtualTreeView.zip INSTALL.txt Changes.txt Source Design Packages Demos Contributions Help\VirtualTreeview.chm -i *.pas -i *.dpk -i *.bpk -i *.bpg -i *.bdsproj -i -i *.groupproj *.dproj -i *.cbproj -i *.hlp -i *.rc *.res -i *.cfg -i *.dpr -i *.dof -i *.bpr -i *.dfm -i *.hpp -i *.cpp -i *.inc -i *.dcr -i *.chm -i *.png -i *.js -i *.txt -i *.bmp -i *.uni 7 | ECHO Source code zip archive "VirtualTreeView.zip" created. 8 | ECHO !!!Please ensure that the const TVTVersion is correct!!! 9 | ECHO !!!Please add version number to ZIP file name!!! 10 | ECHO !!!Please create SVN tag!!! 11 | pause -------------------------------------------------------------------------------- /Source/registervirtualtreeview.pas: -------------------------------------------------------------------------------- 1 | unit registervirtualtreeview; 2 | 3 | {$Mode ObjFpc} 4 | {$H+} 5 | 6 | interface 7 | 8 | procedure Register; 9 | 10 | implementation 11 | 12 | uses 13 | Classes, SysUtils, LResources, LazarusPackageIntf, 14 | VirtualTrees, VTHeaderPopup, VTIDEEditors, ComponentEditors; 15 | 16 | 17 | procedure RegisterUnitVirtualTrees; 18 | begin 19 | RegisterComponents('Virtual Controls', [TVirtualDrawTree, TVirtualStringTree]); 20 | end; 21 | 22 | procedure RegisterUnitVTHeaderPopup; 23 | begin 24 | RegisterComponents('Virtual Controls', [TVTHeaderPopupMenu]); 25 | end; 26 | 27 | procedure Register; 28 | 29 | begin 30 | RegisterComponentEditor([TVirtualDrawTree, TVirtualStringTree], TVirtualTreeEditor); 31 | RegisterUnit('VirtualTrees', @RegisterUnitVirtualTrees); 32 | RegisterUnit('VTHeaderPopup', @RegisterUnitVTHeaderPopup); 33 | end; 34 | 35 | initialization 36 | {$i ideicons.lrs} 37 | 38 | end. 39 | -------------------------------------------------------------------------------- /Source/VTGraphics.pas: -------------------------------------------------------------------------------- 1 | unit VTGraphics; 2 | 3 | {$mode delphi} 4 | 5 | interface 6 | 7 | uses 8 | DelphiCompat, Types, LCLIntf, LCLType; 9 | 10 | type 11 | // Describes the mode how to blend pixels. 12 | TBlendMode = ( 13 | bmConstantAlpha, // apply given constant alpha 14 | bmPerPixelAlpha, // use alpha value of the source pixel 15 | bmMasterAlpha, // use alpha value of source pixel and multiply it with the constant alpha value 16 | bmConstantAlphaAndColor // blend the destination color with the given constant color und the constant alpha value 17 | ); 18 | 19 | 20 | 21 | procedure AlphaBlend(Source, Destination: HDC; const R: TRect; const Target: TPoint; Mode: TBlendMode; ConstantAlpha, Bias: Integer); 22 | 23 | function CalculateScanline(Bits: Pointer; Width, Height, Row: Integer): Pointer; 24 | 25 | function GetBitmapBitsFromBitmap(Bitmap: HBITMAP): Pointer; 26 | 27 | implementation 28 | 29 | {$i vtgraphicsi.inc} 30 | 31 | end. 32 | 33 | -------------------------------------------------------------------------------- /Resources/tvtheaderpopupmenu.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * tvtheaderpopupmenu_xpm[] = { 3 | "24 24 7 1", 4 | ". c #000000", 5 | "+ c #000080", 6 | "@ c None", 7 | "# c #808000", 8 | "$ c #808080", 9 | "% c #C0C0C0", 10 | "& c #FFFFFF", 11 | "@@@@@@..@@@@@@@@@@@@@@@@", 12 | "@@@@@.%%.............@@@", 13 | "@@@@.&&&%%%%%%%%%%$$#.@@", 14 | "@@@@.&&&&&&&&&&&&#$$$.@@", 15 | "@@@.&&&&&&&&&&&&#$$$$.@@", 16 | "@@@@...#&&&&&&&&.$$$$.@@", 17 | "@@@@@@@.........$$$$#@@@", 18 | "@@@@@@@.$$$$$$$$&&&$.@@@", 19 | "@@@@@@@.$&&&&&&.&&&%.@@@", 20 | "@@@@@@@.$&+++&&.&&&$.@@@", 21 | "@@@@@@@.$&&&&&&.&&&.@@@@", 22 | "@@@@@@@.$&+++++.&&&.@@@@", 23 | "@@@@@@.&$+&&&+&+&&&.@@@@", 24 | "@@@@@.$&$&++++&&+&&.@@@@", 25 | "@@@@@.%&$&&&&+&&&+&.@@@@", 26 | "@@@@@.&&$....+&&&&+.@@@@", 27 | "@@@@@.&&&&&&&+&&&++++@@@", 28 | "@...@.&&&....+&&&&+&.@@@", 29 | "@.%%#....%%%%+&++&&+.@@@", 30 | "@.%%%%%%%%%%%++$+&&+@@@@", 31 | "@@.$%%%%%%%%%+%.%+&&+@@@", 32 | "@@.$$$$$$$$$$$$$.+&&+@@@", 33 | "@@@...............++@@@@", 34 | "@@@@@@@@@@@@@@@@@@@@@@@@"}; 35 | -------------------------------------------------------------------------------- /Resources/tvirtualdrawtree.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * tvirtualdrawtree_xpm[] = { 3 | "24 24 8 1", 4 | ". c #000000", 5 | "+ c None", 6 | "@ c #808000", 7 | "# c #20A080", 8 | "$ c #808080", 9 | "% c #C0A000", 10 | "& c #C0C0C0", 11 | "* c #FFFFFF", 12 | "++++++..++++++++++++++++", 13 | "+++++.&&.............+++", 14 | "++++.***&&&&&&&&&&$$@.++", 15 | "++++.************@$$$.++", 16 | "+++.************@$$$$.++", 17 | "++++...@********.$$$$.++", 18 | "+++++++.........$$$$@+++", 19 | "+++++++.$$$$$$$$***$.+++", 20 | "+++++++.*******%***&.+++", 21 | "+++++++.*.****%%%**$.+++", 22 | "+++++++.*...*%%%%%*.++++", 23 | "+++++++.*.**%%%%%%%.++++", 24 | "++++++.**.***####**.++++", 25 | "+++++.$**.**######*.++++", 26 | "+++++.&**..*######*.++++", 27 | "+++++.******######*.++++", 28 | "+++++.*******####**&.+++", 29 | "+...+.***.....******.+++", 30 | "+.&&@....&&&&&.****$.+++", 31 | "+.&&&&&&&&&&&&&.**&.++++", 32 | "++.$&&&&&&&&&&&.&&&.++++", 33 | "++.$$$$$$$$$$$$$.&.+++++", 34 | "+++...............++++++", 35 | "++++++++++++++++++++++++"}; 36 | -------------------------------------------------------------------------------- /Resources/tvirtualexplorertree.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * tvirtualexplorertree_xpm[] = { 3 | "24 24 8 1", 4 | ". c #000000", 5 | "+ c None", 6 | "@ c #808000", 7 | "# c #808080", 8 | "$ c #C0C0C0", 9 | "% c #E0E000", 10 | "& c #E0E080", 11 | "* c #FFFFFF", 12 | "++++++..++++++++++++++++", 13 | "+++++.$$.............+++", 14 | "++++.***$$$$$$$$$$##@.++", 15 | "++++.************@###.++", 16 | "+++.************@####.++", 17 | "++++...@********.####.++", 18 | "+++++++.........####@+++", 19 | "+++++++.########***#.+++", 20 | "+++++++.***********$.+++", 21 | "+++++++.**@@@@*****#.+++", 22 | "+++++++.*@&&&&@****.++++", 23 | "+++++++.*@&&&&%@@@*.++++", 24 | "++++++.**@&&&%%%%@*.++++", 25 | "+++++.#**@&%%%@%@@*.++++", 26 | "+++++.$**@&%%@%@%@*.++++", 27 | "+++++.***@@@@@@@@@*.++++", 28 | "+++++.*************$.+++", 29 | "+...+.***.....******.+++", 30 | "+.$$@....$$$$$.****#.+++", 31 | "+.$$$$$$$$$$$$$.**$.++++", 32 | "++.#$$$$$$$$$$$.$$$.++++", 33 | "++.#############.$.+++++", 34 | "+++...............++++++", 35 | "++++++++++++++++++++++++"}; 36 | -------------------------------------------------------------------------------- /Resources/tvirtualstringtree.xpm: -------------------------------------------------------------------------------- 1 | /* XPM */ 2 | static char * tvirtualstringtree_xpm[] = { 3 | "24 24 8 1", 4 | ". c #000000", 5 | "+ c None", 6 | "@ c #808000", 7 | "# c #20A080", 8 | "$ c #808080", 9 | "% c #C0A000", 10 | "& c #C0C0C0", 11 | "* c #FFFFFF", 12 | "++++++..++++++++++++++++", 13 | "+++++.&&.............+++", 14 | "++++.***&&&&&&&&&&$$@.++", 15 | "++++.************@$$$.++", 16 | "+++.************@$$$$.++", 17 | "++++...@********.$$$$.++", 18 | "+++++++.........$$$$@+++", 19 | "+++++++.$$$$$$$$***$.+++", 20 | "+++++++.***********&.+++", 21 | "+++++++.*.**......*$.+++", 22 | "+++++++.*....%%%%.*.++++", 23 | "+++++++.*.**......*.++++", 24 | "++++++.**.*********.++++", 25 | "+++++.$**.**......*.++++", 26 | "+++++.&**....####.*.++++", 27 | "+++++.******......*.++++", 28 | "+++++.*************&.+++", 29 | "+...+.***.....******.+++", 30 | "+.&&@....&&&&&.****$.+++", 31 | "+.&&&&&&&&&&&&&.**&.++++", 32 | "++.$&&&&&&&&&&&.&&&.++++", 33 | "++.$$$$$$$$$$$$$.&.+++++", 34 | "+++...............++++++", 35 | "++++++++++++++++++++++++"}; 36 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE3/VirtualTreesD.dpk: -------------------------------------------------------------------------------- 1 | package VirtualTreesD; 2 | 3 | {$R *.res} 4 | {$R '..\..\Design\VirtualTrees.dcr'} 5 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 6 | {$ALIGN 8} 7 | {$ASSERTIONS ON} 8 | {$BOOLEVAL OFF} 9 | {$DEBUGINFO ON} 10 | {$EXTENDEDSYNTAX ON} 11 | {$IMPORTEDDATA ON} 12 | {$IOCHECKS ON} 13 | {$LOCALSYMBOLS ON} 14 | {$LONGSTRINGS ON} 15 | {$OPENSTRINGS ON} 16 | {$OPTIMIZATION OFF} 17 | {$OVERFLOWCHECKS OFF} 18 | {$RANGECHECKS OFF} 19 | {$REFERENCEINFO ON} 20 | {$SAFEDIVIDE OFF} 21 | {$STACKFRAMES ON} 22 | {$TYPEDADDRESS OFF} 23 | {$VARSTRINGCHECKS ON} 24 | {$WRITEABLECONST OFF} 25 | {$MINENUMSIZE 1} 26 | {$IMAGEBASE $400000} 27 | {$DEFINE DEBUG} 28 | {$ENDIF IMPLICITBUILDING} 29 | {$DESCRIPTION 'VirtualTreeView Controls'} 30 | {$LIBSUFFIX '17'} 31 | {$DESIGNONLY} 32 | {$IMPLICITBUILD OFF} 33 | 34 | requires 35 | DesignIDE, 36 | VirtualTreesR; 37 | 38 | contains 39 | VirtualTreesReg in '..\..\Design\VirtualTreesReg.pas'; 40 | 41 | end. 42 | 43 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE4/VirtualTreesD.dpk: -------------------------------------------------------------------------------- 1 | package VirtualTreesD; 2 | 3 | {$R *.res} 4 | {$R '..\..\Design\VirtualTrees.dcr'} 5 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 6 | {$ALIGN 8} 7 | {$ASSERTIONS ON} 8 | {$BOOLEVAL OFF} 9 | {$DEBUGINFO ON} 10 | {$EXTENDEDSYNTAX ON} 11 | {$IMPORTEDDATA ON} 12 | {$IOCHECKS ON} 13 | {$LOCALSYMBOLS ON} 14 | {$LONGSTRINGS ON} 15 | {$OPENSTRINGS ON} 16 | {$OPTIMIZATION OFF} 17 | {$OVERFLOWCHECKS OFF} 18 | {$RANGECHECKS OFF} 19 | {$REFERENCEINFO ON} 20 | {$SAFEDIVIDE OFF} 21 | {$STACKFRAMES ON} 22 | {$TYPEDADDRESS OFF} 23 | {$VARSTRINGCHECKS ON} 24 | {$WRITEABLECONST OFF} 25 | {$MINENUMSIZE 1} 26 | {$IMAGEBASE $400000} 27 | {$DEFINE DEBUG} 28 | {$ENDIF IMPLICITBUILDING} 29 | {$DESCRIPTION 'VirtualTreeView Controls'} 30 | {$LIBSUFFIX '18'} 31 | {$DESIGNONLY} 32 | {$IMPLICITBUILD OFF} 33 | 34 | requires 35 | DesignIDE, 36 | VirtualTreesR; 37 | 38 | contains 39 | VirtualTreesReg in '..\..\Design\VirtualTreesReg.pas'; 40 | 41 | end. 42 | 43 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE5/VirtualTreesD.dpk: -------------------------------------------------------------------------------- 1 | package VirtualTreesD; 2 | 3 | {$R *.res} 4 | {$R '..\..\Design\VirtualTrees.dcr'} 5 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 6 | {$ALIGN 8} 7 | {$ASSERTIONS ON} 8 | {$BOOLEVAL OFF} 9 | {$DEBUGINFO ON} 10 | {$EXTENDEDSYNTAX ON} 11 | {$IMPORTEDDATA ON} 12 | {$IOCHECKS ON} 13 | {$LOCALSYMBOLS ON} 14 | {$LONGSTRINGS ON} 15 | {$OPENSTRINGS ON} 16 | {$OPTIMIZATION OFF} 17 | {$OVERFLOWCHECKS OFF} 18 | {$RANGECHECKS OFF} 19 | {$REFERENCEINFO ON} 20 | {$SAFEDIVIDE OFF} 21 | {$STACKFRAMES ON} 22 | {$TYPEDADDRESS OFF} 23 | {$VARSTRINGCHECKS ON} 24 | {$WRITEABLECONST OFF} 25 | {$MINENUMSIZE 1} 26 | {$IMAGEBASE $400000} 27 | {$DEFINE DEBUG} 28 | {$ENDIF IMPLICITBUILDING} 29 | {$DESCRIPTION 'VirtualTreeView Controls'} 30 | {$LIBSUFFIX '19'} 31 | {$DESIGNONLY} 32 | {$IMPLICITBUILD OFF} 33 | 34 | requires 35 | DesignIDE, 36 | VirtualTreesR; 37 | 38 | contains 39 | VirtualTreesReg in '..\..\Design\VirtualTreesReg.pas'; 40 | 41 | end. 42 | 43 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE6/VirtualTreesD.dpk: -------------------------------------------------------------------------------- 1 | package VirtualTreesD; 2 | 3 | {$R *.res} 4 | {$R '..\..\Design\VirtualTrees.dcr'} 5 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 6 | {$ALIGN 8} 7 | {$ASSERTIONS ON} 8 | {$BOOLEVAL OFF} 9 | {$DEBUGINFO ON} 10 | {$EXTENDEDSYNTAX ON} 11 | {$IMPORTEDDATA ON} 12 | {$IOCHECKS ON} 13 | {$LOCALSYMBOLS ON} 14 | {$LONGSTRINGS ON} 15 | {$OPENSTRINGS ON} 16 | {$OPTIMIZATION OFF} 17 | {$OVERFLOWCHECKS OFF} 18 | {$RANGECHECKS OFF} 19 | {$REFERENCEINFO ON} 20 | {$SAFEDIVIDE OFF} 21 | {$STACKFRAMES ON} 22 | {$TYPEDADDRESS OFF} 23 | {$VARSTRINGCHECKS ON} 24 | {$WRITEABLECONST OFF} 25 | {$MINENUMSIZE 1} 26 | {$IMAGEBASE $400000} 27 | {$DEFINE DEBUG} 28 | {$ENDIF IMPLICITBUILDING} 29 | {$DESCRIPTION 'VirtualTreeView Controls'} 30 | {$LIBSUFFIX '20'} 31 | {$DESIGNONLY} 32 | {$IMPLICITBUILD OFF} 33 | 34 | requires 35 | DesignIDE, 36 | VirtualTreesR; 37 | 38 | contains 39 | VirtualTreesReg in '..\..\Design\VirtualTreesReg.pas'; 40 | 41 | end. 42 | 43 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE7/VirtualTreesD.dpk: -------------------------------------------------------------------------------- 1 | package VirtualTreesD; 2 | 3 | {$R *.res} 4 | {$R '..\..\Design\VirtualTrees.dcr'} 5 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 6 | {$ALIGN 8} 7 | {$ASSERTIONS ON} 8 | {$BOOLEVAL OFF} 9 | {$DEBUGINFO OFF} 10 | {$EXTENDEDSYNTAX ON} 11 | {$IMPORTEDDATA ON} 12 | {$IOCHECKS ON} 13 | {$LOCALSYMBOLS OFF} 14 | {$LONGSTRINGS ON} 15 | {$OPENSTRINGS ON} 16 | {$OPTIMIZATION ON} 17 | {$OVERFLOWCHECKS OFF} 18 | {$RANGECHECKS OFF} 19 | {$REFERENCEINFO OFF} 20 | {$SAFEDIVIDE OFF} 21 | {$STACKFRAMES OFF} 22 | {$TYPEDADDRESS OFF} 23 | {$VARSTRINGCHECKS ON} 24 | {$WRITEABLECONST OFF} 25 | {$MINENUMSIZE 1} 26 | {$IMAGEBASE $400000} 27 | {$DEFINE RELEASE} 28 | {$ENDIF IMPLICITBUILDING} 29 | {$DESCRIPTION 'VirtualTreeView Controls'} 30 | {$LIBSUFFIX '21'} 31 | {$DESIGNONLY} 32 | {$IMPLICITBUILD OFF} 33 | 34 | requires 35 | DesignIDE, 36 | VirtualTreesR; 37 | 38 | contains 39 | VirtualTreesReg in '..\..\Design\VirtualTreesReg.pas'; 40 | 41 | end. 42 | 43 | -------------------------------------------------------------------------------- /Demos/vtbasic/ViewCode.pas: -------------------------------------------------------------------------------- 1 | unit ViewCode; 2 | 3 | interface 4 | 5 | uses 6 | DelphiCompat, LCLIntf, SysUtils, Variants, Classes, Graphics, Controls, Forms, 7 | Dialogs, SynHighlighterPas, SynEdit, LCLType; 8 | 9 | type 10 | 11 | { TfrmViewCode } 12 | 13 | TfrmViewCode = 14 | class(TForm) 15 | SynEdit1: TSynEdit; 16 | SynPasSyn1: TSynPasSyn; 17 | procedure FormActivate(Sender: TObject); 18 | 19 | private 20 | { Private declarations } 21 | public 22 | { Public declarations } 23 | end; 24 | 25 | implementation 26 | 27 | {$R *.lfm} 28 | 29 | procedure TfrmViewCode.FormActivate(Sender: TObject); 30 | var 31 | r : TRect; 32 | begin 33 | {get size of desktop} 34 | {$ifdef LCLWin32} 35 | //todo: enable when SPI_GETWORKAREA is implemented 36 | SystemParametersInfo(SPI_GETWORKAREA, 0, @r, 0); 37 | Height := r.Bottom-Top; 38 | Width := r.Right-Left; 39 | {$endif} 40 | end; 41 | 42 | end. 43 | -------------------------------------------------------------------------------- /Demos/Advanced/Advanced.dpr: -------------------------------------------------------------------------------- 1 | program Advanced; 2 | 3 | {$R 'ExtraRes.res' 'ExtraRes.rc'} 4 | 5 | uses 6 | Forms, 7 | SpeedDemo in 'SpeedDemo.pas' {SpeedForm}, 8 | DrawTreeDemo in 'DrawTreeDemo.pas' {DrawTreeForm}, 9 | GeneralAbilitiesDemo in 'GeneralAbilitiesDemo.pas' {frmGeneralAbilities}, 10 | PropertiesDemo in 'PropertiesDemo.pas' {PropertiesForm}, 11 | GridDemo in 'GridDemo.pas' {GridForm}, 12 | Editors in 'Editors.pas', 13 | VisibilityDemo in 'VisibilityDemo.pas' {VisibilityForm}, 14 | AlignDemo in 'AlignDemo.pas' {AlignForm}, 15 | Main in 'Main.pas' {MainForm}, 16 | WindowsXPStyleDemo in 'WindowsXPStyleDemo.pas' {WindowsXPForm}, 17 | MultilineDemo in 'MultilineDemo.pas' {NodeForm}, 18 | HeaderCustomDrawDemo in 'HeaderCustomDrawDemo.pas' {HeaderOwnerDrawForm}, 19 | States in 'States.pas' {StateForm}; 20 | 21 | {$R *.RES} 22 | 23 | begin 24 | Application.Initialize; 25 | Application.CreateForm(TMainForm, MainForm); 26 | Application.CreateForm(TStateForm, StateForm); 27 | Application.Run; 28 | end. 29 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE3/VirtualTreesR.dpk: -------------------------------------------------------------------------------- 1 | package VirtualTreesR; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO ON} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$LIBSUFFIX '17'} 29 | {$RUNONLY} 30 | {$IMPLICITBUILD OFF} 31 | 32 | requires 33 | vcl, 34 | vclx; 35 | 36 | contains 37 | VirtualTrees in '..\..\Source\VirtualTrees.pas', 38 | VTHeaderPopup in '..\..\Source\VTHeaderPopup.pas', 39 | VTAccessibilityFactory in '..\..\Source\VTAccessibilityFactory.pas', 40 | VTAccessibility in '..\..\Source\VTAccessibility.pas'; 41 | 42 | end. 43 | 44 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE4/VirtualTreesR.dpk: -------------------------------------------------------------------------------- 1 | package VirtualTreesR; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO ON} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$LIBSUFFIX '18'} 29 | {$RUNONLY} 30 | {$IMPLICITBUILD OFF} 31 | 32 | requires 33 | vcl, 34 | vclx; 35 | 36 | contains 37 | VirtualTrees in '..\..\Source\VirtualTrees.pas', 38 | VTHeaderPopup in '..\..\Source\VTHeaderPopup.pas', 39 | VTAccessibilityFactory in '..\..\Source\VTAccessibilityFactory.pas', 40 | VTAccessibility in '..\..\Source\VTAccessibility.pas'; 41 | 42 | end. 43 | 44 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE5/VirtualTreesR.dpk: -------------------------------------------------------------------------------- 1 | package VirtualTreesR; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO ON} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$LIBSUFFIX '19'} 29 | {$RUNONLY} 30 | {$IMPLICITBUILD OFF} 31 | 32 | requires 33 | vcl, 34 | vclx; 35 | 36 | contains 37 | VirtualTrees in '..\..\Source\VirtualTrees.pas', 38 | VTHeaderPopup in '..\..\Source\VTHeaderPopup.pas', 39 | VTAccessibilityFactory in '..\..\Source\VTAccessibilityFactory.pas', 40 | VTAccessibility in '..\..\Source\VTAccessibility.pas'; 41 | 42 | end. 43 | 44 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE6/VirtualTreesR.dpk: -------------------------------------------------------------------------------- 1 | package VirtualTreesR; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO ON} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$LIBSUFFIX '20'} 29 | {$RUNONLY} 30 | {$IMPLICITBUILD OFF} 31 | 32 | requires 33 | vcl, 34 | vclx; 35 | 36 | contains 37 | VirtualTrees in '..\..\Source\VirtualTrees.pas', 38 | VTHeaderPopup in '..\..\Source\VTHeaderPopup.pas', 39 | VTAccessibilityFactory in '..\..\Source\VTAccessibilityFactory.pas', 40 | VTAccessibility in '..\..\Source\VTAccessibility.pas'; 41 | 42 | end. 43 | 44 | -------------------------------------------------------------------------------- /Demos/VirtualTreeview.bdsgroup: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ..\..\Library\VirtualTreeview\Packages\BDS 2006\VirtualTreesR.bdsproj 13 | ..\..\Library\VirtualTreeview\Packages\BDS 2006\VirtualTreesD.bdsproj 14 | Advanced\Advanced.bdsproj 15 | VirtualTreesR.bpl VirtualTreesD.bpl Advanced.exe 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE7/VirtualTreesR.dpk: -------------------------------------------------------------------------------- 1 | package VirtualTreesR; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS OFF} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION ON} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO OFF} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES OFF} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE RELEASE} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$LIBSUFFIX '21'} 29 | {$RUNONLY} 30 | {$IMPLICITBUILD OFF} 31 | 32 | requires 33 | vcl, 34 | vclx; 35 | 36 | contains 37 | VirtualTrees in '..\..\Source\VirtualTrees.pas', 38 | VTHeaderPopup in '..\..\Source\VTHeaderPopup.pas', 39 | VTAccessibilityFactory in '..\..\Source\VTAccessibilityFactory.pas', 40 | VTAccessibility in '..\..\Source\VTAccessibility.pas'; 41 | 42 | end. 43 | 44 | -------------------------------------------------------------------------------- /Demos/Advanced/shlobjext.pas: -------------------------------------------------------------------------------- 1 | unit shlobjext; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | Classes, SysUtils; 9 | 10 | const 11 | 12 | SFGAO_CANRENAME=$00000010; 13 | SFGAO_CANDELETE=$00000020; 14 | SFGAO_HASPROPSHEET =$00000040; 15 | SFGAO_DROPTARGET =$00000100; 16 | SFGAO_CAPABILITYMASK =$00000177; 17 | SFGAO_ISSLOW = $00004000; 18 | SFGAO_GHOSTED =$00008000; 19 | SFGAO_LINK=$00010000; 20 | SFGAO_SHARE=$00020000; 21 | SFGAO_READONLY =$00040000; 22 | SFGAO_HIDDEN=$00080000; 23 | SFGAO_DISPLAYATTRMASK = SFGAO_ISSLOW or SFGAO_GHOSTED or SFGAO_LINK or SFGAO_SHARE or SFGAO_READONLY or SFGAO_HIDDEN; 24 | { (SFGAO_ISSLOW \ 25 | | SFGAO_GHOSTED \ 26 | | SFGAO_LINK \ 27 | | SFGAO_SHARE \ 28 | | SFGAO_READONLY \ 29 | | SFGAO_HIDDEN) 30 | } 31 | SFGAO_FILESYSANCESTOR = $10000000; 32 | SFGAO_FOLDER = $20000000; 33 | SFGAO_FILESYSTEM = $40000000; 34 | SFGAO_HASSUBFOLDER = $80000000; 35 | SFGAO_CONTENTSMASK = $80000000; 36 | SFGAO_VALIDATE = $01000000; 37 | SFGAO_REMOVABLE = $02000000; 38 | SFGAO_COMPRESSED = $04000000; 39 | 40 | implementation 41 | 42 | end. 43 | 44 | -------------------------------------------------------------------------------- /Demos/Advanced/Advanced.lpr: -------------------------------------------------------------------------------- 1 | program Advanced; 2 | 3 | 4 | uses 5 | {$IFDEF UNIX}{$IFDEF UseCThreads} 6 | cthreads, 7 | {$ENDIF}{$ENDIF} 8 | Interfaces, // this includes the LCL widgetset 9 | Forms, 10 | //SpeedDemo in 'SpeedDemo.pas' {SpeedForm}, 11 | //DrawTreeDemo in 'DrawTreeDemo.pas' {DrawTreeForm}, 12 | //GeneralAbilitiesDemo in 'GeneralAbilitiesDemo.pas' {frmGeneralAbilities}, 13 | //PropertiesDemo in 'PropertiesDemo.pas' {PropertiesForm}, 14 | //GridDemo in 'GridDemo.pas' {GridForm}, 15 | //Editors in 'Editors.pas', 16 | //VisibilityDemo in 'VisibilityDemo.pas' {VisibilityForm}, 17 | //AlignDemo in 'AlignDemo.pas' {AlignForm}, 18 | Main in 'Main.pas' {MainForm}, 19 | //WindowsXPStyleDemo in 'WindowsXPStyleDemo.pas' {WindowsXPForm}, 20 | //MultilineDemo in 'MultilineDemo.pas' {NodeForm}, 21 | //HeaderCustomDrawDemo in 'HeaderCustomDrawDemo.pas' {HeaderOwnerDrawForm}, 22 | States in 'States.pas' {StateForm}, Printer4Lazarus; 23 | 24 | {$R *.res} 25 | {$R extraresources.res} 26 | 27 | begin 28 | Application.Initialize; 29 | Application.CreateForm(TMainForm, MainForm); 30 | Application.CreateForm(TStateForm, StateForm); 31 | Application.Run; 32 | end. 33 | -------------------------------------------------------------------------------- /Demos/VirtualTreeview.bpg: -------------------------------------------------------------------------------- 1 | #------------------------------------------------------------------------------ 2 | VERSION = BWS.01 3 | #------------------------------------------------------------------------------ 4 | !ifndef ROOT 5 | ROOT = $(MAKEDIR)\.. 6 | !endif 7 | #------------------------------------------------------------------------------ 8 | MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** 9 | DCC = $(ROOT)\bin\dcc32.exe $** 10 | BRCC = $(ROOT)\bin\brcc32.exe $** 11 | #------------------------------------------------------------------------------ 12 | PROJECTS = VirtualTreesD7.bpl VirtualTreesD7D.bpl Minimal.exe MVCDemo.exe OLE.exe Advanced.exe 13 | #------------------------------------------------------------------------------ 14 | default: $(PROJECTS) 15 | #------------------------------------------------------------------------------ 16 | 17 | Advanced.exe: Advanced\Advanced.dpr 18 | $(DCC) 19 | 20 | Minimal.exe: Minimal\Minimal.dpr 21 | $(DCC) 22 | 23 | MVCDemo.exe: Objects\MVCDemo.dpr 24 | $(DCC) 25 | 26 | VirtualTreesD7.bpl: ..\..\Library\VirtualTreeview\Delphi\VirtualTreesD7.dpk 27 | $(DCC) 28 | 29 | VirtualTreesD7D.bpl: ..\..\Library\VirtualTreeview\Delphi\VirtualTreesD7D.dpk 30 | $(DCC) 31 | 32 | OLE.exe: OLE\OLE.dpr 33 | $(DCC) 34 | 35 | 36 | -------------------------------------------------------------------------------- /Source/units/cocoa/virtualpanningwindow.pas: -------------------------------------------------------------------------------- 1 | unit virtualpanningwindow; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | LCLType, Graphics, Classes, SysUtils; 9 | 10 | type 11 | 12 | { TVirtualPanningWindow } 13 | 14 | TVirtualPanningWindow = class 15 | private 16 | FHandle: THandle; 17 | FOwnerHandle: THandle; 18 | FImage: TBitmap; 19 | procedure HandlePaintMessage; 20 | public 21 | procedure Start(OwnerHandle: THandle; const Position: TPoint); 22 | procedure Stop; 23 | procedure Show(ClipRegion: HRGN); 24 | property Image: TBitmap read FImage; 25 | property Handle: THandle read FHandle; 26 | end; 27 | 28 | implementation 29 | 30 | {$ifdef DEBUG_VTV} 31 | uses 32 | vtlogger; 33 | {$endif} 34 | 35 | { TVirtualPanningWindow } 36 | 37 | procedure TVirtualPanningWindow.HandlePaintMessage; 38 | begin 39 | end; 40 | 41 | procedure TVirtualPanningWindow.Start(OwnerHandle: THandle; const Position: TPoint); 42 | begin 43 | FImage := TBitmap.Create; 44 | end; 45 | 46 | procedure TVirtualPanningWindow.Stop; 47 | begin 48 | FImage.Free; 49 | FImage := nil; 50 | end; 51 | 52 | procedure TVirtualPanningWindow.Show(ClipRegion: HRGN); 53 | begin 54 | {$ifdef DEBUG_VTV}Logger.SendBitmap([lcPanning],'Panning Image',FImage);{$endif} 55 | end; 56 | 57 | end. 58 | 59 | -------------------------------------------------------------------------------- /Source/units/gtk/virtualpanningwindow.pas: -------------------------------------------------------------------------------- 1 | unit virtualpanningwindow; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | LCLType, Graphics, Classes, SysUtils; 9 | 10 | type 11 | 12 | { TVirtualPanningWindow } 13 | 14 | TVirtualPanningWindow = class 15 | private 16 | FHandle: THandle; 17 | FOwnerHandle: THandle; 18 | FImage: TBitmap; 19 | procedure HandlePaintMessage; 20 | public 21 | procedure Start(OwnerHandle: THandle; const Position: TPoint); 22 | procedure Stop; 23 | procedure Show(ClipRegion: HRGN); 24 | property Image: TBitmap read FImage; 25 | property Handle: THandle read FHandle; 26 | end; 27 | 28 | implementation 29 | 30 | {$ifdef DEBUG_VTV} 31 | uses 32 | vtlogger; 33 | {$endif} 34 | 35 | { TVirtualPanningWindow } 36 | 37 | procedure TVirtualPanningWindow.HandlePaintMessage; 38 | begin 39 | end; 40 | 41 | procedure TVirtualPanningWindow.Start(OwnerHandle: THandle; const Position: TPoint); 42 | begin 43 | FImage := TBitmap.Create; 44 | end; 45 | 46 | procedure TVirtualPanningWindow.Stop; 47 | begin 48 | FImage.Free; 49 | FImage := nil; 50 | end; 51 | 52 | procedure TVirtualPanningWindow.Show(ClipRegion: HRGN); 53 | begin 54 | {$ifdef DEBUG_VTV}Logger.SendBitmap([lcPanning],'Panning Image',FImage);{$endif} 55 | end; 56 | 57 | end. 58 | 59 | -------------------------------------------------------------------------------- /Source/units/gtk2/virtualpanningwindow.pas: -------------------------------------------------------------------------------- 1 | unit virtualpanningwindow; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | LCLType, Graphics, Classes, SysUtils; 9 | 10 | type 11 | 12 | { TVirtualPanningWindow } 13 | 14 | TVirtualPanningWindow = class 15 | private 16 | FHandle: THandle; 17 | FOwnerHandle: THandle; 18 | FImage: TBitmap; 19 | procedure HandlePaintMessage; 20 | public 21 | procedure Start(OwnerHandle: THandle; const Position: TPoint); 22 | procedure Stop; 23 | procedure Show(ClipRegion: HRGN); 24 | property Image: TBitmap read FImage; 25 | property Handle: THandle read FHandle; 26 | end; 27 | 28 | implementation 29 | 30 | {$ifdef DEBUG_VTV} 31 | uses 32 | vtlogger; 33 | {$endif} 34 | 35 | { TVirtualPanningWindow } 36 | 37 | procedure TVirtualPanningWindow.HandlePaintMessage; 38 | begin 39 | end; 40 | 41 | procedure TVirtualPanningWindow.Start(OwnerHandle: THandle; const Position: TPoint); 42 | begin 43 | FImage := TBitmap.Create; 44 | end; 45 | 46 | procedure TVirtualPanningWindow.Stop; 47 | begin 48 | FImage.Free; 49 | FImage := nil; 50 | end; 51 | 52 | procedure TVirtualPanningWindow.Show(ClipRegion: HRGN); 53 | begin 54 | {$ifdef DEBUG_VTV}Logger.SendBitmap([lcPanning],'Panning Image',FImage);{$endif} 55 | end; 56 | 57 | end. 58 | 59 | -------------------------------------------------------------------------------- /Source/units/qt/virtualpanningwindow.pas: -------------------------------------------------------------------------------- 1 | unit virtualpanningwindow; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | LCLType, Graphics, Classes, SysUtils; 9 | 10 | type 11 | 12 | { TVirtualPanningWindow } 13 | 14 | TVirtualPanningWindow = class 15 | private 16 | FHandle: THandle; 17 | FOwnerHandle: THandle; 18 | FImage: TBitmap; 19 | procedure HandlePaintMessage; 20 | public 21 | procedure Start(OwnerHandle: THandle; const Position: TPoint); 22 | procedure Stop; 23 | procedure Show(ClipRegion: HRGN); 24 | property Image: TBitmap read FImage; 25 | property Handle: THandle read FHandle; 26 | end; 27 | 28 | implementation 29 | 30 | {$ifdef DEBUG_VTV} 31 | uses 32 | vtlogger; 33 | {$endif} 34 | 35 | { TVirtualPanningWindow } 36 | 37 | procedure TVirtualPanningWindow.HandlePaintMessage; 38 | begin 39 | end; 40 | 41 | procedure TVirtualPanningWindow.Start(OwnerHandle: THandle; const Position: TPoint); 42 | begin 43 | FImage := TBitmap.Create; 44 | end; 45 | 46 | procedure TVirtualPanningWindow.Stop; 47 | begin 48 | FImage.Free; 49 | FImage := nil; 50 | end; 51 | 52 | procedure TVirtualPanningWindow.Show(ClipRegion: HRGN); 53 | begin 54 | {$ifdef DEBUG_VTV}Logger.SendBitmap([lcPanning],'Panning Image',FImage);{$endif} 55 | end; 56 | 57 | end. 58 | 59 | -------------------------------------------------------------------------------- /Source/units/carbon/virtualpanningwindow.pas: -------------------------------------------------------------------------------- 1 | unit virtualpanningwindow; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | LCLType, Graphics, Classes, SysUtils; 9 | 10 | type 11 | 12 | { TVirtualPanningWindow } 13 | 14 | TVirtualPanningWindow = class 15 | private 16 | FHandle: THandle; 17 | FOwnerHandle: THandle; 18 | FImage: TBitmap; 19 | procedure HandlePaintMessage; 20 | public 21 | procedure Start(OwnerHandle: THandle; const Position: TPoint); 22 | procedure Stop; 23 | procedure Show(ClipRegion: HRGN); 24 | property Image: TBitmap read FImage; 25 | property Handle: THandle read FHandle; 26 | end; 27 | 28 | implementation 29 | 30 | {$ifdef DEBUG_VTV} 31 | uses 32 | vtlogger; 33 | {$endif} 34 | 35 | { TVirtualPanningWindow } 36 | 37 | procedure TVirtualPanningWindow.HandlePaintMessage; 38 | begin 39 | end; 40 | 41 | procedure TVirtualPanningWindow.Start(OwnerHandle: THandle; const Position: TPoint); 42 | begin 43 | FImage := TBitmap.Create; 44 | end; 45 | 46 | procedure TVirtualPanningWindow.Stop; 47 | begin 48 | FImage.Free; 49 | FImage := nil; 50 | end; 51 | 52 | procedure TVirtualPanningWindow.Show(ClipRegion: HRGN); 53 | begin 54 | {$ifdef DEBUG_VTV}Logger.SendBitmap([lcPanning],'Panning Image',FImage);{$endif} 55 | end; 56 | 57 | end. 58 | 59 | -------------------------------------------------------------------------------- /Source/VTIDEEditors.pas: -------------------------------------------------------------------------------- 1 | unit VTIDEEditors; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | ComponentEditors, PropEdits, VirtualTrees; 9 | 10 | type 11 | 12 | // The usual trick to make a protected property accessible in the ShowCollectionEditor call below. 13 | TVirtualTreeCast = class(TBaseVirtualTree); 14 | 15 | { TVirtualTreeEditor } 16 | 17 | TVirtualTreeEditor = class(TComponentEditor) 18 | public 19 | procedure Edit; override; 20 | function GetVerbCount: Integer; override; 21 | function GetVerb(Index: Integer): string; override; 22 | procedure ExecuteVerb(Index: Integer); override; 23 | end; 24 | 25 | implementation 26 | 27 | { TVirtualTreeEditor } 28 | 29 | procedure TVirtualTreeEditor.Edit; 30 | var 31 | Tree: TVirtualTreeCast; 32 | begin 33 | Tree := TVirtualTreeCast(GetComponent); 34 | TCollectionPropertyEditor.ShowCollectionEditor(Tree.Header.Columns, Tree, 'Columns'); 35 | end; 36 | 37 | function TVirtualTreeEditor.GetVerbCount: Integer; 38 | begin 39 | Result := 1; 40 | end; 41 | 42 | function TVirtualTreeEditor.GetVerb(Index: Integer): string; 43 | begin 44 | case Index of 45 | 0: Result := 'Edit Columns...'; 46 | end; 47 | end; 48 | 49 | procedure TVirtualTreeEditor.ExecuteVerb(Index: Integer); 50 | begin 51 | case Index of 52 | 0: Edit; 53 | end; 54 | end; 55 | 56 | end. 57 | 58 | -------------------------------------------------------------------------------- /Help/Source/Include/Licensing.dtx: -------------------------------------------------------------------------------- 1 | @@Licensing.htm 2 | 3 | 4 | Virtual Treeview License Agreement 5 | 6 | 7 | 8 | The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this 9 | \file except in compliance with the License. You may obtain a copy of the License at <extlink http://www.mozilla.org/MPL>www.mozilla.org/MPL</extlink>. 10 | 11 | 12 | 13 | Alternatively, you may redistribute this library, use and/or modify it under the terms of the GNU Lesser General Public 14 | License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later 15 | \version. You may obtain a copy of the LGPL at <extlink http://www.gnu.org/copyleft>www.gnu.org/copyleft</extlink>. 16 | 17 | 18 | 19 | Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express 20 | \or implied. See the License for the specific language governing rights and limitations under the License. 21 | 22 | 23 | 24 | The original code is VirtualTrees.pas, released September 30, 2000. 25 | 26 | 27 | 28 | The initial developer of the original code is digital publishing AG (www.digitalpublishing.de). 29 | 30 | 31 | 32 | Virtual Treeview is written, published and maintaned by 33 | 34 | 35 | 36 | Mike Lischke (public@soft-gems.net, www.soft-gems.net). 37 | 38 | Joachim Marder (joachim.marder@gmail.com) 39 | 40 | and many more 41 | -------------------------------------------------------------------------------- /Help/Source/Include/Installation.dtx: -------------------------------------------------------------------------------- 1 | @@Installation.htm 2 | <title Installation> 3 | 4 | Virtual Treeview is designed for Delphi 7 and higher and can also be used with Borland C++ Builder 2006 and up. It is 5 | however not designed to work directly with Kylix, Lazarus, Free Pascal or Delphi for .NET. 6 | 7 | 8 | 9 | The initial core source files are: 10 | 11 | <image Document><b>Compilers.inc</b> 12 | 13 | Include file which contains various compiler switches which determine the target compiler and the target operating 14 | system. 15 | 16 | <image Document><b>VTConfig.inc</b> 17 | 18 | Include file which contains version neutral compiler switches which control certain things that can be compiled into the 19 | tree view (e.g. Windows XP theme support, Unicode controls, a specialized node memory manager etc.). 20 | 21 | <image Document><b>VirtualTrees.pas</b> 22 | 23 | The actual implementation of Virtual Treeview and its descendants and support classes. 24 | 25 | <image Document><b>VirtualTrees.res</b> 26 | 27 | Resource file containing some check and miscellaneous images used for all Virtual Treeviews. 28 | 29 | <image Document><b>VTHeaderPopup.pas</b> 30 | 31 | Unit containing a TPopupMenu descendant which provides a convenient way to implement a header popup used to switch 32 | visibility of columns. 33 | 34 | * Installation * 35 | Please have a look at the file INSTALL.txt for installation instructions. the installer which was formerly available is 36 | no longer maintained. 37 | -------------------------------------------------------------------------------- /Help/Source/Include/AdditionalInfo.dtx: -------------------------------------------------------------------------------- 1 | @@AdditionalInfo.htm 2 | <TITLE Additional information> 3 | 4 | * Special care has been taken to wrap every event call by a DoXXX method (e.g. for OnBeforeItem paint there is a 5 | protected DoBeforeItemPaint method) which is always virtual to allow descendants to override it and intercept so calls to 6 | events regardless whether there is actually an event handler assigned or not. 7 | * During a locked update stage (entered by BeginUpdate) there will be <B>no</B> updates of the tree nor the 8 | selection. If you change the selection in such a stage then it is temporarily accumulated and applied if, during an 9 | EndUpdate call, the inner update counter reaches zero. 10 | 11 | 12 | 13 | <B>Borland C++ Builder:</B> 14 | 15 | * Define the constant NO_WIN32_LEAN_AND_MEAN in your environment/project options to avoid problems with undefined 16 | interfaces. 17 | * The automatic conversion process from Delphi source code to C++ code has unfortunately some bugs. Most of them 18 | could be solved by rearranging the Delphi code, but one problem still remains and must be solved manually. The translator 19 | does not automatically consider default parameters in functions. The parameters are correctly converted but without the 20 | default value. Usually the problem will appear when you try to compile and there is a call of the function with fewer 21 | than expected parameters. 22 | 23 | Summary 24 | This chapter collects everything else which is important or very helpful to know but which does not justify an own 25 | chapter. 26 | -------------------------------------------------------------------------------- /INSTALL.txt: -------------------------------------------------------------------------------- 1 | Supported Delphi version: RAD Studio XE3 and higher 2 | Supported Windows Versions: Windows XP and higher 3 | 4 | 5 | The former installer of V4 is no longer maintained, but installation is quite easy: 6 | Extract the entire(!) ZIP file and follow the instructions below. 7 | 8 | 9 | Delphi / RAD Studio XE3 and higher Installation 10 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 11 | 1. Open the project group "Packages\RAD Studio XE*\RAD Studio XE*.groupproj" 12 | 2. Right click on "VirtualTreesD*.bpl" and click "Install" 13 | 3. Go to "Tools > Options > Environment Options > Delphi Options > Library > Library Path > [...]" 14 | Browse to the "Source" folder of VirtualTreeView, press "OK", "Add", "OK", "OK" 15 | 4. C++ Builder users only: 16 | Go to "Tools > Options > Environment Options > C++ Options > Paths and Directories" 17 | a) Click "Library Path > [...]" 18 | Browse to the "Source" folder of VirtualTreeView, press "OK", "Add", "OK" 19 | b) Click "System Include path > [...]" 20 | Browse to the "Source" folder of VirtualTreeView, press "OK", "Add", "OK", "OK"" 21 | 22 | 23 | Troubleshooting 24 | ~~~~~~~~~~~~~~~ 25 | In case you experience any problems, try to delete all these files from your disk and then start over: 26 | - Virtualtrees.* 27 | - VTAccessibility.* 28 | - VTHeaderPopup.* 29 | - VirtualTreesD.* 30 | - VirtualTreesR.* 31 | I recommand using UltraSearch for this task: http://www.jam-software.de/ultrasearch/ 32 | 33 | 34 | Please send comments and suggestions regarding the packages and the install 35 | instructions to joachim.marder@gmail.com 36 | 37 | -------------------------------------------------------------------------------- /Demos/dragdrop/fmain.lfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 569 3 | Height = 349 4 | Top = 219 5 | Width = 454 6 | Caption = 'VTV Drag and Drop' 7 | ClientHeight = 349 8 | ClientWidth = 454 9 | Position = poScreenCenter 10 | LCLVersion = '1.7' 11 | object VirtualStringTree1: TVirtualStringTree 12 | Left = 8 13 | Height = 315 14 | Top = 26 15 | Width = 200 16 | DefaultText = 'Node' 17 | DragMode = dmAutomatic 18 | DragType = dtVCL 19 | Header.AutoSizeIndex = 0 20 | Header.Columns = <> 21 | Header.DefaultHeight = 17 22 | Header.MainColumn = -1 23 | RootNodeCount = 30 24 | TabOrder = 0 25 | TreeOptions.AutoOptions = [toAutoDropExpand, toAutoScroll, toAutoScrollOnExpand, toAutoTristateTracking, toAutoDeleteMovedNodes] 26 | OnDragOver = VirtualStringTree1DragOver 27 | OnDragDrop = VirtualStringTree1DragDrop 28 | OnFreeNode = VirtualStringTree1FreeNode 29 | OnGetText = VirtualStringTree1GetText 30 | OnGetNodeDataSize = VirtualStringTree1GetNodeDataSize 31 | OnInitNode = VirtualStringTree1InitNode 32 | end 33 | object ListBox1: TListBox 34 | Left = 248 35 | Height = 315 36 | Top = 26 37 | Width = 200 38 | DragMode = dmAutomatic 39 | Items.Strings = ( 40 | 'List Item 1' 41 | 'List Item 2' 42 | 'List Item 3' 43 | 'List Item 4' 44 | 'List Item 5' 45 | 'List Item 6' 46 | ) 47 | ItemHeight = 15 48 | OnDragDrop = ListBox1DragDrop 49 | OnDragOver = ListBox1DragOver 50 | ScrollWidth = 190 51 | TabOrder = 1 52 | end 53 | object ShowHeaderCheckBox: TCheckBox 54 | Left = 8 55 | Height = 19 56 | Top = 3 57 | Width = 90 58 | Caption = 'Show Header' 59 | OnChange = ShowHeaderCheckBoxChange 60 | TabOrder = 2 61 | end 62 | end 63 | -------------------------------------------------------------------------------- /Source/include/intf/gtk2/vtgraphicsi.inc: -------------------------------------------------------------------------------- 1 | uses 2 | gtk2def, gdk2, GTK2Proc, Cairo, LCLVersion; 3 | 4 | {$MACRO ON} 5 | 6 | {$if lcl_fullversion > 1000000} 7 | {$define TGtk2DeviceContext:=TGtkDeviceContext} 8 | {$endif} 9 | 10 | function gdk_cairo_create(drawable: PGdkDrawable): Pcairo_t cdecl external gdklib; 11 | 12 | procedure AlphaBlend(Source, Destination: HDC; const R: TRect; const Target: TPoint; Mode: TBlendMode; ConstantAlpha, Bias: Integer); 13 | 14 | function GetContext(GtkDC: TGtk2DeviceContext): Pcairo_t; 15 | begin 16 | Result := nil; 17 | if (GtkDC <> nil) and (GtkDC.Drawable <> nil) then 18 | Result := gdk_cairo_create(GtkDC.Drawable); 19 | end; 20 | 21 | var 22 | SrcDC: TGtk2DeviceContext absolute Source; 23 | DestDC: TGtk2DeviceContext absolute Destination; 24 | SrcContext, DestContext: Pcairo_t; 25 | begin 26 | case Mode of 27 | bmConstantAlpha:; 28 | bmPerPixelAlpha:; 29 | bmMasterAlpha:; 30 | bmConstantAlphaAndColor: 31 | begin 32 | DestContext := GetContext(DestDC); 33 | if DestContext <> nil then 34 | begin 35 | cairo_set_source_rgba(DestContext, 36 | (Bias and $000000FF) / 255, 37 | ((Bias shr 8) and $000000FF) / 255, 38 | ((Bias shr 16) and $000000FF) / 255, 39 | ConstantAlpha / 255 40 | ); 41 | cairo_rectangle(DestContext, R.Left + Target.x, R.Top + Target.y, 42 | R.Right - R.Left, R.Bottom - R.Top); 43 | cairo_fill(DestContext); 44 | 45 | cairo_destroy(DestContext); 46 | end; 47 | end; 48 | end; 49 | end; 50 | 51 | function CalculateScanline(Bits: Pointer; Width, Height, Row: Integer): Pointer; 52 | begin 53 | Result := nil; 54 | end; 55 | 56 | function GetBitmapBitsFromBitmap(Bitmap: HBITMAP): Pointer; 57 | begin 58 | Result := nil; 59 | end; 60 | -------------------------------------------------------------------------------- /Source/VTConfig.inc: -------------------------------------------------------------------------------- 1 | // Configuration file for VirtualTrees.pas (see www.soft-gems.net). 2 | // 3 | // The content of this file is public domain. You may do with it whatever you like, provided the header stays fully intact 4 | // in all version and derivative work. 5 | // 6 | // The original code is VTConfig.inc, released October 5, 2004. 7 | // 8 | // The initial developer of the original code is Mike Lischke (public@soft-gems.net, www.soft-gems.net). 9 | //---------------------------------------------------------------------------------------------------------------------- 10 | 11 | {.$define UseFlatScrollbars} 12 | {.$define ReverseFullExpandHotKey} // Used to define Ctrl+'+' instead of Ctrl+Shift+'+' for full expand (and similar for collapsing). 13 | 14 | // Enable this switch for Windows XP theme support. If you compile with Delphi 6 or lower you must download and install 15 | // the Soft Gems Theme Manager package. 16 | {.$define ThemeSupport} 17 | 18 | // Virtual Treeview can use a tiny but very effective local memory manager for node allocation. 19 | // The local memory manager was implemented by David Clark from Caelo Software Inc. 20 | // See below for more info about it. 21 | {.$define UseLocalMemoryManager} 22 | 23 | 24 | //Lazarus port options 25 | {$define EnableOLE} 26 | {.$define EnableNativeTVM} 27 | {.$define EnablePrint} 28 | {.$define EnableNCFunctions} 29 | {$define EnableAdvancedGraphics} 30 | {$define EnableAlphaBlend} 31 | {.$define EnableAccessible} 32 | {$define ThemeSupport} 33 | {$if defined(LCLWin32) or defined(LCLWinCE)} 34 | {$define LCLWin} 35 | {$endif} 36 | {.$define DEBUG_VTV} 37 | {$define USE_DELPHICOMPAT} 38 | //since 39 | {$if not defined(USE_DELPHICOMPAT) and not defined(LCLWin)} 40 | {$define INCOMPLETE_WINAPI} 41 | {$endif} 42 | 43 | //under linux the performance is poor with threading enabled 44 | {$ifdef Windows} 45 | {$define EnableThreadSupport} 46 | {$endif} 47 | {$if defined(CPU64) or defined(LCLCarbon)} 48 | {$define PACKARRAYPASCAL} 49 | {$endif} 50 | 51 | {$define CompilerVersion := 19} 52 | -------------------------------------------------------------------------------- /Packages/CBuilder XE7/CBuilder.groupproj: -------------------------------------------------------------------------------- 1 | <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2 | <PropertyGroup> 3 | <ProjectGuid>{90943296-FDFA-4C80-A99D-237F570C4F54}</ProjectGuid> 4 | </PropertyGroup> 5 | <ItemGroup> 6 | <Projects Include="VirtualTreesCR.cbproj"> 7 | <Dependencies/> 8 | </Projects> 9 | <Projects Include="VirtualTreesCD.cbproj"> 10 | <Dependencies/> 11 | </Projects> 12 | </ItemGroup> 13 | <ProjectExtensions> 14 | <Borland.Personality>Default.Personality.12</Borland.Personality> 15 | <Borland.ProjectType/> 16 | <BorlandProject> 17 | <Default.Personality/> 18 | </BorlandProject> 19 | </ProjectExtensions> 20 | <Target Name="VirtualTreesCR"> 21 | <MSBuild Projects="VirtualTreesCR.cbproj"/> 22 | </Target> 23 | <Target Name="VirtualTreesCR:Clean"> 24 | <MSBuild Projects="VirtualTreesCR.cbproj" Targets="Clean"/> 25 | </Target> 26 | <Target Name="VirtualTreesCR:Make"> 27 | <MSBuild Projects="VirtualTreesCR.cbproj" Targets="Make"/> 28 | </Target> 29 | <Target Name="VirtualTreesCD"> 30 | <MSBuild Projects="VirtualTreesCD.cbproj"/> 31 | </Target> 32 | <Target Name="VirtualTreesCD:Clean"> 33 | <MSBuild Projects="VirtualTreesCD.cbproj" Targets="Clean"/> 34 | </Target> 35 | <Target Name="VirtualTreesCD:Make"> 36 | <MSBuild Projects="VirtualTreesCD.cbproj" Targets="Make"/> 37 | </Target> 38 | <Target Name="Build"> 39 | <CallTarget Targets="VirtualTreesCR;VirtualTreesCD"/> 40 | </Target> 41 | <Target Name="Clean"> 42 | <CallTarget Targets="VirtualTreesCR:Clean;VirtualTreesCD:Clean"/> 43 | </Target> 44 | <Target Name="Make"> 45 | <CallTarget Targets="VirtualTreesCR:Make;VirtualTreesCD:Make"/> 46 | </Target> 47 | <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/> 48 | </Project> 49 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE3/RAD Studio XE3.groupproj: -------------------------------------------------------------------------------- 1 | <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2 | <PropertyGroup> 3 | <ProjectGuid>{CC6A9541-DD5C-4BCD-8914-016D8D2EAB3B}</ProjectGuid> 4 | </PropertyGroup> 5 | <ItemGroup> 6 | <Projects Include="VirtualTreesR.dproj"> 7 | <Dependencies/> 8 | </Projects> 9 | <Projects Include="VirtualTreesD.dproj"> 10 | <Dependencies>VirtualTreesR.dproj</Dependencies> 11 | </Projects> 12 | </ItemGroup> 13 | <ProjectExtensions> 14 | <Borland.Personality>Default.Personality.12</Borland.Personality> 15 | <Borland.ProjectType/> 16 | <BorlandProject> 17 | <Default.Personality/> 18 | </BorlandProject> 19 | </ProjectExtensions> 20 | <Target Name="VirtualTreesR"> 21 | <MSBuild Projects="VirtualTreesR.dproj"/> 22 | </Target> 23 | <Target Name="VirtualTreesR:Clean"> 24 | <MSBuild Projects="VirtualTreesR.dproj" Targets="Clean"/> 25 | </Target> 26 | <Target Name="VirtualTreesR:Make"> 27 | <MSBuild Projects="VirtualTreesR.dproj" Targets="Make"/> 28 | </Target> 29 | <Target Name="VirtualTreesD" DependsOnTargets="VirtualTreesR"> 30 | <MSBuild Projects="VirtualTreesD.dproj"/> 31 | </Target> 32 | <Target Name="VirtualTreesD:Clean" DependsOnTargets="VirtualTreesR:Clean"> 33 | <MSBuild Projects="VirtualTreesD.dproj" Targets="Clean"/> 34 | </Target> 35 | <Target Name="VirtualTreesD:Make" DependsOnTargets="VirtualTreesR:Make"> 36 | <MSBuild Projects="VirtualTreesD.dproj" Targets="Make"/> 37 | </Target> 38 | <Target Name="Build"> 39 | <CallTarget Targets="VirtualTreesR;VirtualTreesD"/> 40 | </Target> 41 | <Target Name="Clean"> 42 | <CallTarget Targets="VirtualTreesR:Clean;VirtualTreesD:Clean"/> 43 | </Target> 44 | <Target Name="Make"> 45 | <CallTarget Targets="VirtualTreesR:Make;VirtualTreesD:Make"/> 46 | </Target> 47 | <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/> 48 | </Project> 49 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE4/RAD Studio XE4.groupproj: -------------------------------------------------------------------------------- 1 | <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2 | <PropertyGroup> 3 | <ProjectGuid>{CC6A9541-DD5C-4BCD-8914-016D8D2EAB3B}</ProjectGuid> 4 | </PropertyGroup> 5 | <ItemGroup> 6 | <Projects Include="VirtualTreesR.dproj"> 7 | <Dependencies/> 8 | </Projects> 9 | <Projects Include="VirtualTreesD.dproj"> 10 | <Dependencies>VirtualTreesR.dproj</Dependencies> 11 | </Projects> 12 | </ItemGroup> 13 | <ProjectExtensions> 14 | <Borland.Personality>Default.Personality.12</Borland.Personality> 15 | <Borland.ProjectType/> 16 | <BorlandProject> 17 | <Default.Personality/> 18 | </BorlandProject> 19 | </ProjectExtensions> 20 | <Target Name="VirtualTreesR"> 21 | <MSBuild Projects="VirtualTreesR.dproj"/> 22 | </Target> 23 | <Target Name="VirtualTreesR:Clean"> 24 | <MSBuild Projects="VirtualTreesR.dproj" Targets="Clean"/> 25 | </Target> 26 | <Target Name="VirtualTreesR:Make"> 27 | <MSBuild Projects="VirtualTreesR.dproj" Targets="Make"/> 28 | </Target> 29 | <Target Name="VirtualTreesD" DependsOnTargets="VirtualTreesR"> 30 | <MSBuild Projects="VirtualTreesD.dproj"/> 31 | </Target> 32 | <Target Name="VirtualTreesD:Clean" DependsOnTargets="VirtualTreesR:Clean"> 33 | <MSBuild Projects="VirtualTreesD.dproj" Targets="Clean"/> 34 | </Target> 35 | <Target Name="VirtualTreesD:Make" DependsOnTargets="VirtualTreesR:Make"> 36 | <MSBuild Projects="VirtualTreesD.dproj" Targets="Make"/> 37 | </Target> 38 | <Target Name="Build"> 39 | <CallTarget Targets="VirtualTreesR;VirtualTreesD"/> 40 | </Target> 41 | <Target Name="Clean"> 42 | <CallTarget Targets="VirtualTreesR:Clean;VirtualTreesD:Clean"/> 43 | </Target> 44 | <Target Name="Make"> 45 | <CallTarget Targets="VirtualTreesR:Make;VirtualTreesD:Make"/> 46 | </Target> 47 | <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/> 48 | </Project> 49 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE5/RAD Studio XE5.groupproj: -------------------------------------------------------------------------------- 1 | <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2 | <PropertyGroup> 3 | <ProjectGuid>{CC6A9541-DD5C-4BCD-8914-016D8D2EAB3B}</ProjectGuid> 4 | </PropertyGroup> 5 | <ItemGroup> 6 | <Projects Include="VirtualTreesR.dproj"> 7 | <Dependencies/> 8 | </Projects> 9 | <Projects Include="VirtualTreesD.dproj"> 10 | <Dependencies>VirtualTreesR.dproj</Dependencies> 11 | </Projects> 12 | </ItemGroup> 13 | <ProjectExtensions> 14 | <Borland.Personality>Default.Personality.12</Borland.Personality> 15 | <Borland.ProjectType/> 16 | <BorlandProject> 17 | <Default.Personality/> 18 | </BorlandProject> 19 | </ProjectExtensions> 20 | <Target Name="VirtualTreesR"> 21 | <MSBuild Projects="VirtualTreesR.dproj"/> 22 | </Target> 23 | <Target Name="VirtualTreesR:Clean"> 24 | <MSBuild Projects="VirtualTreesR.dproj" Targets="Clean"/> 25 | </Target> 26 | <Target Name="VirtualTreesR:Make"> 27 | <MSBuild Projects="VirtualTreesR.dproj" Targets="Make"/> 28 | </Target> 29 | <Target Name="VirtualTreesD" DependsOnTargets="VirtualTreesR"> 30 | <MSBuild Projects="VirtualTreesD.dproj"/> 31 | </Target> 32 | <Target Name="VirtualTreesD:Clean" DependsOnTargets="VirtualTreesR:Clean"> 33 | <MSBuild Projects="VirtualTreesD.dproj" Targets="Clean"/> 34 | </Target> 35 | <Target Name="VirtualTreesD:Make" DependsOnTargets="VirtualTreesR:Make"> 36 | <MSBuild Projects="VirtualTreesD.dproj" Targets="Make"/> 37 | </Target> 38 | <Target Name="Build"> 39 | <CallTarget Targets="VirtualTreesR;VirtualTreesD"/> 40 | </Target> 41 | <Target Name="Clean"> 42 | <CallTarget Targets="VirtualTreesR:Clean;VirtualTreesD:Clean"/> 43 | </Target> 44 | <Target Name="Make"> 45 | <CallTarget Targets="VirtualTreesR:Make;VirtualTreesD:Make"/> 46 | </Target> 47 | <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/> 48 | </Project> 49 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE6/RAD Studio XE6.groupproj: -------------------------------------------------------------------------------- 1 | <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2 | <PropertyGroup> 3 | <ProjectGuid>{CC6A9541-DD5C-4BCD-8914-016D8D2EAB3B}</ProjectGuid> 4 | </PropertyGroup> 5 | <ItemGroup> 6 | <Projects Include="VirtualTreesR.dproj"> 7 | <Dependencies/> 8 | </Projects> 9 | <Projects Include="VirtualTreesD.dproj"> 10 | <Dependencies>VirtualTreesR.dproj</Dependencies> 11 | </Projects> 12 | </ItemGroup> 13 | <ProjectExtensions> 14 | <Borland.Personality>Default.Personality.12</Borland.Personality> 15 | <Borland.ProjectType/> 16 | <BorlandProject> 17 | <Default.Personality/> 18 | </BorlandProject> 19 | </ProjectExtensions> 20 | <Target Name="VirtualTreesR"> 21 | <MSBuild Projects="VirtualTreesR.dproj"/> 22 | </Target> 23 | <Target Name="VirtualTreesR:Clean"> 24 | <MSBuild Projects="VirtualTreesR.dproj" Targets="Clean"/> 25 | </Target> 26 | <Target Name="VirtualTreesR:Make"> 27 | <MSBuild Projects="VirtualTreesR.dproj" Targets="Make"/> 28 | </Target> 29 | <Target Name="VirtualTreesD" DependsOnTargets="VirtualTreesR"> 30 | <MSBuild Projects="VirtualTreesD.dproj"/> 31 | </Target> 32 | <Target Name="VirtualTreesD:Clean" DependsOnTargets="VirtualTreesR:Clean"> 33 | <MSBuild Projects="VirtualTreesD.dproj" Targets="Clean"/> 34 | </Target> 35 | <Target Name="VirtualTreesD:Make" DependsOnTargets="VirtualTreesR:Make"> 36 | <MSBuild Projects="VirtualTreesD.dproj" Targets="Make"/> 37 | </Target> 38 | <Target Name="Build"> 39 | <CallTarget Targets="VirtualTreesR;VirtualTreesD"/> 40 | </Target> 41 | <Target Name="Clean"> 42 | <CallTarget Targets="VirtualTreesR:Clean;VirtualTreesD:Clean"/> 43 | </Target> 44 | <Target Name="Make"> 45 | <CallTarget Targets="VirtualTreesR:Make;VirtualTreesD:Make"/> 46 | </Target> 47 | <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/> 48 | </Project> 49 | -------------------------------------------------------------------------------- /Packages/RAD Studio XE7/RAD Studio XE7.groupproj: -------------------------------------------------------------------------------- 1 | <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2 | <PropertyGroup> 3 | <ProjectGuid>{CC6A9541-DD5C-4BCD-8914-016D8D2EAB3B}</ProjectGuid> 4 | </PropertyGroup> 5 | <ItemGroup> 6 | <Projects Include="VirtualTreesR.dproj"> 7 | <Dependencies/> 8 | </Projects> 9 | <Projects Include="VirtualTreesD.dproj"> 10 | <Dependencies>VirtualTreesR.dproj</Dependencies> 11 | </Projects> 12 | </ItemGroup> 13 | <ProjectExtensions> 14 | <Borland.Personality>Default.Personality.12</Borland.Personality> 15 | <Borland.ProjectType/> 16 | <BorlandProject> 17 | <Default.Personality/> 18 | </BorlandProject> 19 | </ProjectExtensions> 20 | <Target Name="VirtualTreesR"> 21 | <MSBuild Projects="VirtualTreesR.dproj"/> 22 | </Target> 23 | <Target Name="VirtualTreesR:Clean"> 24 | <MSBuild Projects="VirtualTreesR.dproj" Targets="Clean"/> 25 | </Target> 26 | <Target Name="VirtualTreesR:Make"> 27 | <MSBuild Projects="VirtualTreesR.dproj" Targets="Make"/> 28 | </Target> 29 | <Target Name="VirtualTreesD" DependsOnTargets="VirtualTreesR"> 30 | <MSBuild Projects="VirtualTreesD.dproj"/> 31 | </Target> 32 | <Target Name="VirtualTreesD:Clean" DependsOnTargets="VirtualTreesR:Clean"> 33 | <MSBuild Projects="VirtualTreesD.dproj" Targets="Clean"/> 34 | </Target> 35 | <Target Name="VirtualTreesD:Make" DependsOnTargets="VirtualTreesR:Make"> 36 | <MSBuild Projects="VirtualTreesD.dproj" Targets="Make"/> 37 | </Target> 38 | <Target Name="Build"> 39 | <CallTarget Targets="VirtualTreesR;VirtualTreesD"/> 40 | </Target> 41 | <Target Name="Clean"> 42 | <CallTarget Targets="VirtualTreesR:Clean;VirtualTreesD:Clean"/> 43 | </Target> 44 | <Target Name="Make"> 45 | <CallTarget Targets="VirtualTreesR:Make;VirtualTreesD:Make"/> 46 | </Target> 47 | <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/> 48 | </Project> 49 | -------------------------------------------------------------------------------- /Demos/mininal/minimal_lcl.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <Flags> 8 | <LRSInOutputDirectory Value="False"/> 9 | </Flags> 10 | <SessionStorage Value="InProjectDir"/> 11 | <MainUnit Value="0"/> 12 | <ResourceType Value="res"/> 13 | <UseXPManifest Value="True"/> 14 | </General> 15 | <VersionInfo> 16 | <StringTable ProductVersion=""/> 17 | </VersionInfo> 18 | <BuildModes Count="1"> 19 | <Item1 Name="default" Default="True"/> 20 | </BuildModes> 21 | <PublishOptions> 22 | <Version Value="2"/> 23 | <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> 24 | <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/> 25 | </PublishOptions> 26 | <RunParams> 27 | <local> 28 | <FormatVersion Value="1"/> 29 | <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/> 30 | </local> 31 | </RunParams> 32 | <RequiredPackages Count="2"> 33 | <Item1> 34 | <PackageName Value="virtualtreeview_package"/> 35 | </Item1> 36 | <Item2> 37 | <PackageName Value="LCL"/> 38 | </Item2> 39 | </RequiredPackages> 40 | <Units Count="2"> 41 | <Unit0> 42 | <Filename Value="minimal_lcl.lpr"/> 43 | <IsPartOfProject Value="True"/> 44 | </Unit0> 45 | <Unit1> 46 | <Filename Value="Main.pas"/> 47 | <IsPartOfProject Value="True"/> 48 | <ComponentName Value="MainForm"/> 49 | <HasResources Value="True"/> 50 | <ResourceBaseClass Value="Form"/> 51 | </Unit1> 52 | </Units> 53 | </ProjectOptions> 54 | <CompilerOptions> 55 | <Version Value="11"/> 56 | <PathDelim Value="\"/> 57 | <Target> 58 | <Filename Value="minimal"/> 59 | </Target> 60 | <SearchPaths> 61 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 62 | </SearchPaths> 63 | <Parsing> 64 | <SyntaxOptions> 65 | <UseAnsiStrings Value="False"/> 66 | </SyntaxOptions> 67 | </Parsing> 68 | </CompilerOptions> 69 | </CONFIG> 70 | -------------------------------------------------------------------------------- /Source/include/intf/gtk/vtgraphicsi.inc: -------------------------------------------------------------------------------- 1 | uses 2 | gtkdef, gtkint, CairoXlib, gdk, Cairo, glib; 3 | 4 | //procedure gdk_drawable_get_size(drawable: PGdkDrawable; width, height: Pgint); cdecl; external gdkdll; 5 | 6 | procedure AlphaBlend(Source, Destination: HDC; const R: TRect; const Target: TPoint; Mode: TBlendMode; ConstantAlpha, Bias: Integer); 7 | 8 | function CreateSurface(GtkDC: TGtkDeviceContext): Pcairo_surface_t; 9 | var 10 | Width, Height: gint; 11 | Visual: PGdkVisual; 12 | begin 13 | Result := nil; 14 | if (GtkDC <> nil) and (GtkDC.Drawable <> nil) then 15 | begin 16 | gdk_window_get_size(GtkDC.Drawable, @Width, @Height); 17 | Visual := gdk_visual_get_system; 18 | Result := cairo_xlib_surface_create( 19 | GDK_WINDOW_XDISPLAY(PGdkWindowPrivate(GtkDC.Drawable)), 20 | GDK_WINDOW_XWINDOW(PGdkWindowPrivate(GtkDC.Drawable)), 21 | GDK_VISUAL_XVISUAL(PGdkVisualPrivate(Visual)), 22 | Width, Height); 23 | end; 24 | end; 25 | 26 | var 27 | SrcDC: TGtkDeviceContext absolute Source; 28 | DestDC: TGtkDeviceContext absolute Destination; 29 | SrcSurface, DestSurface: Pcairo_surface_t; 30 | SrcContext, DestContext: Pcairo_t; 31 | begin 32 | case Mode of 33 | bmConstantAlpha:; 34 | bmPerPixelAlpha:; 35 | bmMasterAlpha:; 36 | bmConstantAlphaAndColor: 37 | begin 38 | DestSurface := CreateSurface(DestDC); 39 | if DestSurface <> nil then 40 | begin 41 | DestContext := cairo_create(DestSurface); 42 | cairo_set_source_rgba(DestContext, 43 | (Bias and $000000FF) / 255, 44 | ((Bias shr 8) and $000000FF) / 255, 45 | ((Bias shr 16) and $000000FF) / 255, 46 | ConstantAlpha / 255 47 | ); 48 | cairo_rectangle(DestContext, R.Left + Target.x, R.Top + Target.y, 49 | R.Right - R.Left, R.Bottom - R.Top); 50 | cairo_fill(DestContext); 51 | 52 | cairo_destroy(DestContext); 53 | cairo_surface_destroy(DestSurface); 54 | end; 55 | end; 56 | end; 57 | end; 58 | 59 | function CalculateScanline(Bits: Pointer; Width, Height, Row: Integer): Pointer; 60 | begin 61 | Result := nil; 62 | end; 63 | 64 | function GetBitmapBitsFromBitmap(Bitmap: HBITMAP): Pointer; 65 | begin 66 | Result := nil; 67 | end; 68 | -------------------------------------------------------------------------------- /Source/vtlogger.pas: -------------------------------------------------------------------------------- 1 | unit VTLogger; 2 | 3 | {$mode objfpc}{$H+} 4 | 5 | interface 6 | 7 | uses 8 | LCLLogger, MultiLog; 9 | 10 | const 11 | lcAll = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]; 12 | lcDebug = 0; 13 | lcError = 1; 14 | lcInfo = 2; 15 | lcWarning = 3; 16 | lcEvents = 4; 17 | //reserved 18 | lcUser = 8; 19 | 20 | lcVTEvents = lcUser + 1; 21 | lcPaint = lcUser + 2; 22 | lcPaintHeader = lcUser + 3; 23 | lcDummyFunctions = lcUser + 4; 24 | lcMessages = lcUser + 5; 25 | lcPaintSelection = lcUser + 6; 26 | lcSetCursor = lcUser + 7;//it generates a lot of messages. so it will be debugged alone 27 | lcPaintBitmap = lcUser + 8; 28 | lcScroll = lcUser + 8; 29 | lcPaintDetails = lcUser + 9; 30 | lcCheck = lcUser + 10; 31 | lcEditLink = lcUser + 11; 32 | lcEraseBkgnd = lcUser + 12; 33 | lcColumnPosition = lcUser + 13; 34 | lcTimer = lcUser + 14; 35 | lcDrag = lcUser + 15; 36 | lcOle = lcUser + 16; 37 | lcPanning = lcUser + 17; 38 | lcHeaderOffset = lcUser + 18; 39 | lcSelection = lcUser + 19; 40 | lcAlphaBlend = lcUser + 20; 41 | lcHint = lcUser + 21; 42 | lcMouseEvent = lcUser + 22; 43 | 44 | lcVT = [lcEvents..lcMouseEvent]; 45 | 46 | var 47 | Logger: TLCLLogger; 48 | 49 | 50 | function GetSelectedNodes(Sender: TLogger; Data: Pointer; var DoSend: Boolean): String; 51 | 52 | implementation 53 | 54 | uses 55 | VirtualTrees, sysutils; 56 | 57 | type 58 | TNodeData = record 59 | Title: String; 60 | end; 61 | PNodeData = ^TNodeData; 62 | 63 | function GetSelectedNodes(Sender: TLogger; Data: Pointer; var DoSend: Boolean): String; 64 | var 65 | i: Integer; 66 | TempNode: PVirtualNode; 67 | begin 68 | with TBaseVirtualTree(Data) do 69 | begin 70 | Result:='SelectedCount: '+IntToStr(SelectedCount)+LineEnding; 71 | TempNode:=GetFirstSelected; 72 | if TempNode = nil then exit; 73 | Result:=Result+PNodeData(GetNodeData(TempNode))^.Title+LineEnding; 74 | for i:= 1 to SelectedCount -1 do 75 | begin 76 | TempNode:=GetNextSelected(TempNode); 77 | Result:=Result+PNodeData(GetNodeData(TempNode))^.Title+LineEnding; 78 | end; 79 | end; 80 | end; 81 | 82 | 83 | initialization 84 | Logger:=TLCLLogger.Create; 85 | finalization 86 | Logger.Free; 87 | end. 88 | 89 | -------------------------------------------------------------------------------- /Demos/vtbasic/VTCheckList.lfm: -------------------------------------------------------------------------------- 1 | object frmVTCheckList: TfrmVTCheckList 2 | Left = 403 3 | Height = 346 4 | Top = 173 5 | Width = 401 6 | HorzScrollBar.Page = 400 7 | VertScrollBar.Page = 345 8 | ActiveControl = VT 9 | Caption = 'Generic CheckListbox selection Form (no node data used)' 10 | ClientHeight = 346 11 | ClientWidth = 401 12 | Font.Height = -11 13 | Font.Name = 'Tahoma' 14 | OnActivate = FormActivate 15 | OnCreate = FormCreate 16 | OnDestroy = FormDestroy 17 | Position = poScreenCenter 18 | LCLVersion = '1.7' 19 | object Panel1: TPanel 20 | Left = 0 21 | Height = 346 22 | Top = 0 23 | Width = 401 24 | Align = alClient 25 | BevelOuter = bvNone 26 | BorderWidth = 7 27 | Caption = 'Panel1' 28 | ClientHeight = 346 29 | ClientWidth = 401 30 | TabOrder = 0 31 | object VT: TVirtualStringTree 32 | Left = 7 33 | Height = 301 34 | Top = 7 35 | Width = 387 36 | Align = alClient 37 | CheckImageKind = ckFlat 38 | Header.AutoSizeIndex = 0 39 | Header.Columns = <> 40 | Header.Font.Height = -11 41 | Header.Font.Name = 'MS Shell Dlg 2' 42 | Header.MainColumn = -1 43 | Header.Options = [hoColumnResize, hoDrag] 44 | TabOrder = 0 45 | TreeOptions.PaintOptions = [toThemeAware, toUseBlendedImages] 46 | TreeOptions.SelectionOptions = [toExtendedFocus, toMultiSelect, toCenterScrollIntoView] 47 | OnGetText = VTGetText 48 | OnGetNodeDataSize = VTGetNodeDataSize 49 | OnInitNode = VTInitNode 50 | end 51 | object panBase: TPanel 52 | Left = 7 53 | Height = 31 54 | Top = 308 55 | Width = 387 56 | Align = alBottom 57 | BevelOuter = bvNone 58 | ClientHeight = 31 59 | ClientWidth = 387 60 | TabOrder = 1 61 | object btnOk: TButton 62 | Left = 225 63 | Height = 25 64 | Top = 6 65 | Width = 75 66 | BorderSpacing.InnerBorder = 4 67 | Caption = '&Ok' 68 | OnClick = btnOkClick 69 | TabOrder = 0 70 | end 71 | object btnCancel: TButton 72 | Left = 304 73 | Height = 25 74 | Top = 6 75 | Width = 75 76 | BorderSpacing.InnerBorder = 4 77 | Caption = '&Cancel' 78 | ModalResult = 2 79 | TabOrder = 1 80 | end 81 | end 82 | end 83 | end 84 | -------------------------------------------------------------------------------- /Demos/OLE/ole.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <Flags> 8 | <LRSInOutputDirectory Value="False"/> 9 | </Flags> 10 | <SessionStorage Value="InProjectDir"/> 11 | <MainUnit Value="0"/> 12 | <ResourceType Value="res"/> 13 | <UseXPManifest Value="True"/> 14 | </General> 15 | <VersionInfo> 16 | <StringTable ProductVersion=""/> 17 | </VersionInfo> 18 | <BuildModes Count="1"> 19 | <Item1 Name="default" Default="True"/> 20 | </BuildModes> 21 | <PublishOptions> 22 | <Version Value="2"/> 23 | <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> 24 | <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/> 25 | </PublishOptions> 26 | <RunParams> 27 | <local> 28 | <FormatVersion Value="1"/> 29 | <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/> 30 | </local> 31 | </RunParams> 32 | <RequiredPackages Count="2"> 33 | <Item1> 34 | <PackageName Value="LCL"/> 35 | </Item1> 36 | <Item2> 37 | <PackageName Value="virtualtreeview_package"/> 38 | </Item2> 39 | </RequiredPackages> 40 | <Units Count="2"> 41 | <Unit0> 42 | <Filename Value="ole.lpr"/> 43 | <IsPartOfProject Value="True"/> 44 | </Unit0> 45 | <Unit1> 46 | <Filename Value="Main.pas"/> 47 | <IsPartOfProject Value="True"/> 48 | <ComponentName Value="MainForm"/> 49 | <HasResources Value="True"/> 50 | <ResourceBaseClass Value="Form"/> 51 | </Unit1> 52 | </Units> 53 | </ProjectOptions> 54 | <CompilerOptions> 55 | <Version Value="11"/> 56 | <PathDelim Value="\"/> 57 | <Target> 58 | <Filename Value="ole"/> 59 | </Target> 60 | <SearchPaths> 61 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 62 | </SearchPaths> 63 | <Parsing> 64 | <SyntaxOptions> 65 | <CStyleOperator Value="False"/> 66 | <UseAnsiStrings Value="False"/> 67 | </SyntaxOptions> 68 | </Parsing> 69 | <Linking> 70 | <Debugging> 71 | <UseHeaptrc Value="True"/> 72 | </Debugging> 73 | </Linking> 74 | </CompilerOptions> 75 | </CONFIG> 76 | -------------------------------------------------------------------------------- /Demos/dataarray/dataarray.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <Flags> 8 | <LRSInOutputDirectory Value="False"/> 9 | </Flags> 10 | <SessionStorage Value="InProjectDir"/> 11 | <MainUnit Value="0"/> 12 | <ResourceType Value="res"/> 13 | <UseXPManifest Value="True"/> 14 | </General> 15 | <VersionInfo> 16 | <StringTable ProductVersion=""/> 17 | </VersionInfo> 18 | <BuildModes Count="1"> 19 | <Item1 Name="default" Default="True"/> 20 | </BuildModes> 21 | <PublishOptions> 22 | <Version Value="2"/> 23 | <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> 24 | <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/> 25 | </PublishOptions> 26 | <RunParams> 27 | <local> 28 | <FormatVersion Value="1"/> 29 | <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/> 30 | </local> 31 | </RunParams> 32 | <RequiredPackages Count="2"> 33 | <Item1> 34 | <PackageName Value="virtualtreeview_package"/> 35 | </Item1> 36 | <Item2> 37 | <PackageName Value="LCL"/> 38 | </Item2> 39 | </RequiredPackages> 40 | <Units Count="2"> 41 | <Unit0> 42 | <Filename Value="dataarray.lpr"/> 43 | <IsPartOfProject Value="True"/> 44 | </Unit0> 45 | <Unit1> 46 | <Filename Value="Main.pas"/> 47 | <IsPartOfProject Value="True"/> 48 | <ComponentName Value="MainForm"/> 49 | <HasResources Value="True"/> 50 | <ResourceBaseClass Value="Form"/> 51 | </Unit1> 52 | </Units> 53 | </ProjectOptions> 54 | <CompilerOptions> 55 | <Version Value="11"/> 56 | <PathDelim Value="\"/> 57 | <Target> 58 | <Filename Value="dataarray"/> 59 | </Target> 60 | <SearchPaths> 61 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 62 | </SearchPaths> 63 | <Parsing> 64 | <SyntaxOptions> 65 | <UseAnsiStrings Value="False"/> 66 | </SyntaxOptions> 67 | </Parsing> 68 | <Linking> 69 | <Options> 70 | <Win32> 71 | <GraphicApplication Value="True"/> 72 | </Win32> 73 | </Options> 74 | </Linking> 75 | </CompilerOptions> 76 | </CONFIG> 77 | -------------------------------------------------------------------------------- /Help/Source/Include/Overview.dtx: -------------------------------------------------------------------------------- 1 | @@Overview.htm 2 | <title Introduction> 3 | 4 | Virtual Treeview is a tree view control built from ground up. More than 3 years of development made it one of the most 5 | flexible and advanced tree controls available today. Virtual Treeview starts off with the claim to improve many aspects 6 | \of existing solutions and introduces some new technologies and principles which were not available before. 7 | 8 | As the name already indicates, this control uses a different paradigm for tree management than other controls of this 9 | kind. It does not know anything about the data it manages (except its size), not even the captions of a node. Everything 10 | is retrieved from the application via events (or descendants via overridden methods). 11 | 12 | Virtual Treeview has been carefully designed and thoroughly tested. The control proved its concept as well as everyday 13 | fitness already in many commercial products and freeware projects. 14 | 15 | <table noborder> 16 | <image Overview.bmp> 17 | </table> 18 | Virtual Treeview can be characterized by the following core capabilities: 19 | 20 | 21 | 22 | * <b>Extremely fast</b> and designed for <b>high speed access</b>. 23 | * <b>Memory sparing</b> which is the premise for speed and capacity. 24 | * A <b>high capacity</b> control. 25 | * <b>Highly customizable</b>. 26 | * Designed for <b>professionals</b>, implements a <b>virtual paradigm</b> with a <b>new serialization concept</b>. 27 | * <b>Newest technologies and platforms</b> are supported (e.g. Windows XP). 28 | * Unique features like <b>Unicode</b>, <b>right-to-left</b> directionality and layout, <b>alpha blending</b> 29 | and <b>OLE</b> drag'n drop and clipboard operations. 30 | 31 | <table noborder> 32 | <image GenericXP.bmp> 33 | </table> 34 | 35 | <b>Homepage:</b> <extlink http://www.soft-gems.net>www.soft-gems.net</extlink> 36 | 37 | <b>E-Mail:</b> <extlink mailto:support@soft-gems.net>support@soft-gems.net</extlink> 38 | 39 | <b>Support center:</b> <extlink http://support.soft-gems.net>support.soft-gems.net</extlink> 40 | 41 | <b>News group: </b><extlink news://news.soft-gems.net/delphi-gems.support.virtualtreeview>delphi-gems.support.virtualtreeview</extlink> 42 | 43 | <b>Web based forums: </b><extlink http://support.soft-gems.net/forums>support.soft-gems.net/forums</extlink> 44 | 45 | <b>Issue Tracker: </b><extlink http://support.soft-gems.net/mantis>support.soft-gems.net/mantis</extlink> 46 | -------------------------------------------------------------------------------- /Demos/images/images.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <Flags> 8 | <LRSInOutputDirectory Value="False"/> 9 | </Flags> 10 | <SessionStorage Value="InProjectDir"/> 11 | <MainUnit Value="0"/> 12 | <ResourceType Value="res"/> 13 | <UseXPManifest Value="True"/> 14 | <XPManifest> 15 | <DpiAware Value="True"/> 16 | </XPManifest> 17 | </General> 18 | <VersionInfo> 19 | <StringTable ProductVersion=""/> 20 | </VersionInfo> 21 | <BuildModes Count="1"> 22 | <Item1 Name="default" Default="True"/> 23 | </BuildModes> 24 | <PublishOptions> 25 | <Version Value="2"/> 26 | <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> 27 | <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/> 28 | </PublishOptions> 29 | <RunParams> 30 | <local> 31 | <FormatVersion Value="1"/> 32 | <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/> 33 | </local> 34 | </RunParams> 35 | <RequiredPackages Count="2"> 36 | <Item1> 37 | <PackageName Value="virtualtreeview_package"/> 38 | </Item1> 39 | <Item2> 40 | <PackageName Value="LCL"/> 41 | </Item2> 42 | </RequiredPackages> 43 | <Units Count="2"> 44 | <Unit0> 45 | <Filename Value="images.lpr"/> 46 | <IsPartOfProject Value="True"/> 47 | </Unit0> 48 | <Unit1> 49 | <Filename Value="Unit1.pas"/> 50 | <IsPartOfProject Value="True"/> 51 | <ComponentName Value="Form1"/> 52 | <HasResources Value="True"/> 53 | <ResourceBaseClass Value="Form"/> 54 | </Unit1> 55 | </Units> 56 | </ProjectOptions> 57 | <CompilerOptions> 58 | <Version Value="11"/> 59 | <PathDelim Value="\"/> 60 | <Target> 61 | <Filename Value="images"/> 62 | </Target> 63 | <SearchPaths> 64 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 65 | </SearchPaths> 66 | <Parsing> 67 | <SyntaxOptions> 68 | <UseAnsiStrings Value="False"/> 69 | </SyntaxOptions> 70 | </Parsing> 71 | <Linking> 72 | <Options> 73 | <Win32> 74 | <GraphicApplication Value="True"/> 75 | </Win32> 76 | </Options> 77 | </Linking> 78 | </CompilerOptions> 79 | </CONFIG> 80 | -------------------------------------------------------------------------------- /Demos/unicode/unicode.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <SessionStorage Value="InProjectDir"/> 8 | <MainUnit Value="0"/> 9 | <ResourceType Value="res"/> 10 | <UseXPManifest Value="True"/> 11 | </General> 12 | <VersionInfo> 13 | <StringTable ProductVersion=""/> 14 | </VersionInfo> 15 | <BuildModes Count="1"> 16 | <Item1 Name="default" Default="True"/> 17 | </BuildModes> 18 | <PublishOptions> 19 | <Version Value="2"/> 20 | <IgnoreBinaries Value="False"/> 21 | <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> 22 | <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/> 23 | </PublishOptions> 24 | <RunParams> 25 | <local> 26 | <FormatVersion Value="1"/> 27 | <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/> 28 | </local> 29 | </RunParams> 30 | <RequiredPackages Count="2"> 31 | <Item1> 32 | <PackageName Value="virtualtreeview_package"/> 33 | <MinVersion Major="4" Minor="5" Release="1" Valid="True"/> 34 | </Item1> 35 | <Item2> 36 | <PackageName Value="LCL"/> 37 | </Item2> 38 | </RequiredPackages> 39 | <Units Count="2"> 40 | <Unit0> 41 | <Filename Value="unicode.lpr"/> 42 | <IsPartOfProject Value="True"/> 43 | </Unit0> 44 | <Unit1> 45 | <Filename Value="fmain.pas"/> 46 | <IsPartOfProject Value="True"/> 47 | <ComponentName Value="MainForm"/> 48 | <HasResources Value="True"/> 49 | <ResourceBaseClass Value="Form"/> 50 | <UnitName Value="fMain"/> 51 | </Unit1> 52 | </Units> 53 | </ProjectOptions> 54 | <CompilerOptions> 55 | <Version Value="11"/> 56 | <PathDelim Value="\"/> 57 | <Target> 58 | <Filename Value="unicode"/> 59 | </Target> 60 | <SearchPaths> 61 | <IncludeFiles Value="$(ProjOutDir)"/> 62 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 63 | </SearchPaths> 64 | <Parsing> 65 | <SyntaxOptions> 66 | <UseAnsiStrings Value="False"/> 67 | </SyntaxOptions> 68 | </Parsing> 69 | <Linking> 70 | <Options> 71 | <Win32> 72 | <GraphicApplication Value="True"/> 73 | </Win32> 74 | </Options> 75 | </Linking> 76 | </CompilerOptions> 77 | </CONFIG> 78 | -------------------------------------------------------------------------------- /Demos/Objects/mvcdemo.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <PathDelim Value="\"/> 6 | <General> 7 | <Flags> 8 | <LRSInOutputDirectory Value="False"/> 9 | </Flags> 10 | <SessionStorage Value="InProjectDir"/> 11 | <MainUnit Value="0"/> 12 | <ResourceType Value="res"/> 13 | <UseXPManifest Value="True"/> 14 | </General> 15 | <VersionInfo> 16 | <StringTable ProductVersion=""/> 17 | </VersionInfo> 18 | <BuildModes Count="1"> 19 | <Item1 Name="default" Default="True"/> 20 | </BuildModes> 21 | <PublishOptions> 22 | <Version Value="2"/> 23 | <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> 24 | <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/> 25 | </PublishOptions> 26 | <RunParams> 27 | <local> 28 | <FormatVersion Value="1"/> 29 | <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/> 30 | </local> 31 | </RunParams> 32 | <RequiredPackages Count="3"> 33 | <Item1> 34 | <PackageName Value="virtualtreeview_package"/> 35 | </Item1> 36 | <Item2> 37 | <PackageName Value="lclextensions_package"/> 38 | </Item2> 39 | <Item3> 40 | <PackageName Value="LCL"/> 41 | </Item3> 42 | </RequiredPackages> 43 | <Units Count="4"> 44 | <Unit0> 45 | <Filename Value="mvcdemo.lpr"/> 46 | <IsPartOfProject Value="True"/> 47 | </Unit0> 48 | <Unit1> 49 | <Filename Value="MVCDemoMain.pas"/> 50 | <IsPartOfProject Value="True"/> 51 | <ComponentName Value="fmMVCDemo"/> 52 | <HasResources Value="True"/> 53 | <ResourceBaseClass Value="Form"/> 54 | </Unit1> 55 | <Unit2> 56 | <Filename Value="MVCPanel.pas"/> 57 | <IsPartOfProject Value="True"/> 58 | </Unit2> 59 | <Unit3> 60 | <Filename Value="MVCTypes.pas"/> 61 | <IsPartOfProject Value="True"/> 62 | </Unit3> 63 | </Units> 64 | </ProjectOptions> 65 | <CompilerOptions> 66 | <Version Value="11"/> 67 | <PathDelim Value="\"/> 68 | <Target> 69 | <Filename Value="mvcdemo"/> 70 | </Target> 71 | <SearchPaths> 72 | <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> 73 | </SearchPaths> 74 | <Parsing> 75 | <SyntaxOptions> 76 | <UseAnsiStrings Value="False"/> 77 | </SyntaxOptions> 78 | </Parsing> 79 | </CompilerOptions> 80 | </CONFIG> 81 | -------------------------------------------------------------------------------- /Demos/mininal/Main.lfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 340 3 | Height = 486 4 | Top = 147 5 | Width = 427 6 | ActiveControl = VST 7 | Caption = 'Simple Virtual Treeview demo' 8 | ClientHeight = 486 9 | ClientWidth = 427 10 | Font.Height = -11 11 | Font.Name = 'MS Sans Serif' 12 | OnCreate = FormCreate 13 | LCLVersion = '1.7' 14 | object Label1: TLabel 15 | Left = 10 16 | Height = 13 17 | Top = 8 18 | Width = 111 19 | Caption = 'Last operation duration:' 20 | ParentColor = False 21 | end 22 | object VST: TVirtualStringTree 23 | Left = 10 24 | Height = 360 25 | Top = 24 26 | Width = 410 27 | Colors.BorderColor = clWindowText 28 | Colors.HotColor = clBlack 29 | DefaultText = 'Node' 30 | Header.AutoSizeIndex = -1 31 | Header.Columns = <> 32 | Header.DefaultHeight = 17 33 | Header.Font.Height = -11 34 | Header.Font.Name = 'MS Sans Serif' 35 | Header.MainColumn = -1 36 | Header.Options = [hoColumnResize, hoDrag] 37 | IncrementalSearch = isAll 38 | RootNodeCount = 100 39 | TabOrder = 0 40 | TreeOptions.AnimationOptions = [toAnimatedToggle] 41 | TreeOptions.AutoOptions = [toAutoDropExpand, toAutoTristateTracking] 42 | TreeOptions.MiscOptions = [toEditable, toInitOnSave, toToggleOnDblClick, toWheelPanning] 43 | TreeOptions.PaintOptions = [toShowButtons, toShowRoot, toShowTreeLines, toThemeAware, toUseBlendedImages] 44 | TreeOptions.SelectionOptions = [toMultiSelect, toCenterScrollIntoView] 45 | OnFreeNode = VSTFreeNode 46 | OnGetText = VSTGetText 47 | OnInitNode = VSTInitNode 48 | end 49 | object ClearButton: TButton 50 | Left = 97 51 | Height = 25 52 | Top = 452 53 | Width = 183 54 | BorderSpacing.InnerBorder = 4 55 | Caption = 'Clear tree' 56 | OnClick = ClearButtonClick 57 | TabOrder = 1 58 | end 59 | object AddOneButton: TButton 60 | Left = 97 61 | Height = 25 62 | Top = 392 63 | Width = 183 64 | BorderSpacing.InnerBorder = 4 65 | Caption = 'Add node(s) to root' 66 | OnClick = AddButtonClick 67 | TabOrder = 2 68 | end 69 | object Edit1: TEdit 70 | Left = 10 71 | Height = 21 72 | Top = 392 73 | Width = 79 74 | TabOrder = 3 75 | Text = '1' 76 | end 77 | object Button1: TButton 78 | Tag = 1 79 | Left = 96 80 | Height = 25 81 | Top = 422 82 | Width = 184 83 | BorderSpacing.InnerBorder = 4 84 | Caption = 'Add node(s) as children' 85 | OnClick = AddButtonClick 86 | TabOrder = 4 87 | end 88 | object CloseButton: TButton 89 | Left = 345 90 | Height = 25 91 | Top = 452 92 | Width = 75 93 | BorderSpacing.InnerBorder = 4 94 | Caption = 'Close' 95 | OnClick = CloseButtonClick 96 | TabOrder = 5 97 | end 98 | end 99 | -------------------------------------------------------------------------------- /Demos/dragdrop/vtvdragdrop.lpi: -------------------------------------------------------------------------------- 1 | <?xml version="1.0"?> 2 | <CONFIG> 3 | <ProjectOptions> 4 | <Version Value="9"/> 5 | <General> 6 | <SessionStorage Value="InProjectDir"/> 7 | <MainUnit Value="0"/> 8 | <ResourceType Value="res"/> 9 | <UseXPManifest Value="True"/> 10 | </General> 11 | <i18n> 12 | <EnableI18N LFM="False"/> 13 | </i18n> 14 | <VersionInfo> 15 | <StringTable ProductVersion=""/> 16 | </VersionInfo> 17 | <BuildModes Count="1"> 18 | <Item1 Name="Default" Default="True"/> 19 | </BuildModes> 20 | <PublishOptions> 21 | <Version Value="2"/> 22 | <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> 23 | <ExcludeFileFilter Value="*.(bak|ppu|o|so);*~;backup"/> 24 | </PublishOptions> 25 | <RunParams> 26 | <local> 27 | <FormatVersion Value="1"/> 28 | <LaunchingApplication PathPlusParams="/usr/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/> 29 | </local> 30 | </RunParams> 31 | <RequiredPackages Count="2"> 32 | <Item1> 33 | <PackageName Value="virtualtreeview_package"/> 34 | </Item1> 35 | <Item2> 36 | <PackageName Value="LCL"/> 37 | </Item2> 38 | </RequiredPackages> 39 | <Units Count="2"> 40 | <Unit0> 41 | <Filename Value="vtvdragdrop.lpr"/> 42 | <IsPartOfProject Value="True"/> 43 | <UnitName Value="vtvdragdrop"/> 44 | </Unit0> 45 | <Unit1> 46 | <Filename Value="fmain.pas"/> 47 | <IsPartOfProject Value="True"/> 48 | <ComponentName Value="MainForm"/> 49 | <HasResources Value="True"/> 50 | <ResourceBaseClass Value="Form"/> 51 | <UnitName Value="fMain"/> 52 | </Unit1> 53 | </Units> 54 | </ProjectOptions> 55 | <CompilerOptions> 56 | <Version Value="11"/> 57 | <Target> 58 | <Filename Value="vtvdragdrop"/> 59 | </Target> 60 | <SearchPaths> 61 | <IncludeFiles Value="$(ProjOutDir)"/> 62 | <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> 63 | </SearchPaths> 64 | <Linking> 65 | <Options> 66 | <Win32> 67 | <GraphicApplication Value="True"/> 68 | </Win32> 69 | </Options> 70 | </Linking> 71 | <Other> 72 | <CompilerMessages> 73 | <UseMsgFile Value="True"/> 74 | </CompilerMessages> 75 | <CompilerPath Value="$(CompPath)"/> 76 | </Other> 77 | </CompilerOptions> 78 | <Debugging> 79 | <Exceptions Count="3"> 80 | <Item1> 81 | <Name Value="EAbort"/> 82 | </Item1> 83 | <Item2> 84 | <Name Value="ECodetoolError"/> 85 | </Item2> 86 | <Item3> 87 | <Name Value="EFOpenError"/> 88 | </Item3> 89 | </Exceptions> 90 | </Debugging> 91 | </CONFIG> 92 | -------------------------------------------------------------------------------- /Demos/OLE/OLE.dof: -------------------------------------------------------------------------------- 1 | [FileVersion] 2 | Version=7.0 3 | [Compiler] 4 | A=8 5 | B=0 6 | C=1 7 | D=1 8 | E=0 9 | F=0 10 | G=1 11 | H=1 12 | I=1 13 | J=0 14 | K=0 15 | L=1 16 | M=0 17 | N=1 18 | O=1 19 | P=1 20 | Q=0 21 | R=0 22 | S=0 23 | T=0 24 | U=0 25 | V=1 26 | W=0 27 | X=1 28 | Y=1 29 | Z=1 30 | ShowHints=1 31 | ShowWarnings=1 32 | UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 33 | NamespacePrefix= 34 | SymbolDeprecated=1 35 | SymbolLibrary=1 36 | SymbolPlatform=1 37 | UnitLibrary=1 38 | UnitPlatform=1 39 | UnitDeprecated=1 40 | HResultCompat=1 41 | HidingMember=1 42 | HiddenVirtual=1 43 | Garbage=1 44 | BoundsError=1 45 | ZeroNilCompat=1 46 | StringConstTruncated=1 47 | ForLoopVarVarPar=1 48 | TypedConstVarPar=1 49 | AsgToTypedConst=1 50 | CaseLabelRange=1 51 | ForVariable=1 52 | ConstructingAbstract=1 53 | ComparisonFalse=1 54 | ComparisonTrue=1 55 | ComparingSignedUnsigned=1 56 | CombiningSignedUnsigned=1 57 | UnsupportedConstruct=1 58 | FileOpen=1 59 | FileOpenUnitSrc=1 60 | BadGlobalSymbol=1 61 | DuplicateConstructorDestructor=1 62 | InvalidDirective=1 63 | PackageNoLink=1 64 | PackageThreadVar=1 65 | ImplicitImport=1 66 | HPPEMITIgnored=1 67 | NoRetVal=1 68 | UseBeforeDef=1 69 | ForLoopVarUndef=1 70 | UnitNameMismatch=1 71 | NoCFGFileFound=1 72 | MessageDirective=1 73 | ImplicitVariants=1 74 | UnicodeToLocale=1 75 | LocaleToUnicode=1 76 | ImagebaseMultiple=1 77 | SuspiciousTypecast=1 78 | PrivatePropAccessor=1 79 | UnsafeType=0 80 | UnsafeCode=0 81 | UnsafeCast=0 82 | [Linker] 83 | MapFile=3 84 | OutputObjs=0 85 | ConsoleApp=1 86 | DebugInfo=0 87 | RemoteSymbols=0 88 | MinStackSize=16384 89 | MaxStackSize=1048576 90 | ImageBase=4194304 91 | ExeDescription= 92 | [Directories] 93 | OutputDir= 94 | UnitOutputDir= 95 | PackageDLLOutputDir= 96 | PackageDCPOutputDir= 97 | SearchPath=..\..\Source 98 | Packages=vcl;rtl;vclx 99 | Conditionals= 100 | DebugSourceDirs= 101 | UsePackages=0 102 | [Parameters] 103 | RunParams= 104 | HostApplication= 105 | Launcher= 106 | UseLauncher=0 107 | DebugCWD= 108 | [Version Info] 109 | IncludeVerInfo=0 110 | AutoIncBuild=0 111 | MajorVer=1 112 | MinorVer=0 113 | Release=0 114 | Build=0 115 | Debug=0 116 | PreRelease=0 117 | Special=0 118 | Private=0 119 | DLL=0 120 | Locale=1031 121 | CodePage=1252 122 | [Version Info Keys] 123 | CompanyName= 124 | FileDescription= 125 | FileVersion=1.0.0.0 126 | InternalName= 127 | LegalCopyright= 128 | LegalTrademarks= 129 | OriginalFilename= 130 | ProductName= 131 | ProductVersion=1.0.0.0 132 | Comments= 133 | [Excluded Packages] 134 | [HistoryLists\hlConditionals] 135 | Count=1 136 | Item0=EUREKALOG;EUREKALOG_VER6 137 | [HistoryLists\hlUnitAliases] 138 | Count=1 139 | Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 140 | -------------------------------------------------------------------------------- /Demos/Minimal/Minimal.dof: -------------------------------------------------------------------------------- 1 | [FileVersion] 2 | Version=7.0 3 | [Compiler] 4 | A=8 5 | B=0 6 | C=1 7 | D=1 8 | E=0 9 | F=0 10 | G=1 11 | H=1 12 | I=1 13 | J=0 14 | K=0 15 | L=1 16 | M=0 17 | N=1 18 | O=1 19 | P=1 20 | Q=0 21 | R=0 22 | S=0 23 | T=0 24 | U=0 25 | V=1 26 | W=0 27 | X=1 28 | Y=1 29 | Z=1 30 | ShowHints=1 31 | ShowWarnings=1 32 | UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 33 | NamespacePrefix= 34 | SymbolDeprecated=1 35 | SymbolLibrary=1 36 | SymbolPlatform=1 37 | UnitLibrary=1 38 | UnitPlatform=1 39 | UnitDeprecated=1 40 | HResultCompat=1 41 | HidingMember=1 42 | HiddenVirtual=1 43 | Garbage=1 44 | BoundsError=1 45 | ZeroNilCompat=1 46 | StringConstTruncated=1 47 | ForLoopVarVarPar=1 48 | TypedConstVarPar=1 49 | AsgToTypedConst=1 50 | CaseLabelRange=1 51 | ForVariable=1 52 | ConstructingAbstract=1 53 | ComparisonFalse=1 54 | ComparisonTrue=1 55 | ComparingSignedUnsigned=1 56 | CombiningSignedUnsigned=1 57 | UnsupportedConstruct=1 58 | FileOpen=1 59 | FileOpenUnitSrc=1 60 | BadGlobalSymbol=1 61 | DuplicateConstructorDestructor=1 62 | InvalidDirective=1 63 | PackageNoLink=1 64 | PackageThreadVar=1 65 | ImplicitImport=1 66 | HPPEMITIgnored=1 67 | NoRetVal=1 68 | UseBeforeDef=1 69 | ForLoopVarUndef=1 70 | UnitNameMismatch=1 71 | NoCFGFileFound=1 72 | MessageDirective=1 73 | ImplicitVariants=1 74 | UnicodeToLocale=1 75 | LocaleToUnicode=1 76 | ImagebaseMultiple=1 77 | SuspiciousTypecast=1 78 | PrivatePropAccessor=1 79 | UnsafeType=0 80 | UnsafeCode=0 81 | UnsafeCast=0 82 | [Linker] 83 | MapFile=3 84 | OutputObjs=0 85 | ConsoleApp=1 86 | DebugInfo=0 87 | RemoteSymbols=0 88 | MinStackSize=16384 89 | MaxStackSize=1048576 90 | ImageBase=4194304 91 | ExeDescription= 92 | [Directories] 93 | OutputDir= 94 | UnitOutputDir= 95 | PackageDLLOutputDir= 96 | PackageDCPOutputDir= 97 | SearchPath=..\..\Source 98 | Packages=vcl;rtl;vclx 99 | Conditionals= 100 | DebugSourceDirs= 101 | UsePackages=0 102 | [Parameters] 103 | RunParams= 104 | HostApplication= 105 | Launcher= 106 | UseLauncher=0 107 | DebugCWD= 108 | [Version Info] 109 | IncludeVerInfo=0 110 | AutoIncBuild=0 111 | MajorVer=1 112 | MinorVer=0 113 | Release=0 114 | Build=0 115 | Debug=0 116 | PreRelease=0 117 | Special=0 118 | Private=0 119 | DLL=0 120 | Locale=1031 121 | CodePage=1252 122 | [Version Info Keys] 123 | CompanyName= 124 | FileDescription= 125 | FileVersion=1.0.0.0 126 | InternalName= 127 | LegalCopyright= 128 | LegalTrademarks= 129 | OriginalFilename= 130 | ProductName= 131 | ProductVersion=1.0.0.0 132 | Comments= 133 | [Excluded Packages] 134 | [HistoryLists\hlConditionals] 135 | Count=1 136 | Item0=EUREKALOG;EUREKALOG_VER6 137 | [HistoryLists\hlUnitAliases] 138 | Count=1 139 | Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 140 | -------------------------------------------------------------------------------- /Demos/Objects/MVCDemo.dof: -------------------------------------------------------------------------------- 1 | [FileVersion] 2 | Version=7.0 3 | [Compiler] 4 | A=8 5 | B=0 6 | C=1 7 | D=1 8 | E=0 9 | F=0 10 | G=1 11 | H=1 12 | I=1 13 | J=0 14 | K=0 15 | L=1 16 | M=0 17 | N=1 18 | O=1 19 | P=1 20 | Q=0 21 | R=0 22 | S=0 23 | T=0 24 | U=0 25 | V=1 26 | W=0 27 | X=1 28 | Y=1 29 | Z=1 30 | ShowHints=1 31 | ShowWarnings=1 32 | UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 33 | NamespacePrefix= 34 | SymbolDeprecated=1 35 | SymbolLibrary=1 36 | SymbolPlatform=1 37 | UnitLibrary=1 38 | UnitPlatform=1 39 | UnitDeprecated=1 40 | HResultCompat=1 41 | HidingMember=1 42 | HiddenVirtual=1 43 | Garbage=1 44 | BoundsError=1 45 | ZeroNilCompat=1 46 | StringConstTruncated=1 47 | ForLoopVarVarPar=1 48 | TypedConstVarPar=1 49 | AsgToTypedConst=1 50 | CaseLabelRange=1 51 | ForVariable=1 52 | ConstructingAbstract=1 53 | ComparisonFalse=1 54 | ComparisonTrue=1 55 | ComparingSignedUnsigned=1 56 | CombiningSignedUnsigned=1 57 | UnsupportedConstruct=1 58 | FileOpen=1 59 | FileOpenUnitSrc=1 60 | BadGlobalSymbol=1 61 | DuplicateConstructorDestructor=1 62 | InvalidDirective=1 63 | PackageNoLink=1 64 | PackageThreadVar=1 65 | ImplicitImport=1 66 | HPPEMITIgnored=1 67 | NoRetVal=1 68 | UseBeforeDef=1 69 | ForLoopVarUndef=1 70 | UnitNameMismatch=1 71 | NoCFGFileFound=1 72 | MessageDirective=1 73 | ImplicitVariants=1 74 | UnicodeToLocale=1 75 | LocaleToUnicode=1 76 | ImagebaseMultiple=1 77 | SuspiciousTypecast=1 78 | PrivatePropAccessor=1 79 | UnsafeType=0 80 | UnsafeCode=0 81 | UnsafeCast=0 82 | [Linker] 83 | MapFile=3 84 | OutputObjs=0 85 | ConsoleApp=1 86 | DebugInfo=0 87 | RemoteSymbols=0 88 | MinStackSize=16384 89 | MaxStackSize=1048576 90 | ImageBase=4194304 91 | ExeDescription= 92 | [Directories] 93 | OutputDir= 94 | UnitOutputDir= 95 | PackageDLLOutputDir= 96 | PackageDCPOutputDir= 97 | SearchPath=..\..\Source 98 | Packages=vcl;rtl;vclx 99 | Conditionals= 100 | DebugSourceDirs= 101 | UsePackages=0 102 | [Parameters] 103 | RunParams= 104 | HostApplication= 105 | Launcher= 106 | UseLauncher=0 107 | DebugCWD= 108 | [Version Info] 109 | IncludeVerInfo=0 110 | AutoIncBuild=0 111 | MajorVer=1 112 | MinorVer=0 113 | Release=0 114 | Build=0 115 | Debug=0 116 | PreRelease=0 117 | Special=0 118 | Private=0 119 | DLL=0 120 | Locale=1031 121 | CodePage=1252 122 | [Version Info Keys] 123 | CompanyName= 124 | FileDescription= 125 | FileVersion=1.0.0.0 126 | InternalName= 127 | LegalCopyright= 128 | LegalTrademarks= 129 | OriginalFilename= 130 | ProductName= 131 | ProductVersion=1.0.0.0 132 | Comments= 133 | [Excluded Packages] 134 | [HistoryLists\hlConditionals] 135 | Count=1 136 | Item0=EUREKALOG;EUREKALOG_VER6 137 | [HistoryLists\hlUnitAliases] 138 | Count=1 139 | Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 140 | -------------------------------------------------------------------------------- /Demos/Advanced/Advanced.dof: -------------------------------------------------------------------------------- 1 | [FileVersion] 2 | Version=7.0 3 | [Compiler] 4 | A=8 5 | B=0 6 | C=1 7 | D=1 8 | E=0 9 | F=0 10 | G=1 11 | H=1 12 | I=1 13 | J=0 14 | K=0 15 | L=1 16 | M=0 17 | N=1 18 | O=1 19 | P=1 20 | Q=0 21 | R=0 22 | S=0 23 | T=0 24 | U=0 25 | V=1 26 | W=0 27 | X=1 28 | Y=1 29 | Z=1 30 | ShowHints=1 31 | ShowWarnings=1 32 | UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 33 | NamespacePrefix= 34 | SymbolDeprecated=1 35 | SymbolLibrary=1 36 | SymbolPlatform=1 37 | UnitLibrary=1 38 | UnitPlatform=1 39 | UnitDeprecated=1 40 | HResultCompat=1 41 | HidingMember=1 42 | HiddenVirtual=1 43 | Garbage=1 44 | BoundsError=1 45 | ZeroNilCompat=1 46 | StringConstTruncated=1 47 | ForLoopVarVarPar=1 48 | TypedConstVarPar=1 49 | AsgToTypedConst=1 50 | CaseLabelRange=1 51 | ForVariable=1 52 | ConstructingAbstract=1 53 | ComparisonFalse=1 54 | ComparisonTrue=1 55 | ComparingSignedUnsigned=1 56 | CombiningSignedUnsigned=1 57 | UnsupportedConstruct=1 58 | FileOpen=1 59 | FileOpenUnitSrc=1 60 | BadGlobalSymbol=1 61 | DuplicateConstructorDestructor=1 62 | InvalidDirective=1 63 | PackageNoLink=1 64 | PackageThreadVar=1 65 | ImplicitImport=1 66 | HPPEMITIgnored=1 67 | NoRetVal=1 68 | UseBeforeDef=1 69 | ForLoopVarUndef=1 70 | UnitNameMismatch=1 71 | NoCFGFileFound=1 72 | MessageDirective=1 73 | ImplicitVariants=1 74 | UnicodeToLocale=1 75 | LocaleToUnicode=1 76 | ImagebaseMultiple=1 77 | SuspiciousTypecast=1 78 | PrivatePropAccessor=1 79 | UnsafeType=0 80 | UnsafeCode=0 81 | UnsafeCast=0 82 | [Linker] 83 | MapFile=3 84 | OutputObjs=0 85 | ConsoleApp=1 86 | DebugInfo=0 87 | RemoteSymbols=0 88 | MinStackSize=16384 89 | MaxStackSize=1048576 90 | ImageBase=4194304 91 | ExeDescription= 92 | [Directories] 93 | OutputDir= 94 | UnitOutputDir= 95 | PackageDLLOutputDir= 96 | PackageDCPOutputDir= 97 | SearchPath=..\..\Source 98 | Packages=vcl;rtl;vclx 99 | Conditionals= 100 | DebugSourceDirs= 101 | UsePackages=0 102 | [Parameters] 103 | RunParams= 104 | HostApplication= 105 | Launcher= 106 | UseLauncher=0 107 | DebugCWD= 108 | [Version Info] 109 | IncludeVerInfo=0 110 | AutoIncBuild=0 111 | MajorVer=1 112 | MinorVer=0 113 | Release=0 114 | Build=0 115 | Debug=0 116 | PreRelease=0 117 | Special=0 118 | Private=0 119 | DLL=0 120 | Locale=1031 121 | CodePage=1252 122 | [Version Info Keys] 123 | CompanyName= 124 | FileDescription= 125 | FileVersion=1.0.0.0 126 | InternalName= 127 | LegalCopyright= 128 | LegalTrademarks= 129 | OriginalFilename= 130 | ProductName= 131 | ProductVersion=1.0.0.0 132 | Comments= 133 | [Excluded Packages] 134 | [HistoryLists\hlConditionals] 135 | Count=1 136 | Item0=EUREKALOG;EUREKALOG_VER6 137 | [HistoryLists\hlUnitAliases] 138 | Count=1 139 | Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 140 | -------------------------------------------------------------------------------- /Demos/Minimal/Main.dfm: -------------------------------------------------------------------------------- 1 | object MainForm: TMainForm 2 | Left = 717 3 | Top = 268 4 | Width = 425 5 | Height = 481 6 | BiDiMode = bdLeftToRight 7 | Caption = 'Simple Virtual Treeview demo' 8 | Color = clBtnFace 9 | Font.Charset = DEFAULT_CHARSET 10 | Font.Color = clWindowText 11 | Font.Height = -11 12 | Font.Name = 'MS Sans Serif' 13 | Font.Style = [] 14 | OldCreateOrder = False 15 | ParentBiDiMode = False 16 | OnCreate = FormCreate 17 | DesignSize = ( 18 | 409 19 | 443) 20 | PixelsPerInch = 96 21 | TextHeight = 13 22 | object Label1: TLabel 23 | Left = 12 24 | Top = 12 25 | Width = 111 26 | Height = 13 27 | Caption = 'Last operation duration:' 28 | end 29 | object VST: TVirtualStringTree 30 | Left = 8 31 | Top = 36 32 | Width = 397 33 | Height = 301 34 | Anchors = [akLeft, akTop, akRight, akBottom] 35 | BiDiMode = bdLeftToRight 36 | Colors.BorderColor = clWindowText 37 | Colors.HotColor = clBlack 38 | DragMode = dmAutomatic 39 | DragType = dtVCL 40 | Header.AutoSizeIndex = -1 41 | Header.Font.Charset = DEFAULT_CHARSET 42 | Header.Font.Color = clWindowText 43 | Header.Font.Height = -11 44 | Header.Font.Name = 'MS Sans Serif' 45 | Header.Font.Style = [] 46 | Header.MainColumn = -1 47 | Header.Options = [hoColumnResize, hoDrag] 48 | HintAnimation = hatNone 49 | IncrementalSearch = isAll 50 | ParentBiDiMode = False 51 | RootNodeCount = 100 52 | TabOrder = 0 53 | TreeOptions.AnimationOptions = [toAnimatedToggle] 54 | TreeOptions.AutoOptions = [toAutoDropExpand, toAutoTristateTracking] 55 | TreeOptions.MiscOptions = [toEditable, toInitOnSave, toToggleOnDblClick, toWheelPanning] 56 | TreeOptions.PaintOptions = [toShowButtons, toShowRoot, toShowTreeLines, toThemeAware, toUseBlendedImages] 57 | TreeOptions.SelectionOptions = [toMultiSelect, toCenterScrollIntoView] 58 | OnFreeNode = VSTFreeNode 59 | OnInitNode = VSTInitNode 60 | OnStartDrag = VSTStartDrag 61 | Columns = <> 62 | end 63 | object ClearButton: TButton 64 | Left = 97 65 | Top = 410 66 | Width = 129 67 | Height = 25 68 | Anchors = [akLeft, akBottom] 69 | Caption = 'Clear tree' 70 | TabOrder = 1 71 | OnClick = ClearButtonClick 72 | end 73 | object AddOneButton: TButton 74 | Left = 96 75 | Top = 350 76 | Width = 130 77 | Height = 25 78 | Anchors = [akLeft, akBottom] 79 | Caption = 'Add node(s) to root' 80 | TabOrder = 2 81 | OnClick = AddButtonClick 82 | end 83 | object Edit1: TEdit 84 | Left = 8 85 | Top = 366 86 | Width = 81 87 | Height = 21 88 | Anchors = [akLeft, akBottom] 89 | TabOrder = 3 90 | Text = '1' 91 | end 92 | object Button1: TButton 93 | Tag = 1 94 | Left = 96 95 | Top = 378 96 | Width = 130 97 | Height = 25 98 | Anchors = [akLeft, akBottom] 99 | Caption = 'Add node(s) as children' 100 | TabOrder = 4 101 | OnClick = AddButtonClick 102 | end 103 | object CloseButton: TButton 104 | Left = 330 105 | Top = 410 106 | Width = 75 107 | Height = 25 108 | Anchors = [akRight, akBottom] 109 | Caption = 'Close' 110 | TabOrder = 5 111 | OnClick = CloseButtonClick 112 | end 113 | end 114 | -------------------------------------------------------------------------------- /Source/ideicons.lrs: -------------------------------------------------------------------------------- 1 | LazarusResources.Add('tvirtualdrawtree','XPM',[ 2 | '/* XPM */'#10'static char * tvirtualdrawtree_xpm[] = {'#10'"24 24 8 1",'#10 3 | +'".'#9'c #000000",'#10'"+'#9'c None",'#10'"@'#9'c #808000",'#10'"#'#9'c #20A' 4 | +'080",'#10'"$'#9'c #808080",'#10'"%'#9'c #C0A000",'#10'"&'#9'c #C0C0C0",'#10 5 | +'"*'#9'c #FFFFFF",'#10'"++++++..++++++++++++++++",'#10'"+++++.&&............' 6 | +'.+++",'#10'"++++.***&&&&&&&&&&$$@.++",'#10'"++++.************@$$$.++",'#10 7 | +'"+++.************@$$$$.++",'#10'"++++...@********.$$$$.++",'#10'"+++++++...' 8 | +'......$$$$@+++",'#10'"+++++++.$$$$$$$$***$.+++",'#10'"+++++++.*******%***&.' 9 | +'+++",'#10'"+++++++.*.****%%%**$.+++",'#10'"+++++++.*...*%%%%%*.++++",'#10'"' 10 | +'+++++++.*.**%%%%%%%.++++",'#10'"++++++.**.***####**.++++",'#10'"+++++.$**.*' 11 | +'*######*.++++",'#10'"+++++.&**..*######*.++++",'#10'"+++++.******######*.++' 12 | +'++",'#10'"+++++.*******####**&.+++",'#10'"+...+.***.....******.+++",'#10'"+' 13 | +'.&&@....&&&&&.****$.+++",'#10'"+.&&&&&&&&&&&&&.**&.++++",'#10'"++.$&&&&&&&&' 14 | +'&&&.&&&.++++",'#10'"++.$$$$$$$$$$$$$.&.+++++",'#10'"+++...............+++++' 15 | +'+",'#10'"++++++++++++++++++++++++"};'#10 16 | ]); 17 | LazarusResources.Add('tvirtualstringtree','XPM',[ 18 | '/* XPM */'#10'static char * tvirtualstringtree_xpm[] = {'#10'"24 24 8 1",'#10 19 | +'".'#9'c #000000",'#10'"+'#9'c None",'#10'"@'#9'c #808000",'#10'"#'#9'c #20A' 20 | +'080",'#10'"$'#9'c #808080",'#10'"%'#9'c #C0A000",'#10'"&'#9'c #C0C0C0",'#10 21 | +'"*'#9'c #FFFFFF",'#10'"++++++..++++++++++++++++",'#10'"+++++.&&............' 22 | +'.+++",'#10'"++++.***&&&&&&&&&&$$@.++",'#10'"++++.************@$$$.++",'#10 23 | +'"+++.************@$$$$.++",'#10'"++++...@********.$$$$.++",'#10'"+++++++...' 24 | +'......$$$$@+++",'#10'"+++++++.$$$$$$$$***$.+++",'#10'"+++++++.***********&.' 25 | +'+++",'#10'"+++++++.*.**......*$.+++",'#10'"+++++++.*....%%%%.*.++++",'#10'"' 26 | +'+++++++.*.**......*.++++",'#10'"++++++.**.*********.++++",'#10'"+++++.$**.*' 27 | +'*......*.++++",'#10'"+++++.&**....####.*.++++",'#10'"+++++.******......*.++' 28 | +'++",'#10'"+++++.*************&.+++",'#10'"+...+.***.....******.+++",'#10'"+' 29 | +'.&&@....&&&&&.****$.+++",'#10'"+.&&&&&&&&&&&&&.**&.++++",'#10'"++.$&&&&&&&&' 30 | +'&&&.&&&.++++",'#10'"++.$$$$$$$$$$$$$.&.+++++",'#10'"+++...............+++++' 31 | +'+",'#10'"++++++++++++++++++++++++"};'#10 32 | ]); 33 | LazarusResources.Add('tvtheaderpopupmenu','XPM',[ 34 | '/* XPM */'#10'static char * tvtheaderpopupmenu_xpm[] = {'#10'"24 24 7 1",'#10 35 | +'".'#9'c #000000",'#10'"+'#9'c #000080",'#10'"@'#9'c None",'#10'"#'#9'c #808' 36 | +'000",'#10'"$'#9'c #808080",'#10'"%'#9'c #C0C0C0",'#10'"&'#9'c #FFFFFF",'#10 37 | +'"@@@@@@..@@@@@@@@@@@@@@@@",'#10'"@@@@@.%%.............@@@",'#10'"@@@@.&&&%%' 38 | +'%%%%%%%%$$#.@@",'#10'"@@@@.&&&&&&&&&&&&#$$$.@@",'#10'"@@@.&&&&&&&&&&&&#$$$$' 39 | +'.@@",'#10'"@@@@...#&&&&&&&&.$$$$.@@",'#10'"@@@@@@@.........$$$$#@@@",'#10'"' 40 | +'@@@@@@@.$$$$$$$$&&&$.@@@",'#10'"@@@@@@@.$&&&&&&.&&&%.@@@",'#10'"@@@@@@@.$&+' 41 | +'++&&.&&&$.@@@",'#10'"@@@@@@@.$&&&&&&.&&&.@@@@",'#10'"@@@@@@@.$&+++++.&&&.@@' 42 | +'@@",'#10'"@@@@@@.&$+&&&+&+&&&.@@@@",'#10'"@@@@@.$&$&++++&&+&&.@@@@",'#10'"@' 43 | +'@@@@.%&$&&&&+&&&+&.@@@@",'#10'"@@@@@.&&$....+&&&&+.@@@@",'#10'"@@@@@.&&&&&&' 44 | +'&+&&&++++@@@",'#10'"@...@.&&&....+&&&&+&.@@@",'#10'"@.%%#....%%%%+&++&&+.@@' 45 | +'@",'#10'"@.%%%%%%%%%%%++$+&&+@@@@",'#10'"@@.$%%%%%%%%%+%.%+&&+@@@",'#10'"@@' 46 | +'.$$$$$$$$$$$$$.+&&+@@@",'#10'"@@@...............++@@@@",'#10'"@@@@@@@@@@@@@' 47 | +'@@@@@@@@@@@"};'#10 48 | ]); 49 | -------------------------------------------------------------------------------- /Help/Source/Include/Editing.dtx: -------------------------------------------------------------------------------- 1 | @@Editing.htm 2 | <TITLE Editors and editing> 3 | 4 | Generally it cannot be said what data a user will edit when he or she edits a node. In the case of the string tree it 5 | becomes a lot easier to decide because we have, as the name implies, strings and captions to edit. But this is only a 6 | special case and the underlaying edit principle must be flexible to allow editing various different data of a node, 7 | including several items instead of only single ones. 8 | 9 | 10 | 11 | Since you cannot generally tell what will be edited the used solution does not assume anything. Instead it delegates the 12 | entire process to the application or derived trees via the IVTEditLink class. This interface defines some necessary 13 | methods which allow interaction between the tree and the editor but the actual editor implementation is up to the edit 14 | link (which can of course delegate this task to even another instance like the application). The edit link is responsible 15 | for everything including to hide and show the editor, reading the old values of a node and setting the new values etc. 16 | The tree only signals some general states like the edit start, end or cancellation. 17 | 18 | 19 | 20 | Editing starts with the protected DoEdit method which may be triggered by the edit timer (which in turn is triggered by 21 | clicking again on the focused node), by pressing F2 or by calling EditNode. DoEdit creates an editor (actually only the 22 | edit link) via the virtual CreateEditor method which should be overridden by descendant trees to return a valid edit link 23 | (as TVirtualStringTree does). Otherwise the method will query the application for an editor link. Actual editing starts 24 | \only if CreateEditor returns a valid edit link. 25 | 26 | After the tree received a valid edit link it initiates communication by calling PrepareEdit which can be used by the link 27 | to retrieve the values to be edited using the given node and column. If the edit link returns True in this call another 28 | call is initiated by the tree telling the link where to place the editor using the SetBounds method. Finally the tree 29 | calls BeginEdit to actually start the edit operation. From now on the edit link is responsible for any further action 30 | including passing on key presses like VK_UP and VK_DOWN to select a new node to edit etc. The link must also be aware 31 | that editing might be stopped at any time by EndEdit or CancelEdit. Otherwise however the edit link (and its editor(s)) 32 | is completely autonomous and can use whatever it considers as being appropriate for the editing task. It isn't even 33 | limited to use an in-place editor. 34 | 35 | 36 | 37 | With the class TStringEditLink you will find a sample implementation used in the string tree to edit single node 38 | captions. By examining the used editor (a normal TEdit control) you will find some things which should be handled the 39 | same or in a similar way to make editing smooth. 40 | 41 | 42 | 43 | Starting with version 3.8 Virtual Treeview allows to use the TNT controls suite from Troy Wolbrink, which allow to edit 44 | node captions with Unicode content. Download the latest package and add its path after installation to your project. 45 | Enable the TntSupport compiler switch by changing it from <B>{.$define TntSupport}</B> to <B>{$define TntSupport}</B> and 46 | recompile. 47 | 48 | Summary 49 | Because of the virtual nature of Virtual Treeview editing becomes a difficult issue. Read here what needs to be 50 | considered and where you can hook in to allow any editor for a node. 51 | -------------------------------------------------------------------------------- /Source/virtualtreeview_package.lpk: -------------------------------------------------------------------------------- 1 | <?xml version="1.0" encoding="UTF-8"?> 2 | <CONFIG> 3 | <Package Version="4"> 4 | <Name Value="virtualtreeview_package"/> 5 | <Type Value="RunAndDesignTime"/> 6 | <Author Value="Mike Lischke (LCL Port: Luiz Américo)"/> 7 | <CompilerOptions> 8 | <Version Value="11"/> 9 | <SearchPaths> 10 | <IncludeFiles Value="include/intf/$(LCLWidgetType);units;include/intf"/> 11 | <OtherUnitFiles Value="units/$(LCLWidgetType)"/> 12 | <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)-$(LCLWidgetType)"/> 13 | </SearchPaths> 14 | <Conditionals Value="if VirtualTreeView_Debug = 'True' then 15 | begin 16 | CustomOptions := '-dDEBUG_VTV'; 17 | UnitPath += ';$PkgOutDir(multiloglaz)'; 18 | UsageUnitPath += ';$PkgOutDir(multiloglaz)'; 19 | end;"/> 20 | <BuildMacros> 21 | <Count Value="1"/> 22 | <Item1> 23 | <Identifier Value="VirtualTreeView_Debug"/> 24 | <Description Value="Enables debugging of VTV. Requires MultiLog package"/> 25 | <Values Count="2"> 26 | <Item1 Value="True"/> 27 | <Item2 Value="False"/> 28 | </Values> 29 | <ValueDescriptions Count="2"/> 30 | </Item1> 31 | </BuildMacros> 32 | <Parsing> 33 | <SyntaxOptions> 34 | <CStyleMacros Value="True"/> 35 | <UseAnsiStrings Value="False"/> 36 | </SyntaxOptions> 37 | </Parsing> 38 | </CompilerOptions> 39 | <Description Value="Virtual Treeview is an advanced TreeView component 40 | "/> 41 | <License Value=" Mozilla Public License 1.1 (MPL 1.1) or GNU Lesser General Public License 42 | "/> 43 | <Version Major="5" Minor="3" Release="2" Build="1"/> 44 | <Files Count="8"> 45 | <Item1> 46 | <Filename Value="VirtualTrees.pas"/> 47 | <UnitName Value="VirtualTrees"/> 48 | </Item1> 49 | <Item2> 50 | <Filename Value="VTHeaderPopup.pas"/> 51 | <UnitName Value="VTHeaderPopup"/> 52 | </Item2> 53 | <Item3> 54 | <Filename Value="registervirtualtreeview.pas"/> 55 | <HasRegisterProc Value="True"/> 56 | <UnitName Value="registervirtualtreeview"/> 57 | </Item3> 58 | <Item4> 59 | <Filename Value="ideicons.lrs"/> 60 | <Type Value="LRS"/> 61 | </Item4> 62 | <Item5> 63 | <Filename Value="VTConfig.inc"/> 64 | <Type Value="Include"/> 65 | </Item5> 66 | <Item6> 67 | <Filename Value="VTGraphics.pas"/> 68 | <UnitName Value="VTGraphics"/> 69 | </Item6> 70 | <Item7> 71 | <Filename Value="VirtualTrees.res"/> 72 | <Type Value="Binary"/> 73 | </Item7> 74 | <Item8> 75 | <Filename Value="VTIDEEditors.pas"/> 76 | <UnitName Value="VTIDEEditors"/> 77 | </Item8> 78 | </Files> 79 | <RequiredPkgs Count="3"> 80 | <Item1> 81 | <PackageName Value="IDEIntf"/> 82 | </Item1> 83 | <Item2> 84 | <PackageName Value="lclextensions_package"/> 85 | <MinVersion Minor="5" Valid="True"/> 86 | </Item2> 87 | <Item3> 88 | <PackageName Value="LCL"/> 89 | </Item3> 90 | </RequiredPkgs> 91 | <UsageOptions> 92 | <UnitPath Value="$(PkgOutDir)"/> 93 | </UsageOptions> 94 | <PublishOptions> 95 | <Version Value="2"/> 96 | <IgnoreBinaries Value="False"/> 97 | </PublishOptions> 98 | <CustomOptions Items="ExternHelp" Version="2"> 99 | <_ExternHelp Items="Count"/> 100 | </CustomOptions> 101 | </Package> 102 | </CONFIG> 103 | -------------------------------------------------------------------------------- /Demos/Advanced/MultilineDemo.lfm: -------------------------------------------------------------------------------- 1 | object NodeForm: TNodeForm 2 | Left = 497 3 | Height = 542 4 | Top = 332 5 | Width = 773 6 | ActiveControl = Panel1 7 | Caption = 'NodeForm' 8 | ClientHeight = 542 9 | ClientWidth = 773 10 | Font.Height = -13 11 | Font.Name = 'MS Sans Serif' 12 | OnCreate = FormCreate 13 | LCLVersion = '0.9.29' 14 | object Label8: TLabel 15 | Left = 12 16 | Height = 102 17 | Top = 424 18 | Width = 732 19 | Anchors = [akLeft, akRight, akBottom] 20 | Caption = 'Since Virtual Treeview uses Unicode for text display it is not easy to provide multiline support on Windows 9x/Me systems. Under Windows NT (4.0, 2000, XP) there is support by the operation system and so full word breaking is possible there. Otherwise you have to insert line breaks manually to have multiline captions. Of course there is no difference in handling between multiline and single line nodes (except for the vertical alignment of the latter).' 21 | ParentColor = False 22 | ShowAccelChar = False 23 | WordWrap = True 24 | end 25 | object Panel1: TPanel 26 | Left = 12 27 | Height = 393 28 | Top = 4 29 | Width = 732 30 | Anchors = [akTop, akLeft, akRight, akBottom] 31 | ClientHeight = 393 32 | ClientWidth = 732 33 | Color = clAppWorkspace 34 | ParentColor = False 35 | TabOrder = 0 36 | object MLTree: TVirtualStringTree 37 | Left = 96 38 | Height = 373 39 | Top = 8 40 | Width = 549 41 | Anchors = [akTop, akLeft, akRight, akBottom] 42 | ClipboardFormats.Strings = ( 43 | 'CSV' 44 | 'HTML Format' 45 | 'Plain text' 46 | 'Rich Text Format' 47 | 'Rich Text Format Without Objects' 48 | 'Unicode text' 49 | 'Virtual Tree Data' 50 | ) 51 | Colors.SelectionRectangleBlendColor = 10539203 52 | DefaultNodeHeight = 130 53 | DefaultText = 'Node' 54 | Header.AutoSizeIndex = 0 55 | Header.Columns = < 56 | item 57 | Position = 1 58 | Width = 495 59 | end 60 | item 61 | Position = 0 62 | end> 63 | Header.DefaultHeight = 17 64 | Header.Font.Height = -11 65 | Header.Font.Name = 'MS Sans Serif' 66 | Header.Options = [hoAutoResize, hoColumnResize, hoDrag] 67 | HintMode = hmTooltip 68 | LineMode = lmBands 69 | NodeAlignment = naFromTop 70 | NodeDataSize = 4 71 | ParentShowHint = False 72 | RootNodeCount = 30 73 | SelectionCurveRadius = 10 74 | ShowHint = True 75 | TabOrder = 0 76 | TextMargin = 5 77 | TreeOptions.AutoOptions = [toAutoDropExpand, toAutoScroll, toAutoScrollOnExpand, toAutoSpanColumns, toAutoTristateTracking, toAutoDeleteMovedNodes] 78 | TreeOptions.MiscOptions = [toEditable, toInitOnSave, toReportMode, toToggleOnDblClick, toWheelPanning] 79 | TreeOptions.PaintOptions = [toHideFocusRect, toShowDropmark, toShowTreeLines, toThemeAware, toUseBlendedImages] 80 | TreeOptions.SelectionOptions = [toMultiSelect] 81 | OnEditing = MLTreeEditing 82 | OnGetText = MLTreeGetText 83 | OnPaintText = MLTreePaintText 84 | OnInitNode = MLTreeInitNode 85 | OnMeasureItem = MLTreeMeasureItem 86 | OnStateChange = MLTreeStateChange 87 | end 88 | end 89 | object AutoAdjustCheckBox: TCheckBox 90 | Left = 12 91 | Height = 22 92 | Top = 399 93 | Width = 327 94 | Anchors = [akLeft, akBottom] 95 | Caption = 'Automatically adjust node height to node text.' 96 | OnClick = AutoAdjustCheckBoxClick 97 | TabOrder = 1 98 | end 99 | end 100 | -------------------------------------------------------------------------------- /Source/lclfunctions.inc: -------------------------------------------------------------------------------- 1 | //Used in DrawTextW 2 | { 3 | function GetTextAlign(DC: HDC): UINT; 4 | begin 5 | Logger.AddCheckPoint(lcDummyFunctions,'GetTextAlign'); 6 | Result:=TA_TOP or TA_LEFT; 7 | end; 8 | } 9 | //Used in DrawTextW, ShortenString, TVirtualTreeColumn.ComputeHeaderLayout, TVirtualTreeColumns.DrawButtonText, 10 | // TVTEdit.AutoAdjustSize, TCustomVirtualStringTree.PaintNormalText, TCustomVirtualStringTree.WMSetFont 11 | // TCustomVirtualStringTree.DoTextMeasuring 12 | { 13 | function GetTextExtentPoint32W(DC: HDC; Str: PWideChar; Count: Integer; var Size: TSize): Boolean; 14 | var 15 | TempStr: String; 16 | begin 17 | Logger.AddCheckPoint(lcDummyFunctions,'GetTextExtentPoint32W'); 18 | TempStr:=WideCharToString(Str); 19 | Result:=GetTextExtentPoint(DC, PChar(TempStr), Length(TempStr), Size); 20 | end; 21 | } 22 | //Used in DrawTextW 23 | { 24 | function ExtTextOutW(DC: HDC; X, Y: Integer; Options: LongInt; Rect: PRect; 25 | Str: PWideChar; Count: LongInt; Dx: PInteger): Boolean; 26 | var 27 | TempStr: String; 28 | begin 29 | Logger.AddCheckPoint(lcDummyFunctions,'ExtTextOutW'); 30 | TempStr:=WideCharToString(Str); 31 | Result:= ExtTextOut(DC, X, Y, Options, Rect, PChar(TempStr), Length(TempStr), Dx); 32 | end; 33 | } 34 | 35 | //Used in TVirtualTreeHintWindow.CalcHintRect, TVirtualTreeColumn.ComputeHeaderLayout 36 | // TBaseVirtualTree.CollectSelectedNodesRTL, TBaseVirtualTree.DetermineHitPositionRTL 37 | // TBaseVirtualTree.UpdateEditBounds, TBaseVirtualTree.GetDisplayRect, PaintTree, 38 | // TStringEditLink.PrepareEdit, TCustomVirtualStringTree.ComputeNodeHeight etc 39 | 40 | function MapWindowPoints(hWndFrom, hWndTo: HWND; var lpPoints; cPoints: UINT): Integer; 41 | var 42 | I:Integer; 43 | XOffset, YOffset: SmallInt; 44 | FromRect,ToRect: TRect; 45 | begin 46 | GetWindowRect(hWndFrom,FromRect); 47 | GetWindowRect(hWndTo,ToRect); 48 | XOffset:=(FromRect.Left - ToRect.Left); 49 | YOffset:=(FromRect.Top - ToRect.Top); 50 | for i:=0 to cPoints - 1 do 51 | begin 52 | { 53 | Mode Delphi does not support treating a pointer as a array 54 | if ObjFpc is used than this syntax is preferred 55 | PPoint(@lpPoints)[i].x:= XOffset + PPoint(@lpPoints)[i].x; 56 | PPoint(@lpPoints)[i].y:= YOffset + PPoint(@lpPoints)[i].y; 57 | } 58 | PPoint(@lpPoints+i)^.x:= XOffset + PPoint(@lpPoints+i)^.x; 59 | PPoint(@lpPoints+i)^.y:= YOffset + PPoint(@lpPoints+i)^.y; 60 | end; 61 | Result:=MakeLong(XOffset,YOffset); 62 | end; 63 | 64 | 65 | {$ifndef UseExternalDragManager} 66 | function RegisterDragDrop(hwnd:HWND; pDropTarget:IDropTarget):WINOLEAPI;stdcall;external 'ole32.dll' name 'RegisterDragDrop'; 67 | 68 | function RevokeDragDrop(hwnd:HWND):WINOLEAPI;stdcall;external 'ole32.dll' name 'RevokeDragDrop'; 69 | 70 | function DoDragDrop(pDataObj:IDataObject; pDropSource:IDropSource; dwOKEffects:DWORD; pdwEffect:LPDWORD):WINOLEAPI;stdcall;external 'ole32.dll' name 'DoDragDrop'; 71 | 72 | function OleInitialize(pvReserved:LPVOID):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleInitialize'; 73 | 74 | procedure OleUninitialize;stdcall;external 'ole32.dll' name 'OleUninitialize'; 75 | 76 | procedure ReleaseStgMedium(_para1:LPSTGMEDIUM);stdcall;external 'ole32.dll' name 'ReleaseStgMedium'; 77 | 78 | function OleSetClipboard(pDataObj:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleSetClipboard'; 79 | 80 | function OleGetClipboard(out ppDataObj:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleGetClipboard'; 81 | 82 | function OleFlushClipboard:WINOLEAPI;stdcall;external 'ole32.dll' name 'OleFlushClipboard'; 83 | 84 | function OleIsCurrentClipboard(pDataObj:IDataObject):WINOLEAPI;stdcall;external 'ole32.dll' name 'OleIsCurrentClipboard'; 85 | 86 | function CreateStreamOnHGlobal(hGlobal:HGLOBAL; fDeleteOnRelease:BOOL;out stm:IStream):WINOLEAPI;stdcall;external 'ole32.dll' name 'CreateStreamOnHGlobal'; 87 | 88 | {$endif} 89 | -------------------------------------------------------------------------------- /Demos/OLE/Res/Text.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\fbidis\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fswiss\fprq2\fcharset0 Arial;}{\f1\fswiss\fcharset0 Arial;}{\f2\froman\fprq2\fcharset128 MS PMincho;}{\f3\froman\fprq2\fcharset0 MS PMincho;}{\f4\fswiss\fprq2\fcharset178 Arial;}} 2 | {\colortbl ;\red0\green0\blue255;\red255\green0\blue0;} 3 | {\stylesheet{ Normal;}{\s1 heading 1;}{\s2 heading 2;}{\s3 heading 3;}{\s4 heading 4;}} 4 | \viewkind4\uc1\pard\ltrpar\s1\sb100\sa100\lang2057\kerning36\b\f0\fs24 Execution\lang1024 \fs20 \lang2057\fs48\par 5 | \pard\ltrpar\lang1031\kerning0\b0\f1\fs20{\pict\wmetafile8\picw1764\pich882\picwgoal8160\pichgoal15 6 | 010009000003310000000000070000000000050000000b0200000000050000000c02f401e80307 7 | 0000001b04f401e8030000000005000000140200000000050000001302f401e803050000001402 8 | f40100000500000013020000e803030000000000 9 | }\f0\fs24\par 10 | \cf1\lang2057\b\i\fs15 Send feedback\cf0\b0 to MSDN.\i0\fs24 \cf1\b\i\fs15 Look here\cf0\b0\par 11 | \pard\ltrpar\sa240\i0\fs24\line\cf2\i\fs15 This is preliminary documentation and subject to change.\cf0\i0\fs24 \line\cf1\b\i\fs15 Send feedback\b0 \cf0 on this topic.\i0\fs24 \par 12 | \pard\ltrpar\fs20 The common language runtime provides the infrastructure that enables managed\line execution to take place as well as a variety of services that can be used during \line execution. Before a method can be executed, it must be compiled to processor-specific \line code. Each method for which Microsoft intermediate language (MSIL) has been \line generated is JIT-compiled when it is called for the first time, then executed. The next \line time the method is executed, the existing JIT-compiled native code is executed. \line The process of JIT compiling and then executing the code is repeated until execution \line is complete. During execution, managed code receives services such as automatic \line memory management, security, interoperability with unmanaged code, cross-language \line debugging support, and enhanced deployment and versioning support.\fs24\par 13 | \pard\ltrpar\s4\sb100\sa100\b See Also\par 14 | \pard\ltrpar\cf1\b0\fs20 Managed Execution Process\cf0 | \cf1 Securing Your Application\cf0 \cf1 | Interoperating with \line Unmanaged Code\cf0 | \cf1 Deploying .NET Framework Applications\cf0\fs24\par 15 | \par 16 | \par 17 | \fs20 Excerpt from the book "Analects":\par 18 | \fs24\par 19 | \lang1031\f2\'81\'77\lang2057\'82\'50\lang1031\'81\'78\'8e\'71\'9e\'48\lang2057\'81\'46\lang1031\'81\'75\'9b\'7b\'8e\'a7\'8e\'9e\'8f\'4b\'94\'56\lang2057\'81\'43\lang1031\'95\'73\'96\'92\u35498?\'8c\'c1\lang2057\'81\'48\lang1031\'97\'4c\'95\'fc\'8e\'a9\'89\'93\'95\'fb\'98\'d2\lang2057\'81\'43\lang1031\'95\'73\'96\'92\'9e\'d9\'8c\'c1\lang2057\'81\'48\lang1031\'90\'6c\'95\'73\'92\'6d\'8e\'a7\'95\'73\'9c\'b0\lang2057\'81\'43\lang1031\'95\'73\'96\'92\'8c\'4e\'8e\'71\'8c\'c1\lang2057\'81\'48\lang1031\'81\'76\lang2057\f3\u8233?\u8233?\f2\par 20 | \lang1031\'81\'77\lang2057\'82\'51\lang1031\'81\'78\'97\'4c\'8e\'71\'9e\'48\lang2057\'81\'46\lang1031\'81\'75\'91\'b4\'88\'d7\'90\'6c\'96\'e7\'8d\'46\'92\'ed\lang2057\'81\'43\lang1031\'8e\'a7\'8d\'44\'94\'c6\'8f\'e3\'8e\'d2\lang2057\'81\'43\lang1031\'91\'4e\'e1\'e1\lang2057\'81\'47\lang1031\'95\'73\'8d\'44\'94\'c6\'8f\'e3\lang2057\'81\'43\lang1031\'8e\'a7\'8d\'44\'8d\'ec\'98\'aa\'8e\'d2\lang2057\'81\'43\lang1031\'96\'a2\'94\'56\'97\'4c\'96\'e7\'81\'42\'8c\'4e\'8e\'71\'96\'b1\'96\'7b\'81\'43\'96\'7b\'97\'a7\'8e\'a7\'93\'b9\'90\'b6\'81\'42\'8d\'46\'92\'ed\'96\'e7\'8e\'d2\'81\'43\'91\'b4\'88\'d7\'90\'6d\'94\'56\'96\'7b\'e4\'6f\'81\'49\'81\'76\f3\u8233?\u8233?\f2\par 21 | \'81\'77\'82\'52\'81\'78\'8e\'71\'9e\'48\'81\'46\'81\'75\'8d\'49\'8c\'be\'97\'df\'90\'46\'81\'43\'91\'4e\'e1\'e1\'90\'6d\'81\'49\'81\'76\f3\u8233?\u8233?\f0\fs20\par 22 | \par 23 | Arabic text "Wisdom is simple, but hard to find.":\par 24 | \f4\rtlch\fs32\'c7\'e1\'cd\'df\'e3\'c9 \'c8\'d3\'ed\'d8\'c9 \'e6 \'d3\'e5\'e1\'c9\'a1\'c7\'e1\'d5\'da\'c8 \'e5\'e6 \'c7\'ed\'cc\'c7\'cf\'e5\'c7\f0\ltrch\fs20\par 25 | } 26 | � -------------------------------------------------------------------------------- /Demos/vtbasic/VTreeData.pas: -------------------------------------------------------------------------------- 1 | {*********************************************************************** } 2 | { File: VTreeData.pas } 3 | { } 4 | { Purpose: } 5 | { source file to demonstrate how to get started with VT (5) } 6 | { <-- Basic node data class wrapped in a record allowing for --> } 7 | { } 8 | { Credits: } 9 | { taken + modified from example by Sven H. (h.sven@gmx.at) } 10 | { } 11 | { Module Record: } 12 | { } 13 | { Date AP Details } 14 | { -------- -- -------------------------------------- } 15 | { 05-Nov-2002 TC Created (tomc@gripsystems.com) } 16 | {**********************************************************************} 17 | unit VTreeData; 18 | 19 | {$mode delphi} 20 | {$H+} 21 | 22 | interface 23 | 24 | uses 25 | LCLIntf, Messages, SysUtils, Classes, Graphics, VirtualTrees; 26 | 27 | type 28 | // declare common node class 29 | TBasicNodeData = 30 | class 31 | protected 32 | FCaption : shortstring; 33 | FID : longint; 34 | FImageIndex : longint; 35 | FHasChanged : boolean; 36 | 37 | public 38 | constructor Create( const sCaption : shortstring; const iID, iIndex: longint); 39 | 40 | property Caption : shortstring read FCaption write FCaption; 41 | property ID : longint read FID write FID; 42 | property ImageIndex : longint read FImageIndex write FImageIndex; 43 | property HasChanged : boolean read FHasChanged write FHasChanged; 44 | end; 45 | 46 | // declare descendant node class 47 | TBasicNodeAddData = 48 | class(TBasicNodeData) 49 | protected 50 | FJobTitle : shortstring; 51 | FAdd1 : shortstring; 52 | FAdd2 : shortstring; 53 | FAdd3 : shortstring; 54 | 55 | public 56 | property Add1 : shortstring read FAdd1 write FAdd1; 57 | property Add2 : shortstring read FAdd2 write FAdd2; 58 | property Add3 : shortstring read FAdd3 write FAdd3; 59 | property JobTitle : shortstring read FJobTitle write FJobTitle; 60 | end; 61 | 62 | (*-------------------------------------------------------------------------------------- 63 | This is a very simple record we use to store data in the nodes. 64 | Since the application is responsible to manage all data including the node's caption 65 | this record can be considered as minimal requirement in all VT applications using this 66 | method (as opposed to a pre-defined record). Note that this also means individual nodes 67 | can store different descendants from TBasicNodeData 68 | --------------------------------------------------------------------------------------*) 69 | PBasicNodeRec= ^TBasicNodeRec; 70 | TBasicNodeRec = 71 | record 72 | bnd : TBasicNodeData; 73 | end; 74 | 75 | implementation 76 | 77 | constructor TBasicNodeData.Create( const sCaption : shortstring; const iID, iIndex: longint); 78 | begin 79 | inherited Create; 80 | FCaption := sCaption; 81 | FID := iID; 82 | FImageIndex := iIndex; 83 | end; 84 | 85 | end. 86 | -------------------------------------------------------------------------------- /Demos/Advanced/MultilineDemo.dfm: -------------------------------------------------------------------------------- 1 | object NodeForm: TNodeForm 2 | Left = 573 3 | Top = 332 4 | Width = 773 5 | Height = 542 6 | Caption = 'NodeForm' 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -13 11 | Font.Name = 'MS Sans Serif' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | Scaled = False 15 | OnCreate = FormCreate 16 | DesignSize = ( 17 | 757 18 | 504) 19 | PixelsPerInch = 96 20 | TextHeight = 16 21 | object Label8: TLabel 22 | Left = 12 23 | Top = 393 24 | Width = 716 25 | Height = 72 26 | Anchors = [akLeft, akRight, akBottom] 27 | AutoSize = False 28 | Caption = 29 | 'Since Virtual Treeview uses Unicode for text display it is not e' + 30 | 'asy to provide multiline support on Windows 9x/Me systems. Under' + 31 | ' Windows NT (4.0, 2000, XP) there is support by the operation sy' + 32 | 'stem and so full word breaking is possible there. Otherwise you ' + 33 | 'have to insert line breaks manually to have multiline captions. ' + 34 | 'Of course there is no difference in handling between multiline a' + 35 | 'nd single line nodes (except for the vertical alignment of the l' + 36 | 'atter).' 37 | ShowAccelChar = False 38 | WordWrap = True 39 | end 40 | object Panel1: TPanel 41 | Left = 12 42 | Top = 4 43 | Width = 716 44 | Height = 357 45 | Anchors = [akLeft, akTop, akRight, akBottom] 46 | Color = clAppWorkSpace 47 | ParentBackground = False 48 | TabOrder = 0 49 | DesignSize = ( 50 | 716 51 | 357) 52 | object MLTree: TVirtualStringTree 53 | Left = 96 54 | Top = 8 55 | Width = 533 56 | Height = 337 57 | Anchors = [akLeft, akTop, akRight, akBottom] 58 | BorderStyle = bsNone 59 | ClipboardFormats.Strings = ( 60 | 'CSV' 61 | 'HTML Format' 62 | 'Plain text' 63 | 'Rich Text Format' 64 | 'Rich Text Format Without Objects' 65 | 'Unicode text' 66 | 'Virtual Tree Data') 67 | Colors.SelectionRectangleBlendColor = 10539203 68 | DefaultNodeHeight = 130 69 | DragMode = dmAutomatic 70 | Header.AutoSizeIndex = 0 71 | Header.Font.Charset = DEFAULT_CHARSET 72 | Header.Font.Color = clWindowText 73 | Header.Font.Height = -11 74 | Header.Font.Name = 'MS Sans Serif' 75 | Header.Font.Style = [] 76 | Header.Options = [hoAutoResize, hoColumnResize, hoDrag] 77 | HintAnimation = hatNone 78 | HintMode = hmTooltip 79 | LineMode = lmBands 80 | NodeAlignment = naFromTop 81 | NodeDataSize = 4 82 | ParentShowHint = False 83 | RootNodeCount = 30 84 | SelectionCurveRadius = 10 85 | ShowHint = True 86 | TabOrder = 0 87 | TextMargin = 5 88 | TreeOptions.AutoOptions = [toAutoDropExpand, toAutoScroll, toAutoScrollOnExpand, toAutoSpanColumns, toAutoTristateTracking, toAutoDeleteMovedNodes] 89 | TreeOptions.MiscOptions = [toEditable, toInitOnSave, toReportMode, toToggleOnDblClick, toWheelPanning] 90 | TreeOptions.PaintOptions = [toHideFocusRect, toShowDropmark, toShowTreeLines, toThemeAware, toUseBlendedImages] 91 | TreeOptions.SelectionOptions = [toMultiSelect] 92 | OnEditing = MLTreeEditing 93 | OnPaintText = MLTreePaintText 94 | OnInitNode = MLTreeInitNode 95 | OnMeasureItem = MLTreeMeasureItem 96 | OnStateChange = MLTreeStateChange 97 | Columns = < 98 | item 99 | Position = 1 100 | Width = 466 101 | end 102 | item 103 | Position = 0 104 | end> 105 | end 106 | end 107 | object AutoAdjustCheckBox: TCheckBox 108 | Left = 12 109 | Top = 368 110 | Width = 329 111 | Height = 17 112 | Anchors = [akLeft, akBottom] 113 | Caption = 'Automatically adjust node height to node text.' 114 | TabOrder = 1 115 | OnClick = AutoAdjustCheckBoxClick 116 | end 117 | end 118 | --------------------------------------------------------------------------------