Share Tips, Code Samples, etc. with the Visual Prolog community.
Harrison Pratt
VIP Member
Posts: 459
Joined: 5 Nov 2000 0:01

xyChartDemo - GDIPLUS XY graphing demonstration

Post 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: https://drive.google.com/open?id=0B9B9r ... zU2bkdveHM

PDF Documentation: https://drive.google.com/open?id=0B9B9r ... HFzU01NNTQ
You do not have the required permissions to view the files attached to this post.
Paul Cerkez
VIP Member
Posts: 108
Joined: 6 Mar 2000 0:01

Post by Paul Cerkez »

Harrison,
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.
AI Rules!
P.
Harrison Pratt
VIP Member
Posts: 459
Joined: 5 Nov 2000 0:01

Re: xyChartDemo - GDIPLUS XY graphing demonstration

Post by Harrison Pratt »

UPGRADE FOR Vip8:
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 Chart.pro), 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: https://drive.google.com/open?id=1tFBFH ... 6MOjJlkHO6

Right-click the link and Save As ... to download the project Zip file.
choibakk
Active Member
Posts: 35
Joined: 5 Sep 2019 19:30

Re: xyChartDemo - GDIPLUS XY graphing demonstration

Post 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 chartDecoration.pro 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 "fontfamily.pro" #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!
Harrison Pratt
VIP Member
Posts: 459
Joined: 5 Nov 2000 0:01

Re: xyChartDemo - GDIPLUS XY graphing demonstration

Post 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.

Harrison
Harrison Pratt
VIP Member
Posts: 459
Joined: 5 Nov 2000 0:01

Re: xyChartDemo - GDIPLUS XY graphing demonstration

Post by Harrison Pratt »

Attached is a trivial upgrade of xyChartDemo for Vip10x.
There are no changes other than tidying it up for 10x.
You do not have the required permissions to view the files attached to this post.