shapes in my TDBTree have incorrect coordinates

TeeTree VCL for Borland Delphi and C++ Builder.
HGG_User
Newbie
Newbie
Posts: 9
Joined: Fri Apr 04, 2003 5:00 am

shapes in my TDBTree have incorrect coordinates

Post by HGG_User » Thu Nov 05, 2015 10:04 am

I have a problem in my DBTree concerning node placement on the canvas when the tree loads. Some of the leaf nodes exhibit a strange behaviour where their canvas coordinates are set to the top of the tree. The nodes are always leaf nodes, and consistently the same nodes on each startup. They only exhibit this behaviour when hidden by an unexpanded parent node.
The erroneous nodes are hidden but capture onClickShape events that were meant for the root node (clicking root node after startup selects hidden node X instead of root node as expected. Expanding X's parent shows X as selected in the tree and updates X's coordinates to the node's correct position).

I load the tree from a database table specifying parent and text fields, and using an integer as primary key on the table.

I am fairly new to working with TeeTree; is there a checklist for ensuring the tree is correctly loaded and initialized?
I work in Delphi XE using TeeTree2

Yeray
Site Admin
Site Admin
Posts: 9613
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Re: shapes in my TDBTree have incorrect coordinates

Post by Yeray » Fri Nov 06, 2015 4:18 pm

Hello,

I'd suggest you to take a look at the TeeTree demo here:
TeeTreeDemo.zip
(310.71 KiB) Downloaded 3035 times
If you still find problems with it, please try to arrange a simple example project we can run as-is to reproduce the problem here.

Thanks in advance.
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

HGG_User
Newbie
Newbie
Posts: 9
Joined: Fri Apr 04, 2003 5:00 am

Re: shapes in my TDBTree have incorrect coordinates

Post by HGG_User » Mon Dec 07, 2015 2:05 pm

Hey there. I have succeeded in isolating the problem to a small example project.

It appears to happen if the Expanded property is set True on a child of an unexpanded note
How can I send you the sample project?

Yeray
Site Admin
Site Admin
Posts: 9613
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Re: shapes in my TDBTree have incorrect coordinates

Post by Yeray » Wed Dec 09, 2015 11:33 am

Hello,

You can attach it in here in the forum.
As an alternative, you can also post your files at our upload page.
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

HGG_User
Newbie
Newbie
Posts: 9
Joined: Fri Apr 04, 2003 5:00 am

Re: shapes in my TDBTree have incorrect coordinates

Post by HGG_User » Mon Dec 14, 2015 2:41 pm

I couldn't upload the file here, first it said maximum size 4MB exceeded. After fitting the project to this requirement it says maximum allowed size 512KB.. (You might want to have a look at that)

I've posted the files to your upload page by name bjarke moeholt, hopefully you can find them there.

In the project I've sent you, we use BDE database engine to establish a connection to and DBTree to visualize the contents of a database table. When setting the TTreeNodeShape.Expanded on nodes at level 1, we experience hidden shapes in unexpected places

Yeray
Site Admin
Site Admin
Posts: 9613
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Re: shapes in my TDBTree have incorrect coordinates

Post by Yeray » Tue Dec 15, 2015 8:47 am

Hello,
HGG_User wrote:I couldn't upload the file here, first it said maximum size 4MB exceeded. After fitting the project to this requirement it says maximum allowed size 512KB.. (You might want to have a look at that)
The maximum file size allowed in these forums is 512KB.
I'm not sure what could be the message you got at first. If you get it again, please take a screenshot of it.
HGG_User wrote:I've posted the files to your upload page by name bjarke moeholt, hopefully you can find them there.

In the project I've sent you, we use BDE database engine to establish a connection to and DBTree to visualize the contents of a database table. When setting the TTreeNodeShape.Expanded on nodes at level 1, we experience hidden shapes in unexpected places
I get an error when your application tries to Open the FQuery:
Project SelectMapT.exe raised exception class EDBEngineError with message 'Unknown user name or password.
unavailable database
Alias: DB2350953'.
So I'm not able to reproduce the problem here.
Could you please simplify the application so we can reproduce the problem here?
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

HGG_User
Newbie
Newbie
Posts: 9
Joined: Fri Apr 04, 2003 5:00 am

Re: shapes in my TDBTree have incorrect coordinates

Post by HGG_User » Tue Dec 15, 2015 2:54 pm

Since the problem is related to a DBTree component, a database engine to establish a connection to the database is needed. What database engine are you using?
The project assumes BDE is installed. It is available for free at http://cc.embarcadero.com/item/27573
The maximum file size allowed in these forums is 512KB.
I'm not sure what could be the message you got at first. If you get it again, please take a screenshot of it.
I've attached a screenshot to this post. Produced by attempting to upload a 5MB file:
Upload_Size_Error.png
Upload_Size_Error.png (90.52 KiB) Viewed 77770 times

Yeray
Site Admin
Site Admin
Posts: 9613
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Re: shapes in my TDBTree have incorrect coordinates

Post by Yeray » Wed Dec 16, 2015 6:08 pm

Hello,
HGG_User wrote:Since the problem is related to a DBTree component, a database engine to establish a connection to the database is needed.
From the initial post I understood the problem was on TeeTree behaviour once the data is loaded, not in the loading process. In that case, creating some shapes manually would be a simpler example, if still reproducing the problem.
HGG_User wrote:What database engine are you using?
The project assumes BDE is installed. It is available for free at http://cc.embarcadero.com/item/27573
The project uses DB and DBTables. I'm trying it with RAD XE (that comes with BDE) and the project builds fine. However I get the mentioned error at runtime, when the Query tried to connect.
Do you have access to a second machine to check if that test project runs on it?
I've attached a screenshot to this post. Produced by attempting to upload a 5MB file:
Thanks for the screenshot. We'll check that.
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

HGG_User
Newbie
Newbie
Posts: 9
Joined: Fri Apr 04, 2003 5:00 am

Re: shapes in my TDBTree have incorrect coordinates

Post by HGG_User » Tue Dec 22, 2015 9:18 am

The project uses DB and DBTables. I'm trying it with RAD XE (that comes with BDE) and the project builds fine. However I get the mentioned error at runtime, when the Query tried to connect.
Do you have access to a second machine to check if that test project runs on it?
ugh, this is turning into a database connectivity issue which is missing the point :/ We use Firebird 2.5 and BDE to connect to the database.
In case you are still having issues connecting, could you change the example to do what you normally do to connect databases in your end? Our focus should remain on the contents of the table and not the access tools

Yeray
Site Admin
Site Admin
Posts: 9613
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Re: shapes in my TDBTree have incorrect coordinates

Post by Yeray » Tue Dec 22, 2015 1:16 pm

Hello,

I'm still finding problems with datasource you provided.
Could you please arrange a simple example project manually populating the tree?
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

HGG_User
Newbie
Newbie
Posts: 9
Joined: Fri Apr 04, 2003 5:00 am

Re: shapes in my TDBTree have incorrect coordinates

Post by HGG_User » Tue Jan 05, 2016 1:01 pm

Ok, lets try again.. This time we're loading from xml, saving some space and working around database connectivity.
Attachments
TreeTest.zip
(217.06 KiB) Downloaded 2927 times

Yeray
Site Admin
Site Admin
Posts: 9613
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Re: shapes in my TDBTree have incorrect coordinates

Post by Yeray » Thu Jan 07, 2016 10:04 am

Hello,

I could run your project and I've seen a single node on the tree.
Deppending on where I click, the information below changes, but the tree isn't expanded:
workspace.png
workspace.png (5.12 KiB) Viewed 77651 times
map.png
map.png (5.41 KiB) Viewed 77651 times
ssv.png
ssv.png (5.61 KiB) Viewed 77649 times
I see you aren't assigning parents on the nodes.
Modifying your FormCreate to assign the parents according to the xml, I get this:
working.png
working.png (16.86 KiB) Viewed 77647 times

Code: Select all

procedure TForm12.FormCreate(Sender: TObject);
var
  NewShape      : TTreeNodeShape;
  ParentShape   : TTreeNodeShape;
  Workspace     : Integer;
  Parent        : Integer;
begin
  CDS.LoadFromFile( ExtractFilePath( Application.ExeName ) + 'Workspacetbl.xml' );
  DBTree1.DataSet := CDS as Tdataset;
  DBTree1.Refresh;
  while not CDS.EOF do begin                             //Loop through the Query
    Workspace:=CDS.FieldByName('Workspace').AsInteger;
    //this is where we provoke the error: Expand all level 1 nodes and unexpand the rest.
    NewShape:=FindNode(DBTree1,Workspace);
    NewShape.Expanded := NewShape.Level=1;

    Parent:=CDS.FieldByName('Parent').AsInteger;
    ParentShape:=FindNode(DBTree1,Parent);
    NewShape.Parent:=ParentShape;

    CDS.Next;
  end;
  //MessageDlg('Error preparations completed: On our end, we have an invisible node overlapping the root node approx at the text field'
  //+ ' click to verify this', mtInformation, [mbOk], 0);
end;
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

HGG_User
Newbie
Newbie
Posts: 9
Joined: Fri Apr 04, 2003 5:00 am

Re: shapes in my TDBTree have incorrect coordinates

Post by HGG_User » Fri Jan 08, 2016 11:14 am

I'm glad you are able to reproduce our problem. As you can see, the richedit mirrors the node properties of the last clicked node. When that changes it is because the Sender node of the onClick-events varies depending on where you click, despite the fact that, according to the GUI, we are clicking the same (and only) displayed node each time. It follows that some nodes are misplaced in the tree in the current state.

Expanding the tree corrects the subnode placement so that we are able to select the root node correctly. I'd guess its the redraw that corrects the incorrect node positions.
I see you aren't assigning parents on the nodes.
Modifying your FormCreate to assign the parents according to the xml, I get this:
You confuse me. We are assigning node parents design-time using the TDBTree ParentField property. Since the DBTree component should mirror the tree structure from a database table, I assume this is sufficient (it's not??)

Yeray
Site Admin
Site Admin
Posts: 9613
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Re: shapes in my TDBTree have incorrect coordinates

Post by Yeray » Mon Jan 11, 2016 4:10 pm

Hello,

Excuse me I misunderstood it.
I see if you expand level 0 then everything seems to work fine. Ie, expanding levels 0, 1 and 3:

Code: Select all

NewShape.Expanded := (NewShape.Level=3) or (NewShape.Level=1) or (NewShape.Level=0);
However, I can reproduce the problem if I don't expand level 0 but I do expand any other level.

Could you please confirm it?
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

HGG_User
Newbie
Newbie
Posts: 9
Joined: Fri Apr 04, 2003 5:00 am

Re: shapes in my TDBTree have incorrect coordinates

Post by HGG_User » Tue Jan 12, 2016 10:34 am

using

Code: Select all

NewShape.Expanded := (NewShape.Level=3) or (NewShape.Level=1) or (NewShape.Level=0);
also seems to work on my end

Post Reply