The AxGC (v. 2.7) ActiveX Control.

  1. Short description.
  2. Whats new.
  3. Programming. Description methods and propeties of AxGC.
  4. Scripting engine.
  5. Run-time Requirements.
  6. Redistributing AxGC as a part of your software on another client computers.
  7. Run time licensing.
  8. Inserting a AxGC Control into a Control Container Application ( VC 6.0).
  9. License.
  10. Registration.
  11. Authors.

1. Short description.


AxGC (v 2.7) ActiveX Control is interactive 2D graphical tool for developers engineering, scientific and mathemathical software. It features dynamic scaling graphics, simple 2D-animation, built-in inner fast JScript and VBScript interpreter also saving currents graphics into JPEG files. AxGC (v 2.7) ActiveX Control supports most popular development platforms including VB, VC++, Delphi, VB.NET. Examples in VC and  JScript  help you to get started.

2.Whats new.


 We add new methods, properties and events: AxisColor, ViewAxis, GetLastPressedKey,AxSetTimer, leftbuttondown
leftbuttonup, rightbuttondown, rightbuttonup, keypress
keydown, keyup,timer, setfocus, killfocus, beginpaint, endpaint
syskeydown, syskeyup, changesize, rightdblclkbutton,leftdblclkbutton
emptyseries, emptymatrix, errorpaint, errorrunscript


3. Programming. Description methods and propeties of AxGC (v. 2.7).


 3.1 Methods and Properties of the Graf viewer

3.2 Methods and Properties of the Series

3.3 Methods and Properties of the Matrix

3.4 Real position

3.5 Pictures methods


3.6 Scripts methods

3.7 Time events

3.8 Key press events

3.9 Licensing

3.10 Additional function

3.11 Events

Methods and Properties of the Graf viewer


AxisColor(OLE_COLOR clr)
AxisColor([out,retval]OLE_COLOR* pclr)
Color property of the axis and labels. See also BackColor


BackColor(OLE_COLOR clr)
BackColor([out,retval]OLE_COLOR* pclr)
Backgrownd color property of the graphic


[propget,id(22)]ViewAxis([out,retval] LONG *pVal)
[propput,id(22)] ViewAxis([in] LONG newVal)
Property sets the specified graphical axises show state. .
TRUE - show axis
FALSE -hide axis


[propget, id(46)] ShowAxisLabel([out, retval] LONG* pVal)
[propput, id(46)] ShowAxisLabel([in] LONG newVal);
Property sets the graphical labels show state.
TRUE - show labels
FALSE -hide labels


[id(20)] GetBox([in]DOUBLE *x, [in]DOUBLE *y, [in]DOUBLE *w, [in]DOUBLE *h)
Getting real rectangle viewing numeric data.
x - begining value of the X-axis
y - begining value of the Y-axis
W - width of the real rectangle
h - height of the real rectangle


[id(21)] SetBox([in]DOUBLE x, [in]DOUBLE y, [in]DOUBLE w, [in]DOUBLE h)
Setting new real rectangele viewing numeric data.
x - begining value of the X-axis
y - begining value of the Y-axis
W - width of the real rectangle
h - height of the real rectangle


Methods and Properties of the Series


[id(1)] CreateSeries()
This method create new series - numeric X,Y array. See also CountSeries, AddPointToSeries.


[propget,id(4)] CountSeries([out,retval] LONG *pVal)
The CountSeries property returns the number of series in the Graphical object.


[id(2)] AddPointToSeries([in] LONG lnSer, [in] DOUBLE dx, [in] DOUBLE dy)
Add new point to lSer-th series. dx is x-coordinate of the new point, dy is y-coordinate of the new point.


[id(5)] SetPoints([in] LONG lSer, [in] LONG cElem, [in] DOUBLE *pdX, [in] DOUBLE *pdY)
Add cElem points to the lSer-th series.
pdX,pdY - arrays of the points.
pdX - x-coordinate
pdY - y-coordinate


[id(6)] SetPointVar([in] LONG lSer, [in] VARIANT varX, [in] VARIANT varY)
Add points to the lSer-th series.
pdX,pdY - arrays of the points.
data is stored within the VARIANT structure (type VT_R8|VT_ARRAY or VT_R4|VT_ARRAY). pdX - x-coordinate
pdY - y-coordinate


