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

xyChartDemo - GDIPLUS XY graphing demonstration

Unread 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
Attachments
Screen image of plot and property editor.
Screen image of plot and property editor.
xyChart Plot and Properties compressed 50pct.jpg (118.26 KiB) Viewed 39981 times
Chart_PACK.zip
Chart_PACK.zip only
(42.84 KiB) Downloaded 1225 times
Paul Cerkez
VIP Member
Posts: 106
Joined: 6 Mar 2000 0:01

Unread 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: 453
Joined: 5 Nov 2000 0:01

Re: xyChartDemo - GDIPLUS XY graphing demonstration

Unread 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

Unread 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: 453
Joined: 5 Nov 2000 0:01

Re: xyChartDemo - GDIPLUS XY graphing demonstration

Unread 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: 453
Joined: 5 Nov 2000 0:01

Re: xyChartDemo - GDIPLUS XY graphing demonstration

Unread post by Harrison Pratt »

Attached is a trivial upgrade of xyChartDemo for Vip10x.
There are no changes other than tidying it up for 10x.
Attachments
xyChartDemo.zip
(242.44 KiB) Downloaded 530 times
Post Reply