MSVisio like panel lazarus / 39-Graphics ---------------------------------------------------------------------- Mark20 · 2024-01-06 12:04 Hello and happy new year everyone! I would need advice on techniques or libraries to manage a virtual "synoptic panel". Many years ago I used a plugin to show Visio files, where from code I could change the color, appearance, blinking of any object within my Visio file. It seems to me that today it is no longer possible and I would like to use something that does not depend on MS, always with vector graphics (SVG?)... Thank you ---------------------------------------------------------------------- jamie · 2024-01-06 16:17 This might be of some interest to you. https://wiki.lazarus.freepascal.org/fpvectorial ---------------------------------------------------------------------- Mark20 · 2024-01-06 16:57 Thank you, interesting... I am looking to something that let me Modify at runtime the shapes already present in a SVG file. For example the fill-color of visibility. ---------------------------------------------------------------------- jamie · 2024-01-06 18:00 The TShape component has a Onpaint event you can use to draw the surface each time it needs to be updated. Also, the trunk and I don't know why it never made it to the recent release has an Event to define a Polygone and it has a narrowing of when you click the mouse so that you can get an event when it actually is inside the shape, not within its borders of the control.   With that, I was hoping they would expose the Masking bitmap at will so that I could build a table of points where they intersect at different angles so I could draw connecting points from one shape to another. All of this of course can be done via making your own control, but it would be nice if something as simple as the Tshape could be a little more versatile. Of course, it wouldn't make that part of the code compatible to Delphi. ---------------------------------------------------------------------- Mark20 · 2024-01-06 18:45 Jamie, do you know if possible a partial repaint instead of the whole image ? I'll need modify many particular objects, often, such as for blinking alarms... ---------------------------------------------------------------------- jamie · 2024-01-07 20:33 If you are looking for something like a SCADA (HMI) interface, I would suggest that maybe you can look into using a TImageList whereas all of the images you use are already made, simply draw the image of choice on the control at paint time.  It's much faster to paint an image that is already in memory than keep redrawing it, unless you want each control to have its own bitmap storage, that would then chew up resources if you had many of these controls.  Put in multiple state properties that stores an INDEX into an image list. The ImageList too can also be logged via a property of the control. SO one imagelist in your program can be the source of all your icon images. ---------------------------------------------------------------------- Mark20 · 2024-01-08 21:21 Yes, was looking exactly for scada HMI. The advice of use TImageList to work always in memory is very interesting. Thank you ! ---------------------------------------------------------------------- jamie · 2024-01-08 22:42 Just in case you haven't looked already, there is a Pascal SCADA in the online packages you can try out.