Page 1 of 1

xyChartDemo - GDIPLUS XY graphing demonstration

Posted: 27 Jul 2017 22:01
by Harrison Pratt
I decided it was time to learn to use GDIPLUS by writing a useful demonstration application.

This demo application (xyChartDemo) uses GDIPLUS to draw an XY graph with multiple data series and dynamically modifiable display properties in a resizeable window. Once I worked through translating MSDN C# code and hints to VIP, and evolved a workable code model, it became relatively smooth going.

The working code is in the Chart_PACK package and should be able to be added to a new or existing package without complication. I plan to add more capability beyond simple XY graphing.

I expect I'll get suggestions for improvement on this from the VIP community -- they are welcome!

Feel free to use and modify Chart_PACK as you wish.

You can download the full ZIPped project here: ... zU2bkdveHM

PDF Documentation: ... HFzU01NNTQ

Posted: 28 Jul 2017 11:47
by Paul Cerkez
Great job. I've been wanting to do more work in GDIPlus inside of VIP since I presented my paper at the VIP ALC back in 2006. I've done some minor tinkering but too many issues/demands in my day job to devote much time to it unfortunately. Glad to see this.

Re: xyChartDemo - GDIPLUS XY graphing demonstration

Posted: 9 Nov 2018 20:38
by Harrison Pratt
The original version of xyChartDemo was developed with Vip7 and is not plug-and-play compatible with Vip8 due to some minor changes in the version 8 PFC Graphics class. I have made the necessary changes (mostly in, added a few trivial features (e.g., save and recall named graph display properties) and improved the documentation. The Chart_PACK package can be used directly in your applications.

The download link to the new Zip file for xyChartDemo_Vip8 is here: ... 6MOjJlkHO6

Right-click the link and Save As ... to download the project Zip file.

Re: xyChartDemo - GDIPLUS XY graphing demonstration

Posted: 21 Nov 2019 3:15
by choibakk
This is great! I have the demo working on V9. However, I needed to change the following:

Code: Select all

    %fNameLABEL = "Lucida Sans". % used for axis labels     %fNameVALUE = "Lucida Sans". % used for axis values at tics & grids     fNameLABEL = "Arial". % used for axis labels     fNameVALUE = "Arial". % used for axis values at tics & grids
Because in at line #243 crashes if you do not have the named font installed at the following call.

Code: Select all

    fontValues() = FONT :-         FF = fontFamily::createFromName(fNameVALUE), % THIS CALL CRASHES IF THE FONT IS NOT INSTALLED         FS = 0,         FONT = font::createFromFontFamily(FF, 8, FS, unitPixel).
The exception is thrown in "" #20.

Code: Select all

clauses     createFromName(Name, Collection) :-         checkStatus(gdiplus_native::gdipCreateFontFamilyFromName(Name, Collection:nativeFontCollection, NativeFontFamily)),         newNative(NativeFontFamily).
In the "gdiplus_native::gdipCreateFontFamilyFromName" call. I'm not sure why I don't have "Lucida Sans" on my system, but it is a clean Windows 8 virtual machine.

Anyways, It works when I make sure the font is valid.

Thanks again, and Cheers!

Re: xyChartDemo - GDIPLUS XY graphing demonstration

Posted: 24 Nov 2019 20:25
by Harrison Pratt
Hi Choibakk!

I'm glad you found the demo helpful. :D

Lucida Sans is installed with Win10 -- I didn't think of setting up the demo for older versions of windows. I'm glad you could fix the problem.

My code could be cleaned up and some day I may get around to that ... feel free to 'tune it up' and re-post it if you want. It won't hurt my feelings.


Re: xyChartDemo - GDIPLUS XY graphing demonstration

Posted: 19 Mar 2022 14:19
by Harrison Pratt
Attached is a trivial upgrade of xyChartDemo for Vip10x.
There are no changes other than tidying it up for 10x.