Olha só o exemplo usando o activex da hbwin.
Código: Selecionar todos
#require "hbwin"
#include "hbclass.ch"
#include "rmchart.ch"
#include "wvgparts.ch"
#include "wvtwin.ch"
#include "hbgtinfo.ch"
#include "hbgtwvg.ch"
#include "inkey.ch"
#if ! defined( __HBSCRIPT__HBSHELL )
REQUEST HB_GT_WVG_DEFAULT
#endif
PROCEDURE Main()
LOCAL oMSCAL
#if defined( __HBSCRIPT__HBSHELL ) .AND. defined( __PLATFORM__WINDOWS )
hbshell_gtSelect( "GTWVG" )
#endif
nWIDTH := hb_gtInfo( HB_GTI_SCREENWIDTH )
nHEIGHT := hb_gtInfo( HB_GTI_SCREENHEIGHT )
? "ActiveX demo" /* do not remove this line, we need it to have the window appear */
oChart := HActiveX():Init( hb_gtInfo( HB_GTI_WINHANDLE ), "RMChart.RMChartX", 0, 0, nWIDTH, nHEIGHT )
nWIDTH := hb_gtInfo( HB_GTI_SCREENWIDTH )-100 //GetDesktopRealWidth() //hb_gtInfo( HB_GTI_SCREENWIDTH ) -50
nHEIGHT := hb_gtInfo( HB_GTI_SCREENHEIGHT )-100 //GetDesktopRealHeight() //hb_gtInfo( HB_GTI_SCREENHEIGHT ) -50
nVersion := oChart:RMCVersion
oChart:Reset()
oChart:RMCBackColor := Bisque
oChart:RMCStyle := RMC_CTRLSTYLE3DLIGHT
oChart:RMCWidth := nWidth
oChart:RMCHeight := nHeight
oChart:RMCBgImage := ""
oChart:Font := "Tahoma"
// Add Region 1
oChart:AddRegion()
With object oChart:Region( 1 )
:Left := 5
:Top := 10
:Width := -5
:Height := -5
:Footer = 'Version' + Str(nVersion/100, 5, 2)
// Add caption to region 1
:AddCaption()
With object :Caption()
:Titel := "Saldos por Banco año 2007"
:BackColor := Bisque
:TextColor := Black
:FontSize := 11
:Bold := .T.
End
// Add grid to region 1
:AddGrid()
With object :Grid
:BackColor := Cornsilk
:AsGradient := .F.
:BicolorMode := RMC_BICOLOR_NONE
:Left := 0
:Top := 0
:Width := 0
:Height := 0
End
// Add data axis to region 1
:AddDataAxis()
With object :DataAxis( 1 )
:Alignment := RMC_DATAAXISLEFT
:MinValue := 0
:MaxValue := 50000
:TickCount := 11
:Fontsize := 8
:TextColor := Black
:LineColor := Black
:LineStyle := RMC_LINESTYLESOLID
:DecimalDigits := 0
:AxisUnit := " $"
:AxisText := "Miles de Dólares\9b"
End
// Add label axis to region 1
:AddLabelAxis()
With object :LabelAxis
:AxisCount := 1
:TickCount := 6
:Alignment := RMC_LABELAXISBOTTOM
:Fontsize := 8
:TextColor := Black
:TextAlignment := RMC_TEXTCENTER
:LineColor := Black
:LineStyle := RMC_LINESTYLESOLID
:AxisText := "Primer semestre"
:LabelString := "Enero*Febrero*Marzo*Abril*Mayo*Junio"
End
// Add legend to region 1
:AddLegend()
With object :Legend
:Alignment := RMC_LEGEND_CUSTOM_UL
:BackColor := LightYellow
:Style := RMC_LEGENDRECT
:TextColor := Blue
:Fontsize := 8
:Bold := .F.
:LegendString := "Citibank*Boston*BBVA*Santander"
End
// Add Series 1 to region 1
:AddBarSeries()
With object :BarSeries(1)
:SeriesType := RMC_BARSTACKED
:SeriesStyle := RMC_COLUMN_FLAT
:Lucent := .F.
:Color := DarkBlue
:Horizontal := .F.
:WhichDataAxis := 1
:ValueLabelOn := RMC_VLABEL_NONE
:PointsPerColumn := 1
:HatchMode := RMC_HATCHBRUSH_OFF
:DataString := "10000*10000*16000*12000*20000*10000"
End
// Add Series 2 to region 1
:AddBarSeries()
With object :BarSeries(2)
:SeriesType := RMC_BARSTACKED
:SeriesStyle := RMC_COLUMN_FLAT
:Lucent := .F.
:Color := DarkGreen
:Horizontal := .F.
:WhichDataAxis := 1
:ValueLabelOn := RMC_VLABEL_NONE
:PointsPerColumn := 1
:HatchMode := RMC_HATCHBRUSH_OFF
:DataString := "5000*7000*4000*15000*10000*10000"
End
// Add Series 3 to region 1
:AddBarSeries()
With object :BarSeries(3)
:SeriesType := RMC_BARSTACKED
:SeriesStyle := RMC_COLUMN_FLAT
:Lucent := .F.
:Color := Maroon
:Horizontal := .F.
:WhichDataAxis := 1
:ValueLabelOn := RMC_VLABEL_NONE
:PointsPerColumn := 1
:HatchMode := RMC_HATCHBRUSH_OFF
:DataString := "10000*3000*12000*10000*5000*20000"
End
// Add Series 4 to region 1
:AddBarSeries()
With object :BarSeries(4)
:SeriesType := RMC_BARSTACKED
:SeriesStyle := RMC_COLUMN_FLAT
:Lucent := .F.
:Color := DarkGoldenrod
:Horizontal := .F.
:WhichDataAxis := 1
:ValueLabelOn := RMC_VLABEL_NONE
:PointsPerColumn := 1
:HatchMode := RMC_HATCHBRUSH_OFF
:DataString := "5000*9000*12000*6000*10000*5000"
End
End
oChart:Draw()
Inkey(0)
HB_SYMBOL_UNUSED( oMSCAL )
RETURN
CREATE CLASS HActiveX
VAR oOLE
VAR hWnd
METHOD Init( hWnd, cProgId, nTop, nLeft, nWidth, nHeight, cID )
METHOD Event( ... )
ERROR HANDLER OnError()
DESTRUCTOR Close()
ENDCLASS
METHOD Init( hWnd, cProgId, nTop, nLeft, nWidth, nHeight, cID ) CLASS HActiveX
LOCAL nStyle := WIN_WS_CHILD + WIN_WS_VISIBLE + WIN_WS_CLIPCHILDREN
win_axInit()
::hWnd := wapi_CreateWindowEx( 0, "AtlAxWin", cProgId, nStyle, nLeft, nTop, nWidth, nHeight, hWnd, 0 )
#if 0
wapi_SetWindowPos( ::hWnd, WIN_HWND_TOPMOST, 0, 0, 1, 1, hb_bitOr( WIN_SWP_NOSIZE, WIN_SWP_DRAWFRAME ) )
#endif
::oOLE := win_axGetControl( ::hWnd, {| event, ... | ::Event( event, ... ) }, cID )
RETURN self
PROCEDURE Event( ... ) CLASS HActiveX
LOCAL cEvents := ""
LOCAL aEvents := { ... }
AEval( aEvents, {| xEvent | cEvents += hb_ValToStr( xEvent ) + ", " } )
wapi_OutputDebugString( cEvents )
RETURN
METHOD OnError() CLASS HActiveX
RETURN hb_ExecFromArray( ::oOLE, __GetMessage(), hb_AParams() )
METHOD PROCEDURE Close() CLASS HActiveX
wapi_OutputDebugString( "Close" )
wapi_DestroyWindow( ::hWnd )
::hWnd := NIL
::oOLE := NIL
wapi_OutputDebugString( "After Close" )
RETURN
INIT FUNCTION AppSetup()
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PTISO
HB_LANGSELECT("PT")
HB_CDPSELECT( "PTISO" )
SET DELETED ON
SET ESCAPE ON
SET DATE FORMAT "DD/MM/YYYY"
SET EXCLUSIVE OFF
SET EPOCH TO 1920
Set( _SET_EVENTMASK, INKEY_ALL - INKEY_MOVE )
SetMode(25, 80)
SetColor("W+/B")
CLS
IniciaJanela()
RETURN Nil
FUNCTION IniciaJanela(nLi,nCi,nLf,nCf)
PUBLIC hWnd
cTituloJanela:="Gráficos com RmChart"
HB_gtInfo(HB_GTI_FONTNAME, "Lucida Console")
HB_gtInfo(HB_GTI_WINTITLE, cTituloJanela)
HB_gtInfo(HB_GTI_ICONFILE, "P:\GERAL\HARBOUR\HARB_WIN.ICO" )
HB_gtInfo(HB_GTI_CLOSABLE, .F. )
HB_gtInfo(HB_GTI_ISGRAPHIC, .T. )
HB_gtInfo(HB_GTI_STDERRCON, .T. )
HB_gtInfo(HB_GTI_COMPATBUFFER, .T. )
HB_gtInfo(HB_GTI_SPEC, HB_GTS_WNDSTATE, HB_GTS_WS_MAXIMIZED )
HB_gtInfo(HB_GTI_SPEC, HB_GTS_SHOWWINDOW, SW_NORMAL )
HB_GtInfo( HB_GTI_MAXIMIZED, .T. )
RETURN Nil
FUNCTION HB_GTSYS()
REQUEST HB_GT_WVG_DEFAULT
REQUEST HB_GT_WVG
REQUEST HB_GT_WGU
REQUEST HB_GT_WVT
RETURN Nil

