Dica pra mais gráficos:
Carregue um gráfico pronto, ou crie o seu próprio no rmdesigner:
Escolhe obter código fonte
escolha VB6 usando DLL, código compacto.
fonte obtido:
Código: Selecionar todos
Dim i AS LONG
Dim nC AS LONG
Dim nDataCount AS LONG
Dim nRetVal AS LONG
Dim sTemp AS STRING
ReDim aData(0) AS DOUBLE
ReDim aData2(0) AS DOUBLE
ReDim aPPC(0) AS LONG
ReDim aColor(0) AS LONG
'************** Create the chart **********************
nRetVal = RMC_CreateChartOnDC(Me.hDC,ID_RMC1,10,10,600,450,MidnightBlue,RMC_CTRLSTYLEIMAGE,FALSE,"seasky.jpg","Tahoma", Default)
IF nRetVal < 0 THEN GOTO IsError
'************** Add Region 1 *****************************
nRetVal = RMC_AddRegion(ID_RMC1,5,5,-5,-5,"",FALSE)
IF nRetVal < 0 THEN GOTO IsError
'************** Add legend to region 1 *******************************
sTemp = "Apples*Citrons*Bananas*Cherries"
nRetVal = RMC_AddLegend(ID_RMC1,1,sTemp,RMC_LEGEND_CUSTOM_CENTER,Default,RMC_LEGENDNORECT,White,8,FALSE)
IF nRetVal < 0 THEN GOTO IsError
'************** Add Series 1 to region 1 *******************************
'****** Read color values ******
Redim aColor(3)
aColor(0) = LightGreen
aColor(1) = Yellow
aColor(2) = Goldenrod
aColor(3) = Crimson
'****** Read data values ******
REDIM aData(3)
aData(0) = 40 : aData(1) = 30 : aData(2) = 60 : aData(3) = 20
nRetVal = RMC_AddGridlessSeries(ID_RMC1,1, aData(0), 4,aColor(0),4,RMC_DONUT_GRADIENT,RMC_FULL,0,FALSE,RMC_VLABEL_TWIN,RMC_HATCHBRUSH_OFF, 0)
IF nRetVal < 0 THEN GOTO IsError
nRetVal = RMC_SetWatermark(RMC_USERWM,RMC_USERWMCOLOR,RMC_USERWMLUCENT,RMC_USERWMALIGN,RMC_USERFONTSIZE)
nRetVal = RMC_Draw(ID_RMC1)
IF nRetVal < 0 THEN GOTO IsError
Exit SUB
IsError:
fonte no Harbour
Código: Selecionar todos
LOCAL aColors := { COLOR_LIGHT_GREEN, COLOR_YELLOW, COLOR_GOLDENROD, COLOR_CRIMSON }
LOCAL aData := { 40, 30, 60, 20 }
oRmChart:CreateChart( oCrt:hWnd,ID_RMC1,0,0,MAX_SIZE_ONE,MAX_SIZE_TWO,COLOR_MIDNIGHT_BLUE,RMC_CTRLSTYLEIMAGE,.F.,"seasky.jpg","Tahoma", 0, COLOR_DEFAULT )
oRMChart:AddRegion(ID_RMC1,5,5,-5,-5,"",.F.)
oRMChart:AddLegend(ID_RMC1,1,"Apples*Citrons*Bananas*Cherries",RMC_LEGEND_CUSTOM_CENTER,COLOR_DEFAULT,RMC_LEGENDNORECT,COLOR_WHITE,8,.F.)
oRmChart:AddGridlessSeries(ID_RMC1,1, aData, 4, aColors, 4,RMC_DONUT_GRADIENT,RMC_FULL,0,.F.,RMC_VLABEL_TWIN,RMC_HATCHBRUSH_OFF, 0)
oRmChart:SetWatermark(RMC_USERWM,RMC_USERWMCOLOR,RMC_USERWMLUCENT,RMC_USERWMALIGN,RMC_USERFONTSIZE)
oRmChart:Draw(ID_RMC1)
Basicamente o jeito de definir variáveis e arrays é que se altera.
Mas IMPORTANTE: o exemplo usa CreateChartOnDC() que tem um parâmetro a menos. Se não adicionar um zero antes do último parâmetro ao trocar pra CreateChart(), dá GPF.
Nota: comecei o print-screen usando o gráfico 4 em 1, mas depois achei melhor usar um exemplo mais simples pra mostrar o fonte, e alterei o gráfico no meio do caminho.