Recent

Author Topic: LazNodeEditor (visual node graph editor component )  (Read 1844 times)

avra

  • Hero Member
  • *****
  • Posts: 2592
    • Additional info
Re: LazNodeEditor (visual node graph editor component )
« Reply #15 on: May 21, 2026, 06:02:00 pm »
Very useful, thanks!  :D
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

Curt Carpenter

  • Hero Member
  • *****
  • Posts: 759
Re: LazNodeEditor (visual node graph editor component )
« Reply #16 on: May 22, 2026, 12:03:59 am »
This looks very useful and well done.  Could you point me to some literature that describes the uses of "node graphs" generally? 

CynicRus

  • Jr. Member
  • **
  • Posts: 80
Re: LazNodeEditor (visual node graph editor component )
« Reply #17 on: June 02, 2026, 07:42:08 pm »
Well, a lot has changed over the past week:
 
  • Implemented a fast and cross-platform OpenGL 3.3 canvas (10x performance gain over GDI on complex graphs).
  • Optimized rendering.
  • Conducted a major refactoring, making the codebase much easier to navigate.
  • Implemented spatial indexes to optimize the search for graph nodes and edges.
  • Implemented new line types and many other interesting features, such as auto-layout of the graph into a grid.
To enable OpenGL, use the editor's antialiasing property. Please note that the lazopenglcontext package is now required as a dependency.

simsee

  • Full Member
  • ***
  • Posts: 240
Re: LazNodeEditor (visual node graph editor component )
« Reply #18 on: June 02, 2026, 10:19:26 pm »
I cloned the repository to a local folder and tried to build with Lazarus 4.6, getting the following errors:

Code: Pascal  [Select][+][-]
  1. Compile Project, Target: C:\Users\simon\Desktop\LazNodeEditor-main\demo\NodeEdDemo.exe: Exit code 1, Errors: 18, Hints: 13
  2. genericdag.pas(256,11) Error: Identifier not found "EListError"
  3. genericdag.pas(262,11) Error: Identifier not found "EListError"
  4. genericdag.pas(296,11) Error: Identifier not found "EListError"
  5. genericdag.pas(459,11) Error: Identifier not found "EListError"
  6. genericdag.pas(463,11) Error: Identifier not found "EListError"
  7. genericdag.pas(485,11) Error: Identifier not found "EListError"
  8. genericdag.pas(492,11) Error: Identifier not found "EListError"
  9. genericdag.pas(542,21) Hint: Local variable "NewEdges" of a managed type does not seem to be initialized
  10. genericdag.pas(571,21) Hint: Local variable "OldToNew" of a managed type does not seem to be initialized
  11. genericdag.pas(596,21) Hint: Local variable "OldItems" of a managed type does not seem to be initialized
  12. genericdag.pas(597,21) Hint: Local variable "OldToNew" of a managed type does not seem to be initialized
  13. genericdag.pas(627,21) Hint: Local variable "OldToNew" of a managed type does not seem to be initialized
  14. genericdag.pas(628,21) Hint: Local variable "OldItems" of a managed type does not seem to be initialized
  15. genericdag.pas(644,11) Error: Identifier not found "EListError"
  16. genericdag.pas(687,11) Error: Identifier not found "EListError"
  17. genericdag.pas(691,16) Hint: Local variable "Idx" of a managed type does not seem to be initialized
  18. genericdag.pas(692,21) Hint: Local variable "NewItems" of a managed type does not seem to be initialized
  19. genericdag.pas(693,21) Hint: Local variable "OldToNew" of a managed type does not seem to be initialized
  20. genericdag.pas(730,11) Error: Identifier not found "EListError"
  21. genericdag.pas(740,11) Error: Identifier not found "EListError"
  22. genericdag.pas(742,11) Error: Identifier not found "EListError"
  23. genericdag.pas(751,11) Error: Identifier not found "EListError"
  24. genericdag.pas(755,11) Error: Identifier not found "EListError"
  25. genericdag.pas(806,18) Hint: Local variable "Stack" of a managed type does not seem to be initialized
  26. genericdag.pas(807,20) Hint: Local variable "Visited" of a managed type does not seem to be initialized
  27. genericdag.pas(866,11) Error: Identifier not found "EListError"
  28. genericdag.pas(875,11) Error: Identifier not found "EListError"
  29. genericdag.pas(877,11) Error: Identifier not found "EListError"
  30. genericdag.pas(902,20) Hint: Local variable "InDeg" of a managed type does not seem to be initialized
  31. genericdag.pas(903,20) Hint: Local variable "Queue" of a managed type does not seem to be initialized
  32. genericdag.pas(940,13) Error: Identifier not found "EListError"
  33.  