[id(43)] PushToBegin([in] LONG lSer, [in] DOUBLE dx, [in] DOUBLE dy)
Insert point to begin array.
lSer - number of the series
dx,dy - values of the inserting point.


[id(44)] Pop([in] LONG lSer)
Remove last point from lSer-th series


[id(45)] PopBack([in] LONG lSer)
Remove first point from lSer-th series


[id(31)] GetPoint([in] LONG lSer, [in] LONG n, [in] DOUBLE *px, [in] DOUBLE *py)
Getting of the point in the lSer-th series to n-th position.
lSer - lSer-th series
n - n-th points
px,py - current values x,y points


[id(33)] ChangeValue([in] LONG lSer, [in] LONG lpos, [in] DOUBLE* x, [in] DOUBLE* y)
Set new X,Y values of lpos-th points in the lSer-th series
lSer - lSer-th series
lpos - n-th points
x,y - new values x,y points


[id(34)] Exchange([in] LONG lSer)
Interchange X and Y values in the lSer-th series


[id(30)] NPoints([in] LONG lSer, [out,retval] LONG *pN)
Getting of number of the points in the lSer-th series.
lSer-number of the series
pN - number of the points.


[id(42)] RemovePoints([in] LONG lSer, [in] LONG beg, [in] LONG lend)
Remove all points from lSer-th series begin from point beg to point lend.


[id(11)] RemoveSeries([in] LONG lSer)
Remove lSer-th from series collection.


[id(10)] RemoveData([in] LONG lSer)
Remove all data from lSer-th series.


[id(16)] RemoveAll()
Remove all series from graphics and series collection.


[propget,id(28)] IsDrawPoints([out,retval] LONG *pVal)
[propput,id(28)] IsDrawPoints([in] LONG newVal)
Drawin points property.
TRUE - show points
FALSE - unshow points


[propget,id(29)]IsDrawOnlyPoints ([out,retval] LONG *pVal)
[propput,id(29)] IsDrawOnlyPoints([in] LONG newVal)
Drawin only points property.
TRUE - show points
FALSE - unshow points (all lines will be hide)


[id(7)] SetPropertySeries([in] LONG lSer, [in] LONG alpha, [in] OLE_COLOR color)
Setting color and alphablend property of lSer - th Series
lSer - number of the series.
alpha - alphablend parameter
color - color of lSer-Series

alpha
Specifies an alpha transparency value to be used on the entire source bitmap. The alpha value is combined with any per-pixel alpha values in the source bitmap. If you set alpha to 0, it is assumed that your image is transparent. Set the alpha value to 255 (opaque) when you only want to use per-pixel alpha values.


[id(8)] GetPropertySeries([in] LONG lSer, [out] LONG *alpha, [out] OLE_COLOR *color)
Setting color and alphablend property of lSer - th Series
lSer - number of the series.
alpha - alphablend parameter
color - color of lSer-Series

alpha
Specifies an alpha transparency value to be used on the entire source bitmap. The alpha value is combined with any per-pixel alpha values in the source bitmap. If you set alpha to 0, it is assumed that your image is transparent. Set the alpha value to 255 (opaque) when you only want to use per-pixel alpha values.


[id(3)]RecalcSeries()
Obsolete method.


[id(9)] ReDrawGraph()
Obsolete method.   


[id(25)] Points([in] LONG lSize, [in] LONG alpha)
Drawing series to the points and lines.
lSize - size of the points
alpha - alpha blend

alpha
Specifies an alpha transparency value to be used on the entire source bitmap. The alpha value is combined with any per-pixel alpha values in the source bitmap. If you set alpha to 0, it is assumed that your image is transparent. Set the alpha value to 255 (opaque) when you only want to use per-pixel alpha values.


[id(26)] Shadow([in] LONG dx, [in] LONG dy, [in] LONG size, [in] LONG alpha, [in] LONG R, [in] LONG G, [in] LONG B)
Drawing shadows.
dx - x offset
dy - y offset
size - width of the shadow-line
alpha - alpha blend

alpha
Specifies an alpha transparency value to be used on the entire source bitmap. The alpha value is combined with any per-pixel alpha values in the source bitmap. If you set alpha to 0, it is assumed that your image is transparent. Set the alpha value to 255 (opaque) when you only want to use per-pixel alpha values.


Methods and Properties of the Matrix


