Pessoal,
Sou novo em HwGui, estou apenas começando a mexer nisso.
Preciso de ajuda para aprender a fazer um gráfico bem simples, com apenas dois elementos (data X cotação). Pode ser com uma linha variável, ou com colunas X/Y. No anexo tem um exemplo, mas este foi feito em PHP. Preciso fazer algo semelhante em HwGui.
Já pesquisei no fórum, mas não consegui uma solução.
Alguém pode me ajudar?
Gráfico simples em HwGui
Moderador: Moderadores
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Gráfico simples em HwGui
Olá!
Na pasta Samples\Graph da HwGUI tem o exemplo de código reproduzido abaixo:
Espero que ajude.
Na pasta Samples\Graph da HwGUI tem o exemplo de código reproduzido abaixo:
Código: Selecionar todos
#include "windows.ch"
#include "guilib.ch"
Function Main
Local oMainWindow
INIT WINDOW oMainWindow MAIN TITLE "Example" COLOR COLOR_3DLIGHT ;
AT 200,0 SIZE 400,100
MENU OF oMainWindow
MENUITEM "&Exit" ACTION EndWindow()
MENUITEM "&Graph1" ACTION Graph1()
MENUITEM "&Graph2" ACTION Graph2()
MENUITEM "&Graph3" ACTION Graph3()
ENDMENU
ACTIVATE WINDOW oMainWindow
Return nil
Static Function Graph1
Local oModDlg, oFont := HFont():Add( "MS Sans Serif",0,-13 ), oGraph
Local i, aGraph[1]
aGraph[1] := {}
FOR i := -40 TO 40
Aadd( aGraph[1], { i, hwg_cos(i/10) } )
NEXT
INIT DIALOG oModDlg CLIPPER TITLE "Graph" ;
AT 210,10 SIZE 300,300 ;
FONT oFont
@ 50,30 GRAPH oGraph DATA aGraph SIZE 200,100 COLOR 65280
// oGraph:oPen := HPen():Add( PS_SOLID,2,oGraph:tcolor )
@ 90,250 BUTTON "Close" ;
SIZE 120,30 ;
ON CLICK {||EndDialog()}
ACTIVATE DIALOG oModDlg
Return Nil
Static Function Graph2
Local oModDlg, oFont := HFont():Add( "MS Sans Serif",0,-13 ), oGraph
Local i, aGraph[1]
aGraph[1] := {}
FOR i := 1 TO 6
Aadd( aGraph[1], { "",i*i } )
NEXT
INIT DIALOG oModDlg CLIPPER TITLE "Graph" ;
AT 210,10 SIZE 300,300 ;
FONT oFont
@ 50,30 GRAPH oGraph DATA aGraph SIZE 200,200 COLOR 65280
oGraph:nType := 2
@ 90,250 BUTTON "Close" ;
SIZE 120,30 ;
ON CLICK {||EndDialog()}
ACTIVATE DIALOG oModDlg
Return Nil
Static Function Graph3
Local oModDlg, oFont := HFont():Add( "MS Sans Serif",0,-13 ), oGraph
Local i, aGraph[1]
aGraph[1] := {}
FOR i := 1 TO 6
Aadd( aGraph[1], i*i )
NEXT
INIT DIALOG oModDlg CLIPPER TITLE "Graph" ;
AT 210,10 SIZE 300,300 ;
FONT oFont
/*
@ 50,30 GRAPH oGraph DATA aGraph SIZE 200,200 COLOR 65280
oGraph:nType := 3
@ 90,250 BUTTON "Close" ;
SIZE 120,30 ;
ON CLICK {||EndDialog()}
*/
ACTIVATE DIALOG oModDlg
Return Nil[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
Gráfico simples em HwGui
Muito obrigado. Vou estudar os exemplos para colocar no meu sistema.
Inacio de Carvalho Neto
Gráfico simples em HwGui
Sabe me informar se, no Graph1, a aGraph[1] só aceita números? Eu precisaria colocar data e número.
Sabe me dizer se tem como colocar legenda dos dois lados do gráfico? Quero dizer, colocar a data e o número em cada dado.
Estou obtendo uns resultados estranhos nos testes que estou fazendo. Veja, por exemplo:
Está resultando a imagem do anexo.
Sabe me dizer se tem como colocar legenda dos dois lados do gráfico? Quero dizer, colocar a data e o número em cada dado.
Estou obtendo uns resultados estranhos nos testes que estou fazendo. Veja, por exemplo:
Código: Selecionar todos
Aadd( aGraph[1], { day(date()-6), 5 } )
Aadd( aGraph[1], { day(date()-5), 6 } )
Aadd( aGraph[1], { day(date()-4), 7 } )
Aadd( aGraph[1], { day(date()-3), 8 } )
Aadd( aGraph[1], { day(date()-2), 9 } )
Aadd( aGraph[1], { day(date()-1), 10 } )
Aadd( aGraph[1], { day(date()), 11 } )
- Anexos
-
- tela.png (7.35 KiB) Exibido 822 vezes
Inacio de Carvalho Neto