wp

  • Hero Member
  • *****
  • Posts: 13583
Re: LazNodeEditor (visual node graph editor component )
« Reply #19 on: June 02, 2026, 11:39:50 pm »
Switched to my IDE based on Laz/main + FPC/main and found that most of these errors are gone, but 'LazNodeEditor.GraphCommands.pas(1319,11) Error: Identifier idents no member "LoadFromJSONText" ' is still there. CynicRus, did you forget to commit and/or push your most recent changes?

OpenGLContext and the associated units gl*contgext are missing as well (or you must add a requirement for LazOpenGLControl).
« Last Edit: June 02, 2026, 11:49:13 pm by wp »

CynicRus

  • Jr. Member
  • **
  • Posts: 80
Re: LazNodeEditor (visual node graph editor component )
« Reply #20 on: June 03, 2026, 12:03:43 am »
Switched to my IDE based on Laz/main + FPC/main and found that most of these errors are gone, but 'LazNodeEditor.GraphCommands.pas(1319,11) Error: Identifier idents no member "LoadFromJSONText" ' is still there. CynicRus, did you forget to commit and/or push your most recent changes?

OpenGLContext and the associated units gl*contgext are missing as well (or you must add a requirement for LazOpenGLControl).
Oops, sorry, I missed one file when uploading. I've fixed it.

CynicRus

  • Jr. Member
  • **
  • Posts: 80
Re: LazNodeEditor (visual node graph editor component )
« Reply #21 on: June 03, 2026, 12:11:23 am »
I cloned the repository to a local folder and tried to build with Lazarus 4.6, getting the following errors:

Code: Pascal  [Select][+][-]
  1. Compile Project, Target: C:\Users\simon\Desktop\LazNodeEditor-main\demo\NodeEdDemo.exe: Exit code 1, Errors: 18, Hints: 13
  2. genericdag.pas(256,11) Error: Identifier not found "EListError"
  3. genericdag.pas(262,11) Error: Identifier not found "EListError"
  4. genericdag.pas(296,11) Error: Identifier not found "EListError"
  5. genericdag.pas(459,11) Error: Identifier not found "EListError"
  6. genericdag.pas(463,11) Error: Identifier not found "EListError"
  7. genericdag.pas(485,11) Error: Identifier not found "EListError"
  8. genericdag.pas(492,11) Error: Identifier not found "EListError"
  9. genericdag.pas(542,21) Hint: Local variable "NewEdges" of a managed type does not seem to be initialized
  10. genericdag.pas(571,21) Hint: Local variable "OldToNew" of a managed type does not seem to be initialized
  11. genericdag.pas(596,21) Hint: Local variable "OldItems" of a managed type does not seem to be initialized
  12. genericdag.pas(597,21) Hint: Local variable "OldToNew" of a managed type does not seem to be initialized
  13. genericdag.pas(627,21) Hint: Local variable "OldToNew" of a managed type does not seem to be initialized
  14. genericdag.pas(628,21) Hint: Local variable "OldItems" of a managed type does not seem to be initialized
  15. genericdag.pas(644,11) Error: Identifier not found "EListError"
  16. genericdag.pas(687,11) Error: Identifier not found "EListError"
  17. genericdag.pas(691,16) Hint: Local variable "Idx" of a managed type does not seem to be initialized
  18. genericdag.pas(692,21) Hint: Local variable "NewItems" of a managed type does not seem to be initialized
  19. genericdag.pas(693,21) Hint: Local variable "OldToNew" of a managed type does not seem to be initialized
  20. genericdag.pas(730,11) Error: Identifier not found "EListError"
  21. genericdag.pas(740,11) Error: Identifier not found "EListError"
  22. genericdag.pas(742,11) Error: Identifier not found "EListError"
  23. genericdag.pas(751,11) Error: Identifier not found "EListError"
  24. genericdag.pas(755,11) Error: Identifier not found "EListError"
  25. genericdag.pas(806,18) Hint: Local variable "Stack" of a managed type does not seem to be initialized
  26. genericdag.pas(807,20) Hint: Local variable "Visited" of a managed type does not seem to be initialized
  27. genericdag.pas(866,11) Error: Identifier not found "EListError"
  28. genericdag.pas(875,11) Error: Identifier not found "EListError"
  29. genericdag.pas(877,11) Error: Identifier not found "EListError"
  30. genericdag.pas(902,20) Hint: Local variable "InDeg" of a managed type does not seem to be initialized
  31. genericdag.pas(903,20) Hint: Local variable "Queue" of a managed type does not seem to be initialized
  32. genericdag.pas(940,13) Error: Identifier not found "EListError"
  33.  

