RMChart
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RMChart
Vamos precisar de ajuda de quem conheça C e talvez GTWVG.
Tomara que isso também resolva uma pendência que eu tinha.
Porque se for a mesma coisa... um novo mundo vai se abrir.
Tomara que isso também resolva uma pendência que eu tinha.
Porque se for a mesma coisa... um novo mundo vai se abrir.
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,
Esse problema de sumir a tela só acontece com o harbour, a minigui funciona direito, provavelmente pelo fato da minigui ser 100% gui
Nota: não é somente com a rmchart que acontece o problema de sumir a tela
Esse problema de sumir a tela só acontece com o harbour, a minigui funciona direito, provavelmente pelo fato da minigui ser 100% gui
Nota: não é somente com a rmchart que acontece o problema de sumir a tela
►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
Nem queira saber dos meus testes.... rs
Revirei a GTWVG, mexi no activex.prg, reduzi linhas pra usar criação de janelas padrão...
E alterei a rotina de eventos contida em activex.prg
Um detector de chamadas!! .... rs
Ao redimensionar janela, a rotina recebe o evento 5, que deve ser o resize.
Ao mover a janela.... cadê... nenhum sinal de evento.
Pode ser bug, ou pode ser proposital, vamos aguardar a resposta.
Revirei a GTWVG, mexi no activex.prg, reduzi linhas pra usar criação de janelas padrão...
E alterei a rotina de eventos contida em activex.prg
Código: Selecionar todos
METHOD WvgActiveXControl:handleEvent( nEvent, aNM )
MsgExclamation( Transform( nEvent, "" ) )
Ao redimensionar janela, a rotina recebe o evento 5, que deve ser o resize.
Ao mover a janela.... cadê... nenhum sinal de evento.
Pode ser bug, ou pode ser proposital, vamos aguardar a resposta.
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,
Já que ao mover a janela dispara o evento 5 , então a janela tem que ser restaurada, será que com WIN_SC_RESTORE resolve?
wapi_SendMessage(hb_gtInfo( HB_GTI_WINHANDLE ), WM_SYSCOMMAND, WIN_SC_RESTORE, 0)
https://msdn.microsoft.com/en-us/librar ... 85%29.aspx
Já que ao mover a janela dispara o evento 5 , então a janela tem que ser restaurada, será que com WIN_SC_RESTORE resolve?
wapi_SendMessage(hb_gtInfo( HB_GTI_WINHANDLE ), WM_SYSCOMMAND, WIN_SC_RESTORE, 0)
https://msdn.microsoft.com/en-us/librar ... 85%29.aspx
►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
É justamente o contrário: Ao mover janela, na gtwvg não existe evento.
Não sei se é normal isso.
Não sei se é normal isso.
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
Apesar de eu ter baseado meu exemplo na GTWVG, ele está diferente.
DEMOWVG:
RMChart funciona corretamente, tanto no resize quanto no move.
Mas tem muita coisa complicada no mesmo exemplo, difícil identificar o mínimo necessário, que funcione.
O próprio DEMOWVG tem problemas nessa janela de activex, usando ou não o RMChart.
Nele são usados wvgDialog(), wvgCrt(), wvgDrawArea(), wvgActivex() além de wvgToolbar(), wvgTreeview(), wvgListBox(), wvgStatusbar(), etc.
Meu teste:
Baseado no exemplo da GTWVG, mas diferente.
A única coisa que não funcionou foi "mover janela", aonde o gráfico fica em branco.
Só usei a janela normal, e um wvgActivex().
A única idéia por enquanto é pegar o demowvg inteiro, e ir removendo o que não interessa, até chegar no RMChart isolado.
Anexo o demowvg com o rmchart funcionando até no "mover janela".
Lembrando que pode ser necessário usar o gerenciador de tarefas pra fechar o aplicativo, no final.
DEMOWVG:
RMChart funciona corretamente, tanto no resize quanto no move.
Mas tem muita coisa complicada no mesmo exemplo, difícil identificar o mínimo necessário, que funcione.
O próprio DEMOWVG tem problemas nessa janela de activex, usando ou não o RMChart.
Nele são usados wvgDialog(), wvgCrt(), wvgDrawArea(), wvgActivex() além de wvgToolbar(), wvgTreeview(), wvgListBox(), wvgStatusbar(), etc.
Meu teste:
Baseado no exemplo da GTWVG, mas diferente.
A única coisa que não funcionou foi "mover janela", aonde o gráfico fica em branco.
Só usei a janela normal, e um wvgActivex().
A única idéia por enquanto é pegar o demowvg inteiro, e ir removendo o que não interessa, até chegar no RMChart isolado.
Anexo o demowvg com o rmchart funcionando até no "mover janela".
Lembrando que pode ser necessário usar o gerenciador de tarefas pra fechar o aplicativo, no final.
- Anexos
-
demowvg.zip- (566.52 KiB) Baixado 304 vezes
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,
A janela que está funcionando +- com demowvg pelo que percebi é 100% gui deve ser a wvgDialog()
A janela que está funcionando +- com demowvg pelo que percebi é 100% gui deve ser a wvgDialog()
►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
O difícil é enxugar o fonte.
No momento, pra facilitar testes, ao invés do RMChart dá pra usar o internet explorer.
No momento, pra facilitar testes, ao invés do RMChart dá pra usar o internet explorer.
Código: Selecionar todos
#include "inkey.ch"
PROCEDURE Main
LOCAL oCom, cUrl := Pad( "www.github.com", 95 ), GetList := {}
SetMode(40,100)
CLS
DO WHILE .T.
@ 0, 0 GET cUrl PICTURE "@KX"
READ
IF LastKey() == K_ESC
EXIT
ENDIF
oCom := WvgActiveXControl():New( wvgSetAppWindow(), , { -1, 0 }, { -MaxRow(), -MaxCol() - 1 }, , .T. )
oCom:CLSID := "Shell.Explorer.2"
oCom:create()
IF HB_ISOBJECT( oCom )
oCom:Navigate( Trim( cUrl ) )
ENDIF
ENDDO
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
Não, não é solução, é só pra curiosidade mesmo.
Tem até exemplo de uso no xHarbour e Fivewin.
Não tinha reparado antes, mas agora que vi, chamou a atenção o fórum: Visual Basic
http://www.tech-archive.net/Archive/VB/ ... 00090.html
Tem até exemplo de uso no xHarbour e Fivewin.
Não tinha reparado antes, mas agora que vi, chamou a atenção o fórum: Visual Basic
http://www.tech-archive.net/Archive/VB/ ... 00090.html
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
Unir o útil ao agradável.
Levei um susto agora porque meu aplicativo estava lento.
Então acionei o GIT pra ver no que eu tinha mexido.
O git mostra tudo que foi alterado na pasta.
Com essa história de "caçar" algum evento pra atualizar a tela do RMChart, criei um log no disco de todos os eventos Windows.
Esqueci disso.
Se não fosse eu estar usando o GIT, ia demorar pra descobrir que esqueci de retirar isso.
Logo de cara, o arquivo de log, como sendo algo que não existia antes.
Vale a pena usar, a gente nunca sabe quando vai precisar dele.
Nota: estou usando pra todos os fontes de uma vez, não um controle por projeto.
Levei um susto agora porque meu aplicativo estava lento.
Então acionei o GIT pra ver no que eu tinha mexido.
O git mostra tudo que foi alterado na pasta.
Com essa história de "caçar" algum evento pra atualizar a tela do RMChart, criei um log no disco de todos os eventos Windows.
Esqueci disso.
Se não fosse eu estar usando o GIT, ia demorar pra descobrir que esqueci de retirar isso.
Logo de cara, o arquivo de log, como sendo algo que não existia antes.
Vale a pena usar, a gente nunca sabe quando vai precisar dele.
Nota: estou usando pra todos os fontes de uma vez, não um controle por projeto.
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
Até dei risada agora.
Fui olhar uns emails de erro que recebi, e olha o que encontrei
Também tinha esquecido disso.
É a vantagem de, ao invés de inventar nomes, usar nomes padrão conhecidos.
A única coisa que fiz foi usar o nome do arquivo onde são gravados erros.
Fica aí a dica, simples, mas útil.
O próprio aplicativo me avisando da meleca que eu fiz.... rs
Fui olhar uns emails de erro que recebi, e olha o que encontrei
Como usei o arquivo padrão do Harbour HB_OUT.LOG no registro de eventos, minha rotina de erros me enviou por email.... rsVerifique as instruções abaixo
Conforme o problema, o próprio responsável da empresa poderá resolvê-lo.
Se for problema no programa, uma nova versão estará disponível com a correção.
Se o email automático falhar, envie esta página por email à JPA.
--------------------------------------------------------------------------------
Não foi possível localizar informação em erros conhecidos
Horário : 09/05/16 19:55:34
--------------------------------------------------------------------------------
19:55:29 WVGCRT 10
19:55:29 WVGCRT 10
19:55:29 WVGCRT 10
19:55:29 WVGCRT 10
...
Também tinha esquecido disso.
É a vantagem de, ao invés de inventar nomes, usar nomes padrão conhecidos.
A única coisa que fiz foi usar o nome do arquivo onde são gravados erros.
Fica aí a dica, simples, mas útil.
O próprio aplicativo me avisando da meleca que eu fiz.... rs
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,
Usando a dll ao invés do activex
O único problema que eu não consegui resolver foi no AddBarSeries se colocar RMC_ADDBARSERIES dá erro, se colocar RMC_AddBarSeries não dá erro mas também não mostra as barras.
Notem que todas as funções estão em caixa alta, porque é assim que está assinado na dll, mas se colocar RMC_ADDBARSERIES com caixa alta vem o erro,
O Erro
Usando a dll ao invés do activex
O único problema que eu não consegui resolver foi no AddBarSeries se colocar RMC_ADDBARSERIES dá erro, se colocar RMC_AddBarSeries não dá erro mas também não mostra as barras.
Notem que todas as funções estão em caixa alta, porque é assim que está assinado na dll, mas se colocar RMC_ADDBARSERIES com caixa alta vem o erro,
Código: Selecionar todos
FUNCTION RmChart
nHandleDLL:=hb_LibLoad("rmchart.dll")
oCrt := WvgCrt():New( , , { -1, -1 }, { 50, MaxCol() - 6 }, , .T. )
oCrt:lModal := .T.
oCrt:icon := "demo.ico"
oCrt:create()
oCrt:resizable := .F.
cLegenda := "Entradas*Saidas*Mais Um"
cLabels := "Janeiro*Fevereiro*Março*Abril*Maio*Junho*Julho*Agosto*Setembro*Outubro*Novembro*Dezembro"
cTitulo := "Grafico de Teste"
aDados := { { 225.25, 100.00, 100.00, 150.00, 250.00, 300.00, 25.00, 75.00, 300.00, 200.00, 325.00, 300.00 } }
aDadosGraf:={}
cImagem := "" //"Paper.jpg"
cUnidade := "R$ "
cTextoVert := ""
nMax := 0
FOR cTrGra1:=1 TO LEN( aDados )
nMax := MAX( nMax, aMax( aDados[cTrGra1] ) )
FOR cTrGra2:=1 TO LEN( aDados[cTrGra1] )
IF cTrGra1 == 1
AADD( aDadosGraf, aDados[cTrGra1, cTrGra2] )
oData1 := aDados[cTrGra1,cTrGra2]
ELSEIF cTrGra1 == 2
oData2 := aDados[cTrGra1,cTrGra2]
ELSEIF cTrGra1 == 3
oData3 := aDados[cTrGra1,cTrGra2]
ENDIF
NEXT
NEXT
nMax := ROUND( ( INT( nMax/10 ) * 10 ) + 10 , 2 )
altd()
nRetVal :=hb_dynCall( { "RMC_CREATECHART", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
hb_gtInfo( HB_GTI_WINHANDLE ), ID_CHART, 0, 0, 770, 400, Azure, RMC_CTRLSTYLE3DLIGHT, .F., cImagem, "", 0, 0 )
nRetVal := hb_dynCall( {"RMC_ADDREGION", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
ID_CHART, 0, 0, 760, 400, "RmChart", .F. )
nRetVal := hb_dynCall( {"RMC_ADDCAPTION", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
ID_CHART, 1, cTitulo, Transparent, Red, 9, .T. )
nRetVal := hb_dynCall( {"RMC_ADDGRID", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
ID_CHART, 1, LightBlue, .F., 20, 20, 685, 330, RMC_BICOLOR_LABELAXIS )
nRetVal := hb_dynCall( {"RMC_ADDLABELAXIS", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
ID_CHART, 1, cLabels, 1, Len( aDados[1] ), RMC_LABELAXISBOTTOM, 8, Black, RMC_TEXTCENTER, Black, RMC_LINESTYLENONE, "" )
nRetVal := hb_dynCall( {"RMC_ADDDATAAXIS", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
ID_CHART, 1, RMC_DATAAXISRIGHT, 0.0, nMax, Len( aDados[1] ), 8, Black, Black, RMC_LINESTYLESOLID, 0, cUnidade, cTextoVert, "", RMC_TEXTCENTER )
nRetVal := hb_dynCall( {"RMC_ADDLEGEND", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
ID_CHART, 1, cLegenda, RMC_LEGEND_BOTTOM, Transparent, RMC_LEGENDNORECT, Red, 8, .T. )
//nResult (LONG) = RMC_AddBarSeries(
//ByVal nCtrlId (LONG),
//ByVal nRegion (LONG),
//Optional ByRef nFirstDataValue (DOUBLE),
//Optional ByVal nDataValuesCount (LONG),
//Optional ByVal nType (LONG),
//Optional ByVal nStyle (LONG),
//Optional ByVal nIsLucent (LONG),
//Optional Byval nColor (LONG),
//Optional ByVal nIsHorizontal (LONG),
//Optional ByVal nWhichDataAxis (LONG),
//Optional ByVal nValueLabelOn (LONG),
//Optional ByVal nPointsPerColumn (LONG),
//Optional ByVal nHatchMode (LONG)
FOR x:=1 TO LEN(aDadosGraf)
nRetVal := hb_dynCall( {"RMC_AddBarSeries", nHandleDLL, HB_DYN_CALLCONV_STDCALL },;
ID_CHART, 1, aDadosGraf[1], 12, RMC_BARGROUP, RMC_BAR_FLAT_GRADIENT2, .F., 0, .F., 1, RMC_VLABEL_ABSOLUTE, x, RMC_HATCHBRUSH_OFF )
NEXT
nRetVal:=hb_dynCall( { "RMC_DRAW", nHandleDLL, hb_bitOr( HB_DYN_CTYPE_LONG , HB_DYN_CALLCONV_STDCALL ) },;
ID_CHART)
Inkey(0)
oCrt:destroy()
hb_LibFree(nHandleDLL)
RETURN Nil
Código: Selecionar todos
Application Internal Error - D:\Harbour\h-RMChart\HARBOUR\demo.exe
Terminated at: 2016-05-10 09:57:46
Erro irrecuper vel 6005: Exception error:
Exception Code:C0000005 ACCESS_VIOLATION
Exception Address:0095DDE1
EAX:00000000 EBX:00000000 ECX:00000000 EDX:00000002
ESI:00000000 EDI:00000000 EBP:0028F820
CS:EIP:0023:0095DDE1 SS:ESP:002B:0028F784
DS:002B ES:002B FS:0053 GS:002B
Flags:00010246
Exception Parameters: 00000000 00000000
CS:EIP: DD 03 8B 5D 08 B8 01 00 00 00 03 C6 2B 43 18 8B
SS:ESP: 406C27FF 00000000 00000000 00000000 00000000 00000000 00000000 0000B009 00000000 00000000 0095DD5D FFFFFFFF 0028F958 00000000 FFFFFE80 009782C9
C stack:
EIP: EBP: Frame: OldEBP, RetAddr, Params...
0095DDE1 0028F820 0028F958 0091211F 0028F834 00000000 406C2800 00000000 01160208 406C2800 00000008 00000000
Modules:
00400000 002D9000 D:\Harbour\h-RMChart\HARBOUR\demo.exe
77D20000 0016F000 C:\WINDOWS\SYSTEM32\ntdll.dll
77A00000 00140000 C:\WINDOWS\SYSTEM32\KERNEL32.DLL
75EF0000 000D7000 C:\WINDOWS\SYSTEM32\KERNELBASE.dll
75B60000 0007C000 C:\WINDOWS\SYSTEM32\ADVAPI32.dll
72FA0000 00206000 C:\WINDOWS\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.9600.18006_none_a9ec6aab013aafee\COMCTL32.DLL
766A0000 0009B000 C:\WINDOWS\SYSTEM32\COMDLG32.DLL
75820000 0010F000 C:\WINDOWS\SYSTEM32\GDI32.dll
76560000 000C3000 C:\WINDOWS\SYSTEM32\msvcrt.dll
76020000 00129000 C:\WINDOWS\SYSTEM32\ole32.dll
764C0000 00095000 C:\WINDOWS\SYSTEM32\OLEAUT32.dll
76740000 012BC000 C:\WINDOWS\SYSTEM32\SHELL32.dll
75D90000 00153000 C:\WINDOWS\SYSTEM32\USER32.dll
72790000 00065000 C:\WINDOWS\SYSTEM32\WINSPOOL.DRV
75620000 00041000 C:\WINDOWS\SYSTEM32\sechost.dll
77B40000 000BA000 C:\WINDOWS\SYSTEM32\RPCRT4.dll
757D0000 00045000 C:\WINDOWS\SYSTEM32\SHLWAPI.dll
76150000 0017D000 C:\WINDOWS\SYSTEM32\combase.dll
75510000 0001E000 C:\WINDOWS\SYSTEM32\SspiCli.dll
75500000 0000A000 C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
74610000 0008B000 C:\WINDOWS\SYSTEM32\SHCORE.DLL
754A0000 00054000 C:\WINDOWS\SYSTEM32\bcryptPrimitives.dll
75FE0000 00027000 C:\WINDOWS\system32\IMM32.DLL
756B0000 00112000 C:\WINDOWS\SYSTEM32\MSCTF.dll
71180000 000ED000 C:\WINDOWS\SYSTEM32\UxTheme.dll
5DDF0000 0000E000 C:\Program Files\Acer\Acer Power Management\CBT_DLL.dll
6FEA0000 0001A000 C:\WINDOWS\SYSTEM32\dwmapi.dll
753D0000 00009000 C:\WINDOWS\SYSTEM32\kernel.appcore.dll
008D0000 000BA000 D:\Harbour\h-RMChart\HARBOUR\rmchart.dll
742B0000 00170000 C:\WINDOWS\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.9600.18123_none_dad9a2585bcb0fd8\gdiplus.dll
72800000 00006000 C:\WINDOWS\system32\msimg32.dll
64840000 00181000 C:\WINDOWS\SYSTEM32\DWrite.dll
Called from HB_DYNCALL(0)
Called from RMCHART(199) in DEMO.PRG
Called from CHART(118) in DEMO.PRG
Called from MAIN(24) in DEMO.PRG
------------------------------------------------------------------------
►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
Desse jeito, o problema de atualização de tela fica resolvido?
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
Sugestão, somente se o problema de tela estiver resolvido dessa forma.
Algo mais ou menos assim:
No uso:
Algo mais ou menos assim:
Código: Selecionar todos
CREATE CLASS RmChart
VAR hHandle
VAR hWnd
METHOD New()
METHOD Destroy() // não sei o nome pra destruir automático
METHOD ... cada um dos existentes na DLL
END CLASS
METHOD New( hWnd )
nHandle := hb_LibLoad(...)
RETURN SELF
METHOD AddBarSeries( ... )
RETURN hb_DynCall( ::hHandle, ::hWnd, ... )
METHOD Destroy()
hb_LibFree(...)
RETURN NIL
Código: Selecionar todos
oRmChar := RMChart():New( hWnd )
oRmChart:AddBarSeries( xxxxxxxxxxx )
...
oRmChart:Destroy() // se não for automático
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
Ah sim, o uso, veja se ajuda:
tem parâmetro BYREF, para o Harbour significa @variavel
Por isso é sempre bom criar uma rotina intermediária, pra não esquecer disso.
Código: Selecionar todos
Declare Function RMC_AddBarSeries Lib "RMCHART.DLL" Alias "RMC_ADDBARSERIES" ( _
ByVal nCtrlId As Long, _
ByVal nRegion As Long, _
Optional ByRef nFirstDataValue As Double, _
Optional ByVal nDataValuesCount As Long, _
Optional ByVal nType As BarSeriesType, _
Optional ByVal nStyle As BarSeriesStyle, _
Optional ByVal nIsLucent As Long, _
Optional ByVal nColor As RMC_Colors, _
Optional ByVal nIsHorizontal As Long, _
Optional ByVal nWhichDataAxis As Long, _
Optional ByVal nValueLabelOn As ValueLabels, _
Optional ByVal nPointsPerColumn As Long, _
Optional ByVal nHatchMode As Hatchmodes _
) As RMCError
Declare Function RMC_AddBarSeriesI Lib "RMCHART.DLL" Alias "RMC_ADDBARSERIESI" ( _
ByVal nCtrlId As Long, _
ByVal nRegion As Long, _
ByRef nFirstDataValue As Double, _
ByVal nDataValuesCount As Long, _
T As tRMC_BARSERIES _
) As RMCError
Por isso é sempre bom criar uma rotina intermediária, pra não esquecer disso.
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/