[id(41)] GetCell([in] LONG lMx, [in] LONG lC, [in] LONG lR, [out] LONG* color1, [out] LONG* color2,[out] LONG* alfa,[out] LONG* TYPE, [out,retval] LONG* status )
Getting cell properties
lMx - number of the Matrix object in the Matrix collection
lC,lR - coordinates of the cell
lC - number of the column
lR - number of the row
color1,color2 - gradient filling of the cell
color1 - color center
color2 - color at the ending boundary line
alfa - alphablend parameter
TYPE - shape type of viewing of the cell
0 - rectangle shape
1 - circle shape
status - status(states) of the cell. The cell may have only two states 1 and 0.If status is 1 then cell is visible, else hide.

alpha
Specifies an alpha transparency value to be used on the entire source bitmap. The alpha value is combined with any per-pixel alpha values in the source bitmap. If you set alpha to 0, it is assumed that your image is transparent. Set the alpha value to 255 (opaque) when you only want to use per-pixel alpha values.


[id(36)] SetCell([in] LONG lMx, [in] LONG lC, [in] LONG lR, [in] LONG color1, [in] LONG color2,[in] LONG alfa,[in] LONG TYPE, [in] LONG status)
Set parameters cell of the lMx-th matrix
lMx - number of the matrix
lC,lR - coordinates of the cell
lC - number of the column
lR - number of the row
color1,color2 - gradient filling of the cell
color1 - color center
color2 - color at the ending boundary line
alfa - alphablend parameter
TYPE - shape type of viewing of the cell
0 - rectangle shape
1 - circle shape
status - status(states) of the cell. The cell may have only two states 1 and 0.If status is 1 then cell is visible, else hide.

alpha
Specifies an alpha transparency value to be used on the entire source bitmap. The alpha value is combined with any per-pixel alpha values in the source bitmap. If you set alpha to 0, it is assumed that your image is transparent. Set the alpha value to 255 (opaque) when you only want to use per-pixel alpha values.


[propget, id(39)] CountMatrix([out, retval] LONG* pVal)
The CountMatrix property returns the number of Matrix in the Graphical object.


[id(35)] CreateMatrix()
Create new graphical matrix (2D discrete data). Accordingly, the cell may have only two states 1 and 0.


[id(37)]SetMatrixSize([in] LONG lMx, [in] LONG lCol, [in] LONG lRow)
Set size of Matrix
lMx - number of the Matrix object
lCol - number of column in the lMx-th Matrix
lRow - number of row in the lMx-th Matrix


[id(38)] SquarteCells([in] LONG IsSQuCell)
IsSQuCell must be 1 or 0.If IsSQuCell equal 1 then shape all cells in the all Matrixes is square otherwise cells is stretched on the graphical rectangle.


[id(40)] RemoveMatrix([in] LONG lMtx)
Remove lMtx-th from Matrix collection.


Real position


[propget,id(14)] X([out,retval] DOUBLE *pVal)
[propget,id(15)] Y([out,retval] DOUBLE *pVal)
X,Y current cursor position (in the "real" coordinates)


Pictures methods


[id(12)] SavePicture([in] IDispatch *pIStream)
Save graphics into the IStream object.
Stream - object must be created by client.



[id(13)] SetImage([in] IDispatch *pIStream, [in] LONG left, [in] LONG top, [in] LONG W, [in] LONG H)
Set Image into the graphics.
pIStream - previously saving graphics (see SavePicture)
left - x-coordinate of the top edge of the graphic.
top - y-coordinate of the top edge of the graphic.
W - width, in pixels, of screen.
H - height, in pixels, of screen.



[id(17)] AddFrame([in] BSTR bstrFile)
Save current picture into the transient memory.(see also SaveFrameToGraphFile, GetGraphStreamFromFrame)
users mnemonic name (Frame) of saving picture.


[id(18)] SaveFrameToGraphFile([in] BSTR bstrFile, [in] BSTR bstrStream)
Save created Frame to the graphical file (JPEG).
bstrFile - name of the file.
bstrStream - name of the created Frame. (see AddFrame)


[id(19)] GetGraphStreamFromFrame([in] BSTR bstrStream, [in] VARIANT varDisp)
Getting interface (IStream) pointer from the saving Frame to  varDisp
bstrStream - users mnemonic name of the saving Frame
varDisp - is stored within the VARIANT structure (type VT_DISPATCH).


Scripts methods