EListError = Class(Exception); - It should be in sysutils.

simsee

  • Full Member
  • ***
  • Posts: 240
Re: LazNodeEditor (visual node graph editor component )
« Reply #22 on: June 03, 2026, 04:43:49 pm »
With the current version, the compiler now does not find the PointF and RectF functions in the LazNodeEditor.LinkRouter unit.

Dzandaa

  • Hero Member
  • *****
  • Posts: 548
  • From C# to Lazarus
Re: LazNodeEditor (visual node graph editor component )
« Reply #23 on: June 03, 2026, 06:26:53 pm »
Hi,
Quote
With the current version, the compiler now does not find the PointF and RectF functions in the LazNodeEditor.LinkRouter unit.

Same for me with version 3.8 fpc 3.2.2

B->
Regards,
Dzandaa

wp

  • Hero Member
  • *****
  • Posts: 13583
Re: LazNodeEditor (visual node graph editor component )
« Reply #24 on: June 03, 2026, 06:44:24 pm »
You need FPC/main to compile this project... IMHO it is not a good idea to write an application based on FPC/main because most users will be excluded from the work.

CynicRus

  • Jr. Member
  • **
  • Posts: 80
Re: LazNodeEditor (visual node graph editor component )
« Reply #25 on: June 03, 2026, 10:36:58 pm »
With the current version, the compiler now does not find the PointF and RectF functions in the LazNodeEditor.LinkRouter unit.
Hi,
Quote
With the current version, the compiler now does not find the PointF and RectF functions in the LazNodeEditor.LinkRouter unit.

Same for me with version 3.8 fpc 3.2.2

B->
Thank you, fixed now for the stable compiler.

wp

  • Hero Member
  • *****
  • Posts: 13583
Re: LazNodeEditor (visual node graph editor component )
« Reply #26 on: June 03, 2026, 11:17:56 pm »
Did you test compilation with FPC 3.2.2? There are still lots of issues which the compiler does not accept.

simsee

  • Full Member
  • ***
  • Posts: 240
Re: LazNodeEditor (visual node graph editor component )
« Reply #27 on: June 03, 2026, 11:20:14 pm »
Unfortunately I'm encountering a couple of problems:

Code: Pascal  [Select][+][-]
  1. LazNodeEditor.GraphCommands.pas(130,15) Error: Identifier not found "TStringList"

Adding the Classes unit to fix the problem causes another error:

Code: Pascal  [Select][+][-]
  1. LazNodeEditor.SpatialIndex.pas(122,13) Error: Identifier not found "RectF"

CynicRus

  • Jr. Member
  • **
  • Posts: 80
Re: LazNodeEditor (visual node graph editor component )
« Reply #28 on: June 03, 2026, 11:37:28 pm »
Did you test compilation with FPC 3.2.2? There are still lots of issues which the compiler does not accept.
Yep. Just commited fixes via the web version of GitHub by copy/paste)
« Last Edit: June 03, 2026, 11:42:40 pm by CynicRus »

CynicRus

  • Jr. Member
  • **
  • Posts: 80
Re: LazNodeEditor (visual node graph editor component )
« Reply #29 on: June 03, 2026, 11:41:02 pm »
Unfortunately I'm encountering a couple of problems:

Code: Pascal  [Select][+][-]
  1. LazNodeEditor.GraphCommands.pas(130,15) Error: Identifier not found "TStringList"

Adding the Classes unit to fix the problem causes another error:

Code: Pascal  [Select][+][-]
  1. LazNodeEditor.SpatialIndex.pas(122,13) Error: Identifier not found "RectF"

Fixed, ty. RectF function for the stable compiler in the LazNodeEditor.Types.pas

 

TinyPortal © 2005-2018