RMChart
Moderador: Moderadores
RMChart
José, Asimões e todos que participaram, Parabéns pelo Projeto!
Eu uso a GTWVG como lib gráfica, ela tem um "problema" quando exibe elementos como imagens, ou seja, se estiver exibindo a imagem e mudar o foco da janela, ao voltar some a imagem, com o gráfico acontece o mesmo? Conseguiram imprimir o gráfico gerado em PDF ou mesmo na impressora?
Ate+
Eu uso a GTWVG como lib gráfica, ela tem um "problema" quando exibe elementos como imagens, ou seja, se estiver exibindo a imagem e mudar o foco da janela, ao voltar some a imagem, com o gráfico acontece o mesmo? Conseguiram imprimir o gráfico gerado em PDF ou mesmo na impressora?
Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
RMChart
Andril,
Eu iniciei o tópico obtive êxito para exibir o gráfico, mas quem desvendou os problemas e criou a classe para o rmChart foi o Quintas, sim, respondendo as suas perguntas:
Mostra o gráfico,
Não tem o problema de sumir a imagem.
Pode imprimir (impressora pdf, impressora jato de tinta)
Pode gerar um arquivo de imagem do gráfico (jpg, png, bmp, etc)
Pode fazer um clipboard do gráfico (imagem) e colar em qualquer outro aplicativo (word, excel, etc)
Maiores explicações deixo a cargo do Quintas para exemplificar o seu uso.
Nota: provavelmente fará parte da GTWVG em breve. Houve interesse do Pritpal Bedi
Eu iniciei o tópico obtive êxito para exibir o gráfico, mas quem desvendou os problemas e criou a classe para o rmChart foi o Quintas, sim, respondendo as suas perguntas:
Mostra o gráfico,
Não tem o problema de sumir a imagem.
Pode imprimir (impressora pdf, impressora jato de tinta)
Pode gerar um arquivo de imagem do gráfico (jpg, png, bmp, etc)
Pode fazer um clipboard do gráfico (imagem) e colar em qualquer outro aplicativo (word, excel, etc)
Maiores explicações deixo a cargo do Quintas para exemplificar o seu uso.
Nota: provavelmente fará parte da GTWVG em breve. Houve interesse do Pritpal Bedi
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
RMChart
Quintas eu também vi este erro e tentei arrumar o array mais não consegui.Uma má notícia, apesar de não impedir o uso:
A conversão de array de cores não dá erro, pareceu dar certo, mas não deu.
Reparem que as cores não são as mesmas.
Mais pode ser usado assim
Código: Selecionar todos
aColors := {LightGreen, Yellow, Goldenrod, Crimson}
aData := { 40, 30, 60, 20 }
CreateChart(GetFormHandle("Win_1"), ID_CHART,10,10,600,450,MidnightBlue,RMC_CTRLSTYLEIMAGE,0,"seasky.jpg","Tahoma", 0, 0 )
AddRegion(ID_CHART,5,5,-5,-5,"",0)
AddLegend(ID_CHART, 1,"Apples*Citrons*Bananas*Cherries",RMC_LEGEND_CUSTOM_CENTER,0,RMC_LEGENDNORECT,WHITE,8,0)
AddGridlessSeries(ID_CHART,1, FDouble(aData), 4, FDouble(aColors), FTamanho(aColors), RMC_DONUT_GRADIENT,RMC_FULL,0,.F.,RMC_VLABEL_TWIN,RMC_HATCHBRUSH_OFF, 0)
For x:= 1 To Len(aColors)
SetSeriesColor(ID_CHART,1,1, aColors[x],x)
Next x
DrawChart(ID_CHART)
sobre as limitações são:
9 cores no modo automático,
6 gráfico por região,
15 em Series (pode ser que as cores fica limitada em 15 também) e
20 Instâncias abertas
Daniel
Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
Resolvido com L2Bin()
Código: Selecionar todos
CREATE CLASS RmChart
VAR nHandle
METHOD New() INLINE ::nHandle := hb_libLoad( "RMChart.dll" ), SELF
METHOD Destroy() INLINE hb_libFree( ::nHandle )
METHOD CreateChart( ... ) INLINE ::CallDllStd( "RMC_CREATECHART", ... )
METHOD CreateChartOnDc( ... ) INLINE ::CallDllStd( "RMC_CREATECHARONDC", ... )
METHOD AddBarSeries(a,b,c, ... ) INLINE ::CallDllStd( "RMC_ADDBARSERIES", a, b, ::ToDouble(c), ... )
METHOD AddRegion( ... ) INLINE ::CallDllStd( "RMC_ADDREGION", ... )
METHOD AddCaption( ... ) INLINE ::CallDllStd( "RMC_ADDCAPTION", ... )
METHOD AddDataAxis(a,b,c,d,e, ... ) INLINE ::CallDllStd( "RMC_ADDDATAAXIS", a, b, c, ::ToDecimal(d), ::ToDecimal(e), ... )
METHOD AddGrid( ... ) INLINE ::CallDllStd( "RMC_ADDGRID", ... )
METHOD AddGridLessSeries(a,b,c,d,e,...) INLINE ::CallDllStd( "RMC_ADDGRIDLESSSERIES", a, b, ::ToDouble(c), d, ::ToSignedLong(e), ... )
METHOD AddLabelAxis( ... ) INLINE ::CallDllStd( "RMC_ADDLABELAXIS", ... )
METHOD AddLegend( ... ) INLINE ::CallDllStd( "RMC_ADDLEGEND", ... )
METHOD AddLineSeries( a,b,c, ... ) INLINE ::CallDllStd( "RMC_ADDLINESERIES", a, b, ::ToDouble(c), ... )
METHOD CoText( ... ) INLINE ::CallDllStd( "RMC_COTEXT", ... )
METHOD DeleteChart( ... ) INLINE ::CallDllStd( "RMC_DELETECHART", ... )
METHOD Draw( ... ) INLINE ::CallDllStd( "RMC_DRAW", ... )
METHOD Draw2Clipboard( ... ) INLINE ::CallDllStd( "RMC_DRAW2CLIPBOARD", ... )
METHOD Draw2Printer( ... ) INLINE ::CallDllStd( "RMC_DRAW2PRINTER", ... )
METHOD Draw2File( ... ) INLINE ::CallDllStd( "RMC_DRAW2FILE", ... )
METHOD Reset( ... ) INLINE ::CallDllStd( "RMC_RESET", ... )
METHOD SetWaterMark( ... ) INLINE ::CallDllStd( "RMC_SETWATERMARK", ... )
METHOD WriteRMCFile( ... ) INLINE ::CallDllStd( "RMC_WRITERMCFILE", ... )
METHOD CallDllStd( cName, ... ) INLINE hb_DynCall( { cName, ::nHandle, HB_DYN_CALLCONV_STDCALL }, ... )
METHOD ToDecimal( xValue ) INLINE xValue + 1.01 - 1.01
METHOD ToDouble( xValue )
METHOD ToSignedLong( xValue )
ENDCLASS
METHOD RMChart:ToDouble( xValue )
LOCAL cDouble := "", oElement
IF ValType( xValue ) == "N"
RETURN xValue
ENDIF
FOR EACH oElement IN xValue
cDouble += FToC( oElement )
NEXT
RETURN cDouble
METHOD RMChart:ToSignedLong( xValue )
LOCAL cLong := "", oElement
IF ValType( xValue ) == "N"
RETURN xValue
ENDIF
FOR EACH oElement IN xValue
cLong += L2Bin( oElement )
NEXT
RETURN cLong
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
A janela da GTWVG é sempre coberta por texto, não dá pra fazer o gráfico direto nela.
Tem que usar um controle intermediário.
No teste usei um controle daqueles que eu criei, pra colocar na janela da gtwvg, era o que estava "na mão".
Não testei com outro tipo de controle ainda.
Tem ainda alguns detalhes pra descobrir no re-uso ou várias janelas (simultâneas ou não).
Um teste rápido foi este, com multithread:
Como a IDChart é a mesma, ao mostrar o gráfico numa janela, desaparece o gráfico da outra.
E deu GPF no final, na hora de encerrar.
É como eu disse antes:
Dá a impressão que o RMChart lembra do uso, provavelmente uma área onde ele armazena os dados.
Ao contrário de outras DLLs, hb_LibFree() parece não ser suficiente.
Algumas informações são passadas como ponteiro: posição de memória
Precisa cuidado em não deixar a DLL presa a essas posições de memória, ou gera GPF.
Por enquanto foram testes.
Ajudaram:
RMChart:Reset() limpa os dados sem apagar o gráfico
RMChart:DeleteChart( id ) limpa tudo
Tem que usar um controle intermediário.
No teste usei um controle daqueles que eu criei, pra colocar na janela da gtwvg, era o que estava "na mão".
Não testei com outro tipo de controle ainda.
Tem ainda alguns detalhes pra descobrir no re-uso ou várias janelas (simultâneas ou não).
Um teste rápido foi este, com multithread:
Código: Selecionar todos
#include "inkey.ch"
PROCEDURE Main
hb_ThreadStart( { || tstRmChart() } )
hb_ThreadStart( { || tstRmChart() } )
hb_ThreadWaitForAll()
RETURN
E deu GPF no final, na hora de encerrar.
É como eu disse antes:
Dá a impressão que o RMChart lembra do uso, provavelmente uma área onde ele armazena os dados.
Ao contrário de outras DLLs, hb_LibFree() parece não ser suficiente.
Algumas informações são passadas como ponteiro: posição de memória
Precisa cuidado em não deixar a DLL presa a essas posições de memória, ou gera GPF.
Por enquanto foram testes.
Ajudaram:
RMChart:Reset() limpa os dados sem apagar o gráfico
RMChart:DeleteChart( id ) limpa tudo
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
Uma coisa importante nos exemplos do VB, e nas declarações de DLL que mencionei:
Os parâmetros opcionais, são opcionais para o VB, não para a DLL.
Quando se declara no VB que o parâmetro é opcional numérico, automaticamente o VB acrescenta ZERO se não for informado.
Então tem este detalhe a mais na hora de aproveitar fontes VB6.
Uma opção é detalhar os parâmetros na classe, e testar o valor default de cada um.
O arquivo rmchart.ch não existe no rmchart.
Cada um que existe foi criado por alguém.
O programa exemplo em VB6 usa declarações que não existem no rmchart.ch, mas existem no fonte VB.
Dicas pra quem precisar de algum gráfico que não tem no fonte que foi criado pra Harbour:
Isso se trata de #define, apenas agrupado por tipo de uso
Aqui um detalhe importante que esqueci, por isso alguns GPFs, : opcional, significa opcional pro fonte Visual Basic.
Singifica que o fonte VB pode conter RMC_AddDataAxis( 1, 2 )
Se fizer isso no Harbour, é GPF, porque pra DLL não é opcional.
Opções:
- Alterar a classe, colocar cada parâmetro desses, e atribuir valor default.
- Alterar a chamada ao método, acrescentando o que faltar.
Não precisa se preocupar com isso, mas precisa lembrar disso.
Pra todos os exemplos/gráficos até agora, isso não tinha feito falta.
Agora é que apareceu um exemplo que não preenche todos os parâmetros.
Os parâmetros opcionais, são opcionais para o VB, não para a DLL.
Quando se declara no VB que o parâmetro é opcional numérico, automaticamente o VB acrescenta ZERO se não for informado.
Então tem este detalhe a mais na hora de aproveitar fontes VB6.
Uma opção é detalhar os parâmetros na classe, e testar o valor default de cada um.
O arquivo rmchart.ch não existe no rmchart.
Cada um que existe foi criado por alguém.
O programa exemplo em VB6 usa declarações que não existem no rmchart.ch, mas existem no fonte VB.
Dicas pra quem precisar de algum gráfico que não tem no fonte que foi criado pra Harbour:
Código: Selecionar todos
' Custom Objects
Enum COType
RMC_CO_TEXT = 1
RMC_CO_BOX = 2
RMC_CO_CIRCLE = 3
RMC_CO_LINE = 4
RMC_CO_IMAGE = 5
RMC_CO_SYMBOL = 6
RMC_CO_POLYGON = 7
End Enum
Código: Selecionar todos
Declare Function RMC_AddDataAxis Lib "RMCHART.DLL" Alias "RMC_ADDDATAAXIS" ( _
ByVal nCtrlId As Long, _
ByVal nRegion As Long, _
Optional ByVal nAlignment As DAxisAlignment, _
Optional ByVal nMinValue As Double, _
Optional ByVal nMaxValue As Double, _
Optional ByVal nTickCount As Long, _
Optional ByVal nFontSize As Long, _
Optional ByVal nTextColor As RMC_Colors, _
Optional ByVal nLineColor As RMC_Colors, _
Optional ByVal nLinestyle As AxisLineStyle, _
Optional ByVal nDecimalDigits As Long, _
Optional ByVal sUnit As String, _
Optional ByVal sText As String, _
Optional ByVal sLabels As String, _
Optional ByRef nLabelAlignment As Long _
) As RMCError
Singifica que o fonte VB pode conter RMC_AddDataAxis( 1, 2 )
Se fizer isso no Harbour, é GPF, porque pra DLL não é opcional.
Opções:
- Alterar a classe, colocar cada parâmetro desses, e atribuir valor default.
- Alterar a chamada ao método, acrescentando o que faltar.
Não precisa se preocupar com isso, mas precisa lembrar disso.
Pra todos os exemplos/gráficos até agora, isso não tinha feito falta.
Agora é que apareceu um exemplo que não preenche todos os parâmetros.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
Se for se preocupar com tudo isso agora, serão meses de digitação.
Fora as opções usadas até agora, tem as que não foram usadas.
Pra quem quer mais opções..... rs
Fora as opções usadas até agora, tem as que não foram usadas.
Pra quem quer mais opções..... rs
Código: Selecionar todos
#require hbct.hbc
#include "hbclass.ch"
#include "hbdyn.ch"
CREATE CLASS RmChart
VAR nHandle
METHOD New() INLINE ::nHandle := hb_libLoad( "RMChart.dll" ), SELF
METHOD Destroy() INLINE hb_libFree( ::nHandle )
METHOD AddBarSeries(a,b,c, ... ) INLINE ::CallDllStd( "RMC_ADDBARSERIES", a, b, ::ToDouble(c), ... )
METHOD AddRegion( ... ) INLINE ::CallDllStd( "RMC_ADDREGION", ... )
METHOD AddCaption( ... ) INLINE ::CallDllStd( "RMC_ADDCAPTION", ... )
METHOD AddDataAxis(a,b,c,d,e, ... ) INLINE ::CallDllStd( "RMC_ADDDATAAXIS", a, b, c, ::ToDecimal(d), ::ToDecimal(e), ... )
METHOD AddGrid( ... ) INLINE ::CallDllStd( "RMC_ADDGRID", ... )
METHOD AddGridLessSeries(a,b,c,d,e,...) INLINE ::CallDllStd( "RMC_ADDGRIDLESSSERIES", a, b, ::ToDouble(c), d, ::ToSignedLong(e), ... )
METHOD AddHightLowSeries(a,b,c,...) INLINE ::CallDllStd( "RMC_ADDHIGHTLOWSERIES", a, b, ::ToDouble(c), ... )
METHOD AddLabelAxis( ... ) INLINE ::CallDllStd( "RMC_ADDLABELAXIS", ... )
METHOD AddLegend( ... ) INLINE ::CallDllStd( "RMC_ADDLEGEND", ... )
METHOD AddLineSeries( a,b,c, ... ) INLINE ::CallDllStd( "RMC_ADDLINESERIES", a, b, ::ToDouble(c), ... )
METHOD AddToolTips( ... ) INLINE ::CallDllStd( "RMC_ADDTOOLTIPS", ... )
METHOD AddVolumeBarSeries(a,b,c,...) INLINE ::CallDllStd( "RMC_ADDVOLUMEBARSERIES", a, b, ::ToDouble(c), ... )
METHOD AddXAxis(a,b,c,d,e,...) INLINE ::CallDllStd( "RMC_ADDXAXIS", a, b, c, ::ToDouble(d), ::ToDouble(e), ... )
METHOD AddXSeries(a,b,c,d,e,...) INLINE ::CallDllStd( "RMC_ADDXSERIES", a, b, ::ToDouble(c), d, ::ToDouble(e), ... )
METHOD AddYAxis(a,b,c,d,e,...) INLINE ::CallDllStd( "RMC_ADDYAXIS", a, b, c, ::ToDouble(d), ::ToDouble(e), ... )
METHOD AddYSeries(a,b,c,d,e,...) INLINE ::CallDllStd( "RMC_ADDYSERIES", a, b, ::ToDouble(c), d, ::ToDouble(e), ... )
METHOD CalcAverage(a,b,c,d,...) INLINE ::CallDllStd( "RMC_CALCAVERAGE", a, b, c, ::ToDouble(d), ... )
METHOD CalcTrend(a,b,c,d,e,... ) INLINE ::CallDllStd( "RMC_CALLTREND", a, b, c, ::ToDouble(d), ::ToDouble(e), ... )
METHOD CoBox( ... ) INLINE ::CallDllStd( "RMC_COBOX", ... )
METHOD CoCircle( ... ) INLINE ::CallDllStd( "RMC_COCIRCLE", ... )
METHOD CoDash( ... ) INLINE ::CallDllStd( "RMC_CODASH", ... )
METHOD CoDelete( ... ) INLINE ::CallDllStd( "RMC_CODELETE", ... )
METHOD CoImage( ... ) INLINE ::CallDllStd( "RMC_COIMAGE", ... )
METHOD CoLine( a, b, c, d, ... ) INLINE ::CallDllStd( "RMC_COLINE", a, b, ::ToSignedLong( c ), ::ToSignedLong( d ), ... )
METHOD CoPolygon( ... ) INLINE ::CallDllStd( "RMC_COPOLYGON", ... )
METHOD CoSymbol( ... ) INLINE ::CallDllStd( "RMC_COSYMBOL", ... )
METHOD CoText( ... ) INLINE ::CallDllStd( "RMC_COTEXT", ... )
METHOD CoVisible( ... ) INLINE ::CallDllStd( "RMC_COVISIBLE", ... )
METHOD CreateChart( ... ) INLINE ::CallDllStd( "RMC_CREATECHART", ... )
/* METHOD CreateChartOnDc( ... ) INLINE ::CallDllStd( "RMC_CREATECHARONDC", ... ) // uncomment if you know what you are doing */
METHOD DeleteChart( ... ) INLINE ::CallDllStd( "RMC_DELETECHART", ... )
METHOD Draw( ... ) INLINE ::CallDllStd( "RMC_DRAW", ... )
METHOD Draw2Clipboard( ... ) INLINE ::CallDllStd( "RMC_DRAW2CLIPBOARD", ... )
METHOD Draw2Printer( ... ) INLINE ::CallDllStd( "RMC_DRAW2PRINTER", ... )
METHOD Draw2File( ... ) INLINE ::CallDllStd( "RMC_DRAW2FILE", ... )
METHOD GetChartSizeFromFile( ... ) INLINE ::CallDllStd( "RMC_GETCHARTSIZEFROMFILE", ... )
METHOD GetCtrlHeight( ... ) INLINE ::CallDllStd( "RMC_GETCTRLHEIGHT", ... )
METHOD GetCtrlWidth( ... ) INLINE ::CallDllStd( "RMC_GETCTRLWIDTH", ... )
METHOD GetData( ... ) INLINE ::CallDllStd( "RMC_GETDATA", ... )
METHOD GetDataCount( ... ) INLINE ::CallDllStd( "RMC_GRETDATACOUNT", ... )
METHOD GetDataLocation( ... ) INLINE ::CallDllStd( "RMC_GETDATALOCATION", ... )
METHOD GetDataLocationXY( ... ) INLINE ::CallDllStd( "RMC_GETDATALOCATIONXY", ... )
METHOD GetGridLocation( ... ) INLINE ::CallDllStd( "RMC_GETGRIDLOCATION", ... )
METHOD GetHighPart( ... ) INLINE ::CallDllStd( "RMC_GETHIGHPART", ... )
METHOD GetImageSizeFromFile( ... ) INLINE ::CallDllStd( "RMC_GETIMAGESIZEFROMFILE", ... )
METHOD GetInfo( ... ) INLINE ::CallDllStd( "RMC_GETINFO", ... )
METHOD GetInfoXY( ... ) INLINE ::CallDllStd( "RMC_GETINFOXY", ... )
METHOD GeTLowPart( ... ) INLINE ::CallDllStd( "RMC_GETLOWPART", ... )
METHOD GetSeriesDataRange( ... ) INLINE ::CallDllStd( "RMC_GETSERIESDATARANGE", ... )
METHOD GetVersion( ... ) INLINE ::CallDllStd( "RMC_GETVERSION", ... )
METHOD Magnifier( ... ) INLINE ::CallDllStd( "RMC_MAGNIFIER", ... )
METHOD Paint( ... ) INLINE ::CallDllStd( "RMC_PAINT", ... )
METHOD Reset( ... ) INLINE ::CallDllStd( "RMC_RESET", ... )
METHOD Rnd( ... ) INLINE ::CallDllStd( "RMC_RND", ... )
METHOD SetCaptionText( ... ) INLINE ::CallDllStd( "RMC_SETCAPTIONTEXT", ... )
METHOD SetCaptionBGColor( ... ) INLINE ::CallDllStd( "RMC_SETCAPTIONBGCOLOR", ... )
METHOD SetCaptionTextColor( ... ) INLINE ::CallDllStd( "RMC_SETCAPTIONTEXTCOLOR", ... )
METHOD SetCaptionFontBold( ... ) INLINE ::CallDllStd( "RMC_SETCAPTIONFONTBOLD", ... )
METHOD SetCaptionFontSize( ... ) INLINE ::CallDllStd( "RMC_SETCAPTIONFONTSIZE", ... )
METHOD SetCtrlBGColor( ... ) INLINE ::CallDllStd( "RMC_SETCTRLBGCOLOR", ... )
METHOD SetCtrlBGImage( ... ) INLINE ::CallDllStd( "RMC_SETCTRLBGIMAGE", ... )
METHOD SetCtrlFont( ... ) INLINE ::CallDllStd( "RMC_SETCTRLFONT", ... )
METHOD SetCtrlSize( ... ) INLINE ::CallDllStd( "RMC_SETCTRLSIZE", ... )
METHOD SetCtrlStyle( ... ) INLINE ::CallDllStd( "RMC_SETCTRLSTYLE", ... )
METHOD SetCustomTooltipText( ... ) INLINE ::CallDllStd( "RMC_SETCUSTOMTOOLTIPTEXT", ... )
METHOD SetDataXAlignment( ... ) INLINE ::CallDllStd( "RMC_SETDATAXALIGNMENT", ... )
METHOD SetDaXDecimalDigits( ... ) INLINE ::CallDllStd( "RMC_SETDAXDECIMALDIGITS", ... )
METHOD SetDaXFontSize( ... ) INLINE ::CallDllStd( "RMC_SETDAXFONTSIZE", ... )
METHOD SetDaXLineColor( ... ) INLINE ::CallDllStd( "RMC_SETDAXLINECOLOR", ... )
METHOD SetDaXLineStyle( ... ) INLINE ::CallDllStd( "RMC_SETDAXLINESTLE", ... )
METHOD SetDaXMaxValue( ... ) INLINE ::CallDllStd( "RMC_SETDAXMAXVALUE", ... )
METHOD SetDaXMinValue( ... ) INLINE ::CallDllStd( "RMC_SETDAXMINVALUE", ... )
METHOD SetDaXText( ... ) INLINE ::CallDllStd( "RMC_SETDAXTEXT", ... )
METHOD SetDaXTextColor( ... ) INLINE ::CallDllStd( "RMC_SETDAXTEXTCOLOR", ... )
METHOD SetDaXTickCount( ... ) INLINE ::CallDllStd( "RMC_SETDAXTICKCOLOR", ... )
METHOD SetDaXUnit( ... ) INLINE ::CallDllStd( "RMC_SETDAXUNIT", ... )
METHOD SetGridBGColor( ... ) INLINE ::CallDllStd( "RMC_SETGRIDBGCOLOR", ... )
METHOD SetGridBIColor( ... ) INLINE ::CallDllStd( "RMC_SETGRIDBICOLOR", ... )
METHOD SetGridGradient( ... ) INLINE ::CallDllStd( "RMC_SETGRIDGRADIENT", ... )
METHOD SetGridMargin( ... ) INLINE ::CallDllStd( "RMC_SETGRIDMARGIN", ... )
METHOD SetHelpIngGrid( ... ) INLINE ::CallDllStd( "RMC_SETHELPINGGRID", ... )
METHOD SetLAXAlignment( ... ) INLINE ::CallDllStd( "RMC_SETLAXALIGNMENT", ... )
METHOD SetLAXCount( ... ) INLINE ::CallDllStd( "RMC_SETLAXCOUNT", ... )
METHOD SetLAXFontSize( ... ) INLINE ::CallDllStd( "RMC_SETLAXFONTSIZE", ... )
METHOD SetAXLabelAlignment( ... ) INLINE ::CallDllStd( "RMC_SETAXLABELALIGNMENT", ... )
METHOD SetAXLabels( ... ) INLINE ::CallDllStd( "RMC_SETAXLABELS", ... )
METHOD SetAXLabelsFile( ... ) INLINE ::CallDllStd( "RMC_SETAXLABELSFILE", ... )
METHOD SetAxLabelsRange( ... ) INLINE ::CallDllStd( "RMC_SETAXLABELSRANGE", ... )
METHOD SetAXLineColor( ... ) INLINE ::CallDllStd( "RMC_SETAXLINECOLOR", ... )
METHOD SetAXLineStyle( ... ) INLINE ::CallDllStd( "RMC_SETAXLINESTYLE", ... )
METHOD SetLAXText( ... ) INLINE ::CallDllStd( "RMC_SETLAXTEXT", ... )
METHOD SetLAXTickCount( ... ) INLINE ::CallDllStd( "RMC_SETLAXTICKCOUNT", ... )
METHOD SetLegendAlignment( ... ) INLINE ::CallDllStd( "RMC_SETLEGENDALIGNMENT", ... )
METHOD SetLegendBGColor( ... ) INLINE ::CallDllStd( "RMC_SETLEGENDBGCOLOR", ... )
METHOD SetLegendFontBold( ... ) INLINE ::CallDllStd( "RMC_SETLEGENDFONTBOLD", ... )
METHOD SetLegendFontSize( ... ) INLINE ::CallDllStd( "RMC_SETLEGENDFONTSIZE", ... )
METHOD SetLegendHide( ... ) INLINE ::CallDllStd( "RMC_SETLEGENDHIDE", ... )
METHOD SetLegendStyle( ... ) INLINE ::CallDllStd( "RMC_SETLEGENDSTYLE", ... )
METHOD SetLegendText( ... ) INLINE ::CallDllStd( "RMC_SETLEGENDTEXT", ... )
METHOD SetLegendTextColor( ... ) INLINE ::CallDllStd( "RMC_SETLEGENDTEXTCOLOR", ... )
METHOD SetMouseClick( ... ) INLINE ::CallDllStd( "RMC_SETMOUSECLICK", ... )
METHOD SetRegionFooter( ... ) INLINE ::CallDllStd( "RMC_SETREGIONFOOTER", ... )
METHOD SetRegionMargin( ... ) INLINE ::CallDllStd( "RMC_SETREGIONMARGIN", ... )
METHOD SetRegionBorder( ... ) INLINE ::CallDllStd( "RMC_SETREGIONBORDER", ... )
METHOD SetRMCFile( ... ) INLINE ::CallDllStd( "RMC_SETRMCFILE", ... )
METHOD SetSeriesColor( ... ) INLINE ::CallDllStd( "RMC_SETSERIESCOLOR", ... )
METHOD SetSeriesExplodeMode( ... ) INLINE ::CallDllStd( "RMC_SETSERIESEXPLODEMODE", ... )
METHOD SetSeriesStartAngle( ... ) INLINE ::CallDllStd( "RMC_SETSERIESSTARTANGLE", ... )
METHOD SetSeriesData( ... ) INLINE ::CallDllStd( "RMC_SETSERIESDATA", ... )
METHOD SetSeriesDataFile( ... ) INLINE ::CallDllStd( "RMC_SETSERIESDATAFILE", ... )
METHOD SetSeriesDataRange( ... ) INLINE ::CallDllStd( "RMC_SETSERIESDATARANGE", ... )
METHOD SetSeriesSingleData( ... ) INLINE ::CallDllStd( "RMC_SETSERIESSINGLEDATA", ... )
METHOD SetSeriesDataAxis( ... ) INLINE ::CallDllStd( "RMC_SETSERIESDATAAXIS", ... )
METHOD SetSeriesHarchMode( ... ) INLINE ::CallDllStd( "RMC_SETSERIESHARCHMODE", ... )
METHOD SetSeriesHide( ... ) INLINE ::CallDllStd( "RMC_SETSERIESHIDE", ... )
METHOD SetSeriesHightLowColor( ... ) INLINE ::CallDllStd( "RMC_SETSERIESHIGHLOWCOLOR", ... )
METHOD SetSeriesLineStyle( ... ) INLINE ::CallDllStd( "RMC_SETSERIESLINESTYLE", ... )
METHOD SetSeriesLucent( ... ) INLINE ::CallDllStd( "RMC_SETSERIESLUCENT", ... )
METHOD SetSeriesPPColumn( ... ) INLINE ::CallDllStd( "RMC_SETSERIESPPCOUMN", ... )
METHOD SetSeriesPPColumnArray( ... ) INLINE ::CallDllStd( "RMC_SETSERIESPPCOLUMNARRAY", ... )
METHOD SetSeriesVertical( ... ) INLINE ::CallDllStd( "RMC_SETSERIESVERTICAL", ... )
METHOD SetSeriesStyle( ... ) INLINE ::CallDllStd( "RMC_SETSERIESSTYLE", ... )
METHOD SetSeriesSymbol( ... ) INLINE ::CallDllStd( "RMC_SETSERIESSYMBOL", ... )
METHOD SetSeriesValueLabel( ... ) INLINE ::CallDllStd( "RMC_SETSERIESVALUELABEL", ... )
METHOD SetSeriesXAxis( ... ) INLINE ::CallDllStd( "RMC_SETSERIESXAXIS", ... )
METHOD SetSeriesYAxis( ... ) INLINE ::CallDllStd( "RMC_SETSERIESYAXIS", ... )
METHOD SetSingleBarColors( ... ) INLINE ::CallDllStd( "RMC_SETSINGLEBARCOLORS", ... )
METHOD SetTooltipWidth( ... ) INLINE ::CallDllStd( "RMC_SETTOOLTIPWIDTH", ... )
METHOD SetWaterMark( ... ) INLINE ::CallDllStd( "RMC_SETWATERMARK", ... )
METHOD SetXAXAlignment( ... ) INLINE ::CallDllStd( "RMC_SETXYALIGNMENT", ... )
METHOD SetYAXAlignment( ... ) INLINE ::CallDllStd( "RMC_SETYAXALIGNMENT", ... )
METHOD SetXAXDecimalDigits( ... ) INLINE ::CallDllStd( "RMC_SETXAXDECIMALDIGITS", ... )
METHOD SetYAXDecimalDigits( ... ) INLINE ::CallDllStd( "RMC_SETYAXDECIMALDIGITS", ... )
METHOD SetXAXFontSize( ... ) INLINE ::CallDllStd( "RMC_SETXAXFONTSIZE", ... )
METHOD SetYAXFontSize( ... ) INLINE ::CallDllStd( "RMC_SETYAXFONTSIZE", ... )
METHOD SetXAXLabels( ... ) INLINE ::CallDllStd( "RMC_SETXAXLABELS", ... )
METHOD SetYAXLabels( ... ) INLINE ::CallDllStd( "RMC_SETYAXLABELS", ... )
METHOD SetXAXLabelAlignment( ... ) INLINE ::CallDllStd( "RMC_SETXAXLABELALIGNMENT", ... )
METHOD SetYAXLabelAlignment( ... ) INLINE ::CallDllStd( "RMC_SETYAXLABELALIGNMENT", ... )
METHOD SetXAXLineColor( ... ) INLINE ::CallDllStd( "RMC_SETXAXLINECOLOR", ... )
METHOD SetYAXLineCOlor( ... ) INLINE ::CallDllStd( "RMC_SETYAXLINECOLOR", ... )
METHOD SetXAXLineStyle( ... ) INLINE ::CallDllStd( "RMC_SETXAXLINESTYLE", ... )
METHOD SetYAXLineStyle( ... ) INLINE ::CallDllStd( "RMC_SETYAXLINESTYLE", ... )
METHOD SetXAXMaxValue( ... ) INLINE ::CallDllStd( "RMC_SETXAXMAXVALUE", ... )
METHOD SetYAXMaxValue( ... ) INLINE ::CallDllStd( "RMC_SETYAXMAXVALUE", ... )
METHOD SetXAXMinValue( ... ) INLINE ::CallDllStd( "RMC_SETXAXMINVALUE", ... )
METHOD SetYAXMinValue( ... ) INLINE ::CallDllStd( "RMC_SETYAXMINVALUE", ... )
METHOD SetXAXText( ... ) INLINE ::CallDllStd( "RMC_SETXAXTEXT", ... )
METHOD SetYAXText( ... ) INLINE ::CallDllStd( "RMC_SETYAXTEXT", ... )
METHOD SetXAXTextColor( ... ) INLINE ::CallDllStd( "RMC_SETXAXTEXTCOLOR", ... )
METHOD SetYAXTextColor( ... ) INLINE ::CallDllStd( "RMC_SETYAXTEXTCOLOR", ... )
METHOD SetXAXTickCount( ... ) INLINE ::CallDllStd( "RMC_SETXAXTICKCOUNT", ... )
METHOD SetYAXTickCount( ... ) INLINE ::CallDllStd( "RMC_SETYAXTICKCOUNT", ... )
METHOD SetXAXUnit( ... ) INLINE ::CallDllStd( "RMC_SETXAXUNIT", ... )
METHOD SetYAXUnit( ... ) INLINE ::CallDllStd( "RMC_SETYAXUNIT", ... )
METHOD ShowTooltips( ... ) INLINE ::CallDllStd( "RMC_SHOWTOOLTIPS", ... )
METHOD WriteRMCFile( ... ) INLINE ::CallDllStd( "RMC_WRITERMCFILE", ... )
METHOD Zoom( ... ) INLINE ::CallDllStd( "RMC_ZOOM", ... )
METHOD CallDllStd( cName, ... ) INLINE hb_DynCall( { cName, ::nHandle, HB_DYN_CALLCONV_STDCALL }, ... )
METHOD ToDecimal( xValue ) INLINE xValue + 1.01 - 1.01
METHOD ToDouble( xValue )
METHOD ToSignedLong( xValue )
ENDCLASS
METHOD RMChart:ToDouble( xValue )
LOCAL cDouble := "", oElement
DO CASE
CASE ValType( xValue ) == "N"
RETURN xValue
CASE ValType( xValue ) == "A"
FOR EACH oElement IN xValue
cDouble += FToC( oElement )
NEXT
OTHERWISE
RETURN 0
ENDCASE
RETURN cDouble
METHOD RMChart:ToSignedLong( xValue )
LOCAL cLong := "", oElement
DO CASE
CASE ValType( xValue ) == "N"
RETURN xValue
CASE ValType( xValue ) == "A"
FOR EACH oElement IN xValue
cLong += L2Bin( oElement )
NEXT
OTHERWISE
RETURN 0
ENDIF
RETURN cLong
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
RMChart
Quintas
:-Y
:-Y
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
Naquele fonte de VB6 tem tudo.
Está na pasta VB6_DLL, é o arquivo rmchartvb.bas
Ele contém todos os #defines (sintaxe VB, não Harbour), e as declarações pra DLL (também sintaxe VB, igual postado acima).
Já atualizei o CH com todas as declarações a mais que encontrei.
E na classe apenas acrescentei os outros métodos, sem as conversões.
Como deu pra ver, é muuuuita coisa, vai longe isso.
Melhor deixar pra quando for usar um gráfico diferente.
Fui mexer em algumas aqui, e parou de funcionar... rs
O que seria pra melhorar, estragou, então não acrescentei validação adicional.
Agora meu programa de teste contém um PROMPT pra selecionar cada gráfico.
Tem uma diferença quanto aos gráficos originais:
Os originais tem tamanho fixo em pixels e, por exemplo, legendas numa determinada posição em pixels.
Como aqui as imagens são redimensionadas conforme a janela, esses ítens fixos ficam em posição diferente do original.
Por exemplo a legenda da média neste gráfico.
Está na pasta VB6_DLL, é o arquivo rmchartvb.bas
Ele contém todos os #defines (sintaxe VB, não Harbour), e as declarações pra DLL (também sintaxe VB, igual postado acima).
Já atualizei o CH com todas as declarações a mais que encontrei.
E na classe apenas acrescentei os outros métodos, sem as conversões.
Como deu pra ver, é muuuuita coisa, vai longe isso.
Melhor deixar pra quando for usar um gráfico diferente.
Fui mexer em algumas aqui, e parou de funcionar... rs
O que seria pra melhorar, estragou, então não acrescentei validação adicional.
Agora meu programa de teste contém um PROMPT pra selecionar cada gráfico.
Tem uma diferença quanto aos gráficos originais:
Os originais tem tamanho fixo em pixels e, por exemplo, legendas numa determinada posição em pixels.
Como aqui as imagens são redimensionadas conforme a janela, esses ítens fixos ficam em posição diferente do original.
Por exemplo a legenda da média neste gráfico.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
Parece este outro, parece exemplo inútil... mas não é.
O outro mostra a opção de uma coluna em VERMELHO.
De repente, destacar aonde houve prejuízo.
Justamente pelo outro usar um detalhe diferente é que exigiu uma conversão que faltava.
Agora é só alegria.
Quando tem GPF, é porque falta algum parâmetro ou alguma conversão.
O outro mostra a opção de uma coluna em VERMELHO.
De repente, destacar aonde houve prejuízo.
Justamente pelo outro usar um detalhe diferente é que exigiu uma conversão que faltava.
Agora é só alegria.
Quando tem GPF, é porque falta algum parâmetro ou alguma conversão.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
Esqueci de avisar:
Comentei a linha do CreateChartOnDc()
É porque os exemplos em VB6 vém com ele.
Melhor assim, porque vai dar erro, e vamos lembrar que é pra alterar pra CreateChart().
Comentei a linha do CreateChartOnDc()
É porque os exemplos em VB6 vém com ele.
Melhor assim, porque vai dar erro, e vamos lembrar que é pra alterar pra CreateChart().
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
RMChart
Parabéns galera... vendo a empolgação de vcs da gosto...
resolvi entrar na dança... baixei a dll e a ocx..
baixei o exemplo do Quintas testrmchart
ele roda beleza...
MAS se coloco ele no meu sistema console (tive q acrescentar o meu HBP as linhas abaixo) e chamo o TSTRMCHART percebo q roda aparece e some muito rapidamente o gráfico mesmo se chamo via Thread.
Outra dúvida pq o o OCX? Não seria só ter a dll na pasta? Não tinha dado tive q registrar o OCX para aparentemente funcionar (pelo q entendi)
resolvi entrar na dança... baixei a dll e a ocx..
baixei o exemplo do Quintas testrmchart
ele roda beleza...
MAS se coloco ele no meu sistema console (tive q acrescentar o meu HBP as linhas abaixo) e chamo o TSTRMCHART percebo q roda aparece e some muito rapidamente o gráfico mesmo se chamo via Thread.
Outra dúvida pq o o OCX? Não seria só ter a dll na pasta? Não tinha dado tive q registrar o OCX para aparentemente funcionar (pelo q entendi)
Código: Selecionar todos
*.prg
hbwin.hbc
#--------------- Necessario RMChart
gtwvg.hbc
hbct.hbc
hbmisc.hbc
#--------------------------
-lxhb
-lhbct
-lhbtip
-lhbwin
-lhbxpp
-lhbhpdf
-lhbcomm
-lhbzebra
-llibhpdf
-lpng
-llibmysql
-lhbmysqlSun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
RMChart
No Xailer foi de boa... deu certo...
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”.
Até 2017 Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL
Novos Projetos:
Desktop Visual Windev Desktop
Celular Android/iOS Windev Mobile
WEB Windev Web
Sejamos gratos a Deus.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
O uso da OCX não deu muito certo na GTWVG.
Tudo que fizemos por aqui foi usar a DLL. Usando a DLL não precisa de mais nada.
Não entendi no final das contas o que está usando no aplicativo, é console ou gtwvg?
Console:
gtwvg:
Sendo que, se retirar o Inkey(0), a tela console ainda aparece após finalizar o programa, mas se for gtwvg a tela some.
Console usa a própria janela de console, enquanto gtwvg usa uma janela windows que é encerrada no final.
Por isso o inkey(0), pra ter uma pausa ao mostrar a janela. (isso considerando que trata-se apenas deste fonte).
Da mesma forma, se for mostrar gráfico:
Tudo que fizemos por aqui foi usar a DLL. Usando a DLL não precisa de mais nada.
Não entendi no final das contas o que está usando no aplicativo, é console ou gtwvg?
Código: Selecionar todos
PROCEDURE Main
SetMode( 25, 80 )
CLS
? "Ola mundo"
Inkey(0)
RETURN
Código: Selecionar todos
hbmk2 test.prg
Código: Selecionar todos
hbmk2 test.prg gtwvg.hbc
Console usa a própria janela de console, enquanto gtwvg usa uma janela windows que é encerrada no final.
Por isso o inkey(0), pra ter uma pausa ao mostrar a janela. (isso considerando que trata-se apenas deste fonte).
Da mesma forma, se for mostrar gráfico:
Código: Selecionar todos
PROCEDURE Main
SetMode( 25, 80 )
CLS
? "Ola mundo"
MostraGrafico()
Inkey(0) // ---------> precisa pausa
RETURN
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
Atualizei o arquivo de exemplos e deixei mais simples.
http://www.jpatecnologia.com.br/arquivo ... mchart.zip
Como já embuti no aplicativo, o nome do arquivo da classe mudou pra ze_rmchart.prg
Deixo toda minha biblioteca como ze_* pra em ordem alfabética ficar no final da lista.
Trata-se apenas de um prompt e um retângulo pro gráfico.
Só escolher o gráfico e teclar ENTER.
Tela comum da GTWVG, só o retângulo pro gráfico.
Reduzi a janela antes do print-screen. O post já tem bastante gráfico.... rs
http://www.jpatecnologia.com.br/arquivo ... mchart.zip
Como já embuti no aplicativo, o nome do arquivo da classe mudou pra ze_rmchart.prg
Deixo toda minha biblioteca como ze_* pra em ordem alfabética ficar no final da lista.
Trata-se apenas de um prompt e um retângulo pro gráfico.
Só escolher o gráfico e teclar ENTER.
Tela comum da GTWVG, só o retângulo pro gráfico.
Código: Selecionar todos
FUNCTION Main()
LOCAL oRmChart, oCrt1, nOpc := 1, nTemp
SetMode(40,100)
SET WRAP ON
SetColor( "W/B" )
CLS
oRmChart := RMChart():New()
oCrt1 := TstRectangle():New( , , { 0, -20 }, { -MaxRow() - 1, -MaxCol() + 19 } )
oCrt1:Create()
DO WHILE .T.
@ 0, 0 SAY ""
@ Row() + 1, 1 PROMPT " Single Bars (10)"
@ Row() + 1, 1 PROMPT " Grouped Bars (1)"
@ Row() + 1, 1 PROMPT " Four Regions (2) "
@ Row() + 1, 1 PROMPT " Pyramid (3) "
@ Row() + 1, 1 PROMPT " Single Bars (4) "
@ Row() + 1, 1 PROMPT " Donut (5) "
@ Row() + 1, 1 PROMPT " Stacked Bars (6) "
@ Row() + 1, 1 PROMPT " Grouped Bars (7) "
@ Row() + 1, 1 PROMPT " Single Bars (8) "
@ Row() + 1, 1 PROMPT " Pie (9) "
MENU TO nOpc
nTemp := 1
DO CASE
CASE LastKey() == K_ESC ; EXIT
CASE nOpc == nTemp++ ; Graphic10( oCrt1, oRMChart, 1 )
CASE nOpc == nTemp++ ; Graphic1( oCrt1, oRMChart, 1 )
CASE nOpc == nTemp++ ; Graphic2( oCrt1, oRMChart, 1 )
CASE nOpc == nTemp++ ; Graphic3( oCrt1, oRMChart, 1 )
CASE nOpc == nTemp++ ; Graphic4( oCrt1, oRmChart, 1 )
CASE nOpc == nTemp++ ; Graphic5( oCrt1, oRmChart, 1 )
CASE nOpc == nTemp++ ; Graphic6( oCrt1, oRmChart, 1 )
CASE nOpc == nTemp++ ; Graphic7( oCrt1, oRmChart, 1 )
CASE nOpc == nTemp++ ; Graphic8( oCrt1, oRmChart, 1 )
CASE nOpc == nTemp++ ; Graphic9( oCrt1, oRMChart, 1 )
CASE nOpc == nTemp // dummy
ENDCASE
ENDDO
RETURN NIL
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/