[id(23)] LoadScript([in] BSTR bstrScr, [in] LONG typeLang)
Load script file( see also ,RunFunction)
bstrScr - name of the script file
typeLang - type of the loading script
0 - JScript 1 - VBScript


[id(27)] RunFunction([in] BSTR funtion)
Run function from loading script.
funtion - name of the function


Time events


[id(48)] AxSetTimer([in] LONG elapse)
The AxSetTimer method creates a timer with the specified time-out value.
elapse - Specifies the time-out value, in milliseconds. See also timer.


Key press events


[id(47)] GetLastPressedKey([out,retval] LONG* key)
Get code nonsystem key is a key that is pressed when the ALT key is not pressed. See also keypress, keydown, keyup


Licensing


! ! !

[id(32)]  LicensingKey([in] LONG lKey)
Confirmation users rights.
lKey - registrated key

Licensing allows control authors to protect intellectual property by checking that a user is authorized to use the control. This method must be call  for confirmation your users rights on the AxGC. You always must call this method after AxGC object was create. When a licensed control is used legally at design time, the application gets a run-time license that can be freely work.

Example:

void InitMyForm()
{
      .... // Any operations
     Graf.LicensingKey(123456789);
      .... // Any operations
}


[id(24)] cRGB([in] LONG R, [in] LONG G, [in] LONG B, [out,retval] LONG *color)
Output long value of the color.
R - red componet value
G - green componet value
B - blue componet value
color - output color value.
Fuction uses for defenition color in the scripts.


Events


[id(1)] ChangePosition
Informs the client then cursor is moving.


[id(2)] leftbuttondown
The message is posted to the client when the user presses the left mouse button.


[id(3)] leftbuttonup
The message is posted to the client when the user releases the left mouse button


[id(4)] rightbuttondown
The message is posted to the client when the user presses the right mouse button.


[id(5)] rightbuttonup
The message is posted to the client when the user releases the right mouse button


[id(6)] keypress
The message is posted to the client when the user press any key



[id(7)] keydown
The message is posted to the client when the user press down any key


[id(8)] keyup
The message is posted to the client when the user releases any key


[id(9)] timer
The message is periodicaly posted to the client from seting timer. See also AxSetTimer.


[id(10)] setfocus
Informs the client then the control has gained focus.


[id(11)] killfocus
Informs the client then the control has lost focus


[id(12)] beginpaint
Informs the client then the control has begin repaint


[id(13)] endpaint
Informs the client then the control has end repaint


[id(14)] syskeydown
Informs the client then the user www.list-int.compress down system key (ALT,F10)


[id(15)] syskeyup
Informs the client then the user releases system key (ALT,F10)


[id(16)] changesize
Informs the client then size of the control was changed


[id(17)] rightdblclkbutton
Informs the client then user double click right mouse button on the conrol


[id(18)] leftdblclkbutton
Informs the client then user double click left mouse button on the conrol


[id(19)] emptyseries
Informs the client then any series is empty. See also RemovePoints, RemoveSeries, RemoveData, RemoveAll, Pop, PopBack


[id(20)] emptymatrix
Informs the client then any matrix is empty. See also RemoveMatrix



[id(21)] errorpaint
Informs the client then happen error redraw of the control


[id(22)] errorrunscript
Informs the client then happen error run script


4.Scripting engine.


Support scripting languages is included in this component.That is, you can write some scripting code (VBScript and JScript) and have the script code access methods and properties on AxGC object. You can load and run this scripts (function LoadScript, RunFunction). The name Graf  is associated with IAxGC COM-interface.

 

5.Run-time Requirements.


The Gdiplus.dll must be copied to the system directory of the user's computer. For information about which operating systems are required to use a particular class or method, see the Requirements section of the documentation for the class or method. GDI+ is available as a redistributable for Windows NT 4.0 SP6, Windows 2000, Windows 98, and Windows Me. To download the latest redistributable, go to http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm.

6.Redistributing AxGC as a part of your software on another client computers.


