Usando dois gráficos (DRAW GRAPH) no mesmo Form

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Usando dois gráficos (DRAW GRAPH) no mesmo Form

Mensagem por NiltonGM »

Amigos,
Estou usando dois gráficos no mesmo Form, porem ao adicionar o segundo gráfico, o primeiro gráfico some os textos como Título, Valores, ficando apenas as barras. Se eu remover o segundo gráfico, então o primeiro volta ao normal. O que pode ser? Deixei espaço suficiente entre eles. Veja o código e a imagem.

Código: Selecionar todos

Procedure showGrafico_ctasReceber()

		//ERASE WINDOW finanGraficos  /* Essa linha ERASE, tanto faz comentada ou não, apenas pisca o gráfico, não entendi porque dela. */

		/* Primeiro gráfico - a esquerda */

		DRAW GRAPH ;
		IN WINDOW finanGraficos ;
		AT 180,10 ;
		TO 500,490 ;
		TITLE "Valores gerais" ;
		TYPE BARS ;
		SERIES fiGp_valoresGeral ;
		YVALUES {} ;
		DEPTH 15 ;
		BARWIDTH 15 ;
		HVALUES 1 ;
		SERIENAMES {"Receber","Pagar"} ;
		COLORS { {128,128,255}, {255,102, 10} } ;
		3DVIEW ;
		SHOWGRID ;
		SHOWXVALUES ;
		SHOWYVALUES ;
		SHOWLEGENDS ;
		NOBORDER

		/* Segundo gráfico - a direita */

		DRAW GRAPH ;
		IN WINDOW finanGraficos ;
		AT 180,560 ;
		TO 500,1040;
		TITLE "Valores por período" ;
		TYPE BARS ;
		SERIES fiGp_valoresPerio ;
		YVALUES {} ;
		DEPTH 15 ;
		BARWIDTH 15 ;
		HVALUES 1 ;
		SERIENAMES {"Receber","Pagar"} ;
		COLORS { {128,128,255}, {255,102, 10} } ;
		3DVIEW ;
		SHOWGRID ;
		SHOWXVALUES ;
		SHOWYVALUES ;
		SHOWLEGENDS ;
		NOBORDER

Return
finanGraph.png
Nilton Medeiros
nilton@sistrom.com.br
Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Usando dois gráficos (DRAW GRAPH) no mesmo Form

Mensagem por NiltonGM »

Resolvi o problema usando o "GRAPH BITMAP" que é bem semelhante e não dá problemas, acredito que o "DRAW GRAPH" esteja com "pau" e precisa de revisão, mas infelizmente nosso amigo Dr. Claudio saiu do grupo de releases do HMG.
Nilton Medeiros
nilton@sistrom.com.br
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Usando dois gráficos (DRAW GRAPH) no mesmo Form

Mensagem por JoséQuintas »

Pelo nome: Graph Bitmap, a impressão é de que gera um bitmap com a imagem do gráfico.

Se DrawGraph usa a área total do controle, a saída seria criar dois controles no form, um pra cada gráfico.
Pelo menos teoricamente seria isso, na prática tem a ver com a LIB, e o que a função faz.
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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/
Avatar do usuário
NiltonGM
Usuário Nível 3
Usuário Nível 3
Mensagens: 397
Registrado em: 05 Jun 2014 23:47
Localização: Caieiras/SP

Usando dois gráficos (DRAW GRAPH) no mesmo Form

Mensagem por NiltonGM »

É isso mesmo Zéh, ele gera e salva se vc quiser uma imagem do gráfico em BMP, JPG, PNG...

Código: Selecionar todos

PROCEDURE ProcSaveGraph()
LOCAL cFileName
LOCAL hBitmap := Form_1.Image_1.HBITMAP   // Gets the value of hBitmap from the IMAGE control
   IF hBitmap <> 0 .AND. Form_1.GraphType.VALUE > 0
      cFileName := "Graph_" + Form_1.GraphType.ITEM( Form_1.GraphType.VALUE ) + IIF( Form_1.Enable3D.VALUE, "3D", "2D") + ".PNG"
      BT_BitmapSaveFile( hBitmap, cFileName, BT_FILEFORMAT_PNG )
      MsgInfo( "Save as: " + cFileName )
   ENDIF
RETURN
Nilton Medeiros
nilton@sistrom.com.br
Responder