Please read, including the below Important Debugging Tips guaranteed to help.
Thank you very much for reading this page. Gigasoft is dedicated to producing high quality software and maintaining a professional level of customer orientation. We greatly appreciate customer comments and suggestions and will utilize customer feedback in continually improving and expanding the products we produce. We strive to be the most customer oriented and accessible charting vendor in the market. If only evaluating, do not be shy, we love to hear feedback from evaluations.
ProEssentials support many software development environments and platforms. When requesting technical assistance, please start by providing the following information.
1) What version of ProEssentials, v8, v9, v10?
Our formal version number can be found by looking at file-properties / version-info for the the main DLLs below in system 32 or most likely syswow64 on 64 bit systems.
The version 10 DLLs are as follows.
PEGRP32H.DLL
|
ProEssentials 10 32 bit
|
PEGRP64H.DLL
|
ProEssentials 10 64 bit
|
The version 9 DLLs are as follows.
PEGRP32G.DLL
|
ProEssentials 9 Pro
|
PEGRPSG.DLL
|
ProEssentials 9 Standard
|
PEGRP64G.DLL
|
ProEssentials 9 Pro 64 bit
|
PEGRP6SG.DLL
|
ProEssentials 9 Standard 64 bit
|
The version 8 DLLs are as follows.
PEGRP32F.DLL
|
ProEssentials 8 Pro
|
PEGRPFS.DLL
|
ProEssentials 8 Standard
|
PEGRPFL.DLL
|
ProEssentials 9 Lite
|
The version 7 DLLs are as follows.
PEGRP32E.DLL
|
ProEssentials 7 Pro
|
PEGRPDE.DLL
|
ProEssentials 7 Standard
|
PEGRPEL.DLL
|
ProEssentials 7 Lite
|
2) What interfaces/objects of ProEssentials are you implementing?
Interfaces
|
WPF
WinForm
WebForm
OCX
VCL
DLL
|
Objects
|
Pego: Graph
Pesgo:Scientific Graph
Pepso: Polar / Smith / Rose
Pepco: Pie Chart
Pe3do: 3D Graph
|
3) What product and language are you using for development?
VS2022, VS2019, VS2015, VB, C#, Delphi, Builder, Office/Access, or other ?
4) What operating system?
Win11, Win10, Windows Server ?
64 bit / 32bit ?
5) What properties, methods, or events are you using and general nature of problem?
Keep it brief but descriptive. Very small amounts of code can be included if applicable. PNGs (please no un-compressed BMPs) screen-shots can help in most scenarios. In some cases we ask for a very simple project to reproduce the problem. If a small reproduction can not be created, last resort is to send us a SaveObjectToFile/PEsavetofile binary file which we can instantiate and step through. Test this binary file before sending it by creating a simple app to just call LoadObjectFromFile/PEloadfromfile.
Gigasoft provides several support alternatives:
1) Free Phone Support. It's best to first use our website contact form to request a callback or give us a note you will be calling.
Phone: (817) 431-8470
2) Free E-Mail support, Send your questions to ...
E-Mail: support@gigasoft.com
Important, yes, good to know TIPs and Debugging Strategies:
Please keep in mind that requesting technical support is free to our customers but is actually quite expensive for Gigasoft. For this reason, we ask that you make sure your problem is truly related to ProEssentials. There are several programming practices that will potentially help you determine the cause of your problem. These practices are obvious but often skipped:
-
The built-in "text" export dialog is a very useful tool for the developer as well as the end-user. If you are having trouble programmatically passing data into the object, you can use this export dialog to export the data into Notepad/Excel to verify what is currently inside the ProEssentials object. It's best to export in default List Style. This will usually shed light on the problem and allow you to adjust your logic to properly pass the data into ProEssentials. If you are having trouble passing data, please use this tip before calling for technical support. Our support staff will likely ask you to try this approach to resolve the problem.
-
Take baby steps, do not try to write complicated/optimized code from scratch. Initially write for clarity and later look for global or algorithmic optimizations. Also, start by first getting a ProEssentials control on the destination form/window. Next, pass data into the graph. Finally, set various other properties to control aesthetics. Place initialization code in an event that is related to creating or showing a window, examples are FormLoad, OnShow, OnCreate, OnInitDialog, and SetupWindow. Do not put initialization code in a button-click event.
-
Do not set break points within your initialization code. This always causes the ProEssentials control to receive a WM_PAINT event which causes reinitialization prematurely. Since only a partial set of properties were likely set, this can confuse the ProEssentials object because so many properties are inter-dependent. It's best to send debug information to the debug terminal with Debug.Write/Print for Visual Basic users or C/C++ developers can use TRACE. To reduce the potential for such problems, isolate or group your data-transfer code from the rest of your object initialization code. Usually its the data-transfer code which causes most of the problems.
-
Keep ProEssentials related code grouped together. ProEssentials is not so complex or inefficient that you should need to place various initialization code in different forms or modules. Top Down programming, and potentially resetting some properties may be old-school but when it comes to debugging and/or maintenance issues, you'll find it easier to work with.
-
Step through your code. At least 25% of our technical support requests can be prevented if you step through your code before requesting our help. While stepping, inspect your code flow as well as important variables.
-
Use assertions/error trapping so your functions do not allow undefined conditions.
- If calling DLL calls such as PEvset, check that the variables pointed to are the correct type, double vs float.
-
If possible, we highly recommend you create a small application that demonstrates your problem using random data. Many times this will help you solve your problem. If not, you can send your small app (zipped) to our email address.
- If heavily using GraphAnnotations, which is commonly seen in our support requests, at the bottom of your initialization, dump the GraphAnnotation X, Y, Type settings as needed (Trace/debug.print to the output window) to see the structure of annotations your code is producing. For complex implementations, this should always be a done as a way to make sure the annotation structure is as expected and not introducing un-needed content. When complete with your code, comment out the dump section.
- If you see un-expected results for a line chart, or any chart, and using many NullDataValues within the data set, set Filter2D to disable filtering to see this affects results.
Kudos to all reading this page.
|