AxGC is ActiveX component, so you must to registrate AxGC on client`s computer. It avalible following methods:

1. Progamming method. Use the LoadLibrary Windows API to load the control DLL. Next, use GetProcAddress to obtain the address of the "DllRegisterServer" function. Finally, call the DllRegisterServer function. The following code sample demonstrates one possible method, where hLib stores the handle of the control library, and lpDllEntryPoint stores the address of the "DllRegisterServer" function.

HINSTANCE hLib = LoadLibrary("AxGC.dll");
if (hLib < (HINSTANCE)HINSTANCE_ERROR) {
               DisplayMessage(IDS_LOADLIBFAILED, pszDllName); //unable to load DLL
               iReturn = FAIL_LOAD; //unable to load DLL
}
// Find the entry point.
(FARPROC&)lpDllEntryPoint = GetProcAddress(hLib, _T("DllRegisterServer"));
if (lpDllEntryPoint != NULL) (*lpDllEntryPoint)();
else
       // Unable to locate entry point


2. Use system RegSvr32 utility installs a DLL as an in-process server.
3. Use ability your installer. You must declare AxGC.dll as ActiveX componet.

7.Run time licensing.


Licensing allows control authors to protect intellectual property by checking that a user is authorized to use the control. This method must be call for confirmation your users rights on the AxGC. You always must call this method after AxGC object was create. When a licensed control is used legally at design time, the application gets a run-time license that can be freely work.

Example:

void InitMyForm()
{
      .... // Any operations
     Graf.LicensingKey(123456789);
      .... // Any operations
}

8.Inserting a AxGC Control into a Control Container Application ( VC 6.0)


 Before you can access an ActiveX control from an ActiveX control container application, you must use Gallery to add the ActiveX control to the container application.

To add an AxGC control to the ActiveX control container project

  1. On the Project menu, select Add to Project and then Components and Controls. The Components and Controls Gallery appears. By default, you are looking into the Gallery folder.
  2. Open the Registered ActiveX controls folder.
  3. Select the control you want by clicking the ActiveX control icon in the list
  4. Click Insert.
  5. Click OK to confirm that you want to insert the control.

    The Confirm Classes dialog box appears. This dialog box lists the class (or classes) that will be generated for each inserted control. It also lists the class name, header, and implementation files, which can be modified. (In the case of Container and AxGC, only one class is generated.)

  6. Click OK to accept the class generated by Gallery.
  7. Click Close to close the Components and Controls Gallery.

    An icon representing each control installed appears on the dialog editor Controls toolbar.

Once you complete this procedure, the class generated by Gallery, referred to as a wrapper class, is added to your project. This class is used as an interface between the control container and the embedded control.

9.License


 License for use and distribution

The AxGC is distributed as try-before-you-buy. This means:

1. All copyrights to AxGC are exclusively owned by the authors.

2. Anyone may use this software during a test period of 15 days.Following this test period of 15 days or less, if you wish to continue to use AxGC , you MUST register.

3. The registered AxGC ; software may not be rented or leased, but may be permanently transferred, if the person receiving it agrees to terms of this license.

4. The registered component AxGC may be distribute only as a part of your software. All rights not expressly granted here are reserved by AxisPackage Software.

5. The AxGC unregistered trial version, may be freely distributed, with exceptions noted below, provided the distribution package is not modified. No person or company may charge a fee for the distribution of AxGC without written permission from the copyright holder. The AxGC unregistered trial version may not be bundled or distributed with any other package without written permission of the copyright holder.

6. AxGC IS DISTRIBUTED "AS IS". NO WARRANTY OF ANY KIND IS EXPRESSED
OR IMPLIED. YOU USE AT YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR
DATA LOSS, DAMAGES, LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE
USING OR MISUSING THIS SOFTWARE.

7. Installing and using AxGC signifies acceptance of these terms and conditions of the license.

8. If you do not agree with the terms of this license you must remove AxGC files from your storage devices and cease to use the product.


Thank you for using AxGC .

 

10.Registration


Our Software is available for FREE downloading and using for trial period. When this period expires you must register our Software (by making the registration payment), or stop using our Software and uninstall it from your system.

For european customers we recomend registration of our products over online services granted by the ShareIt (Koeln, GERMANY).

Our products may be also purchased over online registration service offered by RegSoft. We accept VISA, AMEX, MasterCard, EuroCard, Discover/Novus and garanted safe and security payment processing.

All payments are secured . You will receive serial number (or source code) in nearest 24 hour after your order will be processed.
As registered user you will receive minor versions of Product WITHOUT ANY CHARGE and major version with DISCOUNT.

Product and link toShareIt registration form Product and link to RegSoft registration form Registration fee
USD 45.00

11. Authors


Peter Bessonov - programmer
Elena Bessonova - generator of ideas
Artemy Kashkarov - support
Our address http://www.axispackage.com