The AxGC (v. 2.7) ActiveX Control.
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.
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.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
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.
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.
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
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.)
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.
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 .
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 |
Peter Bessonov - programmer
Elena Bessonova - generator of ideas
Artemy Kashkarov - support
Our address http://www.axispackage.com