Egad! When you've used something for so long in a particular way, isn't it just SO annoying when you miss the obvious.
Thanks Neven and Rohit. I feel like such an idiot. Trevor ----- Original Message ----- From: "Neven MacEwan" <[EMAIL PROTECTED]> To: "Trevor Jones" <[EMAIL PROTECTED]>; "NZ Borland Developers Group - Delphi List" <[EMAIL PROTECTED]> Sent: Monday, June 14, 2004 9:31 PM Subject: Re: [DUG] Record inheritance > Trevor > > I think if you look at the examples you'll see a version using > a pointer to an object, all you do is free it on the nodefree event (IIRC) > > Neven MacEwan (B.E. E&E) > Ph. 09 621 001 Mob. 0274 749062 > > > > Trevor Jones wrote: > > >Yeah, that would make sense, but the virtual tree only allocates as much > >memory as is required by the GetNodeDatasize method, and that chunk is > >inherently a record. Its a weirdness of the Virtual tree. > > > > > >----- Original Message ----- > >From: "Neven MacEwan" <[EMAIL PROTECTED]> > >To: "Trevor Jones" <[EMAIL PROTECTED]>; "NZ Borland Developers Group - > >Delphi List" <[EMAIL PROTECTED]> > >Sent: Monday, June 14, 2004 6:56 PM > >Subject: Re: [DUG] Record inheritance > > > > > > > > > >>Trevor > >> > >>Why don't you use a TObject descendant and > >>point the VirtualTree node at that (rather than a record) > >> > >>Neven MacEwan (B.E. E&E) > >>Ph. 09 621 001 Mob. 0274 749062 > >> > >> > >> > >>Trevor Jones wrote: > >> > >> > >> > >>>I think I should be able to do this without asking for help, but > >>> > >>> > >sometimes > > > > > >>>the old brain just gets stuck. > >>> > >>>I'm using a virtual tree to display and edit some data. > >>> > >>>Each node has some data associated with it, and I use a record and a > >>> > >>> > >pointer > > > > > >>>to that record to get the data. > >>> > >>>If you are used to using Virtual Trees, you will know what I mean. > >>> > >>>I've subclassed the form, overridden then GetNodeDataSize method, but > >>> > >>> > >since > > > > > >>>the Tree.GetNodeData method always refers to a pointer to a record, I'm a > >>>little bit stumped on how to add some extra fields to that record. > >>> > >>>e.g. > >>> TOriginalNodeData = record > >>> id : integer; > >>> value : double; > >>> end; > >>> pOriginalNodeData = ^TOriginalNodeData; > >>> > >>>Then with my subclass, the node data looks like this: > >>> > >>> TNewNodeData = record > >>> id : integer; > >>> value : double; > >>> valueInherited : boolean; > >>> end; > >>> > >>>But this means that I have to re-declare all of the old fields in my new > >>>record, and if the original record changes, things are going to go BANG. > >>> > >>>I can declare > >>> > >>> TNewNodeData = record > >>> OldStuff : TOriginalNodeData; > >>> valueInherited : boolean; > >>> end; > >>> > >>>and this works, but means I have to dereference OldStuff all of the time. > >>> > >>>I'm sure that variant records should allow me to do what I want, but I'm > >>>really stuck on how to declare it. > >>> > >>>Any ideas? > >>> > >>>Trevor > >>> > >>> > >>>_______________________________________________ > >>>Delphi mailing list > >>>[EMAIL PROTECTED] > >>>http://ns3.123.co.nz/mailman/listinfo/delphi > >>> > >>> > >>> > >>> > >>> > >>> > >>_______________________________________________ > >>Delphi mailing list > >>[EMAIL PROTECTED] > >>http://ns3.123.co.nz/mailman/listinfo/delphi > >> > >> > >> > >> > > > > > >_______________________________________________ > >Delphi mailing list > >[EMAIL PROTECTED] > >http://ns3.123.co.nz/mailman/listinfo/delphi > > > > > > > > > _______________________________________________ > Delphi mailing list > [EMAIL PROTECTED] > http://ns3.123.co.nz/mailman/listinfo/delphi > _______________________________________________ Delphi mailing list [EMAIL PROTECTED] http://ns3.123.co.nz/mailman/listinfo/delphi
