[DUG] Soft-Gems Virtual TreeView for a ListView

Conor Boyd Conor.Boyd at trimble.co.nz
Tue Nov 13 08:24:10 NZDT 2007


Quite possibly.
 
I can't remember which other properties I had to set (and there are a
lot of properties!), but IIRC I had a bit of trouble tracking down the
Columns one.
 
C.

________________________________

From: delphi-bounces at delphi.org.nz [mailto:delphi-bounces at delphi.org.nz]
On Behalf Of Kyley Harris
Sent: Monday, 12 November 2007 4:50 p.m.
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] Soft-Gems Virtual TreeView for a ListView


i think you mean, that you want to use the MiscOptions.toGridExtensions
which makes it behave more like a grid, rather than a tree. There is a
demo for this.


On Nov 12, 2007 4:42 PM, Ross Levis < ross at stationplaylist.com> wrote:


	Thanks for that.  I think I get it now.  If I define 5 columns
in the Columns property then the component will call the OnGetText event
5 times for each line (node).

	 

	I just have to work out what NodeData :=
Sender.GetNodeData(Node) does but there are examples for this so I
should be right, thanks.

	 

	Ross.

	 

	From: delphi-bounces at delphi.org.nz
[mailto:delphi-bounces at delphi.org.nz] On Behalf Of Conor Boyd
	Sent: Monday, 12 November 2007 4:06 p.m.
	To: NZ Borland Developers Group - Delphi List
	Subject: RE: [DUG] Soft-Gems Virtual TreeView for a ListView

	 

	The Header property of TVirtualStringTree has a Columns
property.  Specify your columns in there.

	 

	Then the OnGetText event has a Column parameter.

	 

	So you can do something like this in your OnGetText event
handler:

	 

	procedure TFileSelectionDialog.vstFilesGetText(Sender:
TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType:
TVSTTextType;
	  var CellText: WideString);
	var
	  NodeData : PTreeViewNodeData;
	begin
	  NodeData := Sender.GetNodeData(Node);

	 

	  CellText := '';

	 

	  case Column of
	    0:  CellText := ExtractFileName(NodeData.Filename);
	    1:  begin
	          if not NodeData.IsFolder then
	            CellText := DateTimeToStr(NodeData.FileDate);
	        end;
	  end;
	end;

	This is from when I wrote our own file selection dialog, since
the built-in Delphi one can't cope with more than a certain number of
files

	(if you're interested in the specifics, IIRC the number of files
the built-in one can cope with is limited to the number of fully
qualified paths which will fit into 32000 bytes or something - it's a
problem with the underlying WinAPI).

	 

	Hopefully that's enough to get you going.  Ask away if you've
got more questions.

	 

	HTH,

	 

	Conor

	 

	
________________________________


	From: delphi-bounces at delphi.org.nz
[mailto:delphi-bounces at delphi.org.nz] On Behalf Of Ross Levis
	 

	I think someone mention they were using Virtual TreeView
recently.  I heard that it can be made to look like a standard ListView,
so I'm investigating it to replace a TListView in an app of mine which
takes far too long to load up to 20,000 items.

	 

	I can't use TListView in virtual mode as it seems way too
difficult to enable sorting on columns which I need.  The Virtual
TreeView appears to handle sorting as easy as TListView does in
non-virtual mode.

	 

	I'm just having difficultly working out how the use the
component!  I realize I need to set up a record for each set of data but
I can't work out how to add columns of data.  The examples are mostly
involved with tree structures.

	 

	I'm hoping someone can quote for me a basic piece of code for
adding say 2 items with 2 or 3 columns.


	_______________________________________________
	NZ Borland Developers Group - Delphi mailing list
	Post: delphi at delphi.org.nz
	Admin: http://delphi.org.nz/mailman/listinfo/delphi
	Unsubscribe: send an email to delphi-request at delphi.org.nz with
Subject: unsubscribe
	




-- 
Kyley Harris
Harris Software
+64-21-671-821 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.adventureeducation.co.nz/pipermail/delphi/attachments/20071113/c5bf6a5a/attachment.html


More information about the Delphi mailing list