C STRUCTURE
C STRUCTURE
buenas tardes
en xHarbour lo hago y funciona muy bien
#include "FiveWin.Ch"
#include "cstruct.ch"
typedef struct { CTYPE_DOUBLE nDouble[200] } DataStructD12
function testes()
LOCAL oData1 IS DataStructD12
etc.....
return nil
Harbour ahora da este error en el archivo cstruct.ch
#xcommand END C STRUCTURE [<!stru!>] => ; ;
__ClsSetModule( __ActiveStructure() ); ;
RETURN
Error: Unresolved external '_HB_FUN___CLSSETMODULE'
Alguien sabe cómo cambiar para que funcione correctamente?
Alguien sabe cómo cambiar para que funcione correctamente?
gracias
en xHarbour lo hago y funciona muy bien
#include "FiveWin.Ch"
#include "cstruct.ch"
typedef struct { CTYPE_DOUBLE nDouble[200] } DataStructD12
function testes()
LOCAL oData1 IS DataStructD12
etc.....
return nil
Harbour ahora da este error en el archivo cstruct.ch
#xcommand END C STRUCTURE [<!stru!>] => ; ;
__ClsSetModule( __ActiveStructure() ); ;
RETURN
Error: Unresolved external '_HB_FUN___CLSSETMODULE'
Alguien sabe cómo cambiar para que funcione correctamente?
Alguien sabe cómo cambiar para que funcione correctamente?
gracias
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: C STRUCTURE
Lo acabo de reportar en la lista de desarrollo de Harbour, a ver cual sería la forma correcta de reemplazar esa función:
https://groups.google.com/forum/?fromgr ... iUBBXPAOpc
https://groups.google.com/forum/?fromgr ... iUBBXPAOpc
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: C STRUCTURE
Problema solucionado:
No puedes usar cstruct.ch de xHarbour, sino el que proporciona Harbour:
https://github.com/harbour/core/blob/ma ... cstruct.ch
Con ese, funciona bien
No puedes usar cstruct.ch de xHarbour, sino el que proporciona Harbour:
https://github.com/harbour/core/blob/ma ... cstruct.ch
Con ese, funciona bien
Re: C STRUCTURE
Gracias Antonio, casi todo está funcionando, sólo la parte que no muestra los gráficos, creo que se debe a tActivex, al Harbour que se debe usar?
Utilizo RmChart para visualizar las gráficas.
Saludos
Utilizo RmChart para visualizar las gráficas.
Saludos
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: C STRUCTURE
Puedes proporcionar un PRG de ejemplo de como usas RmChart, para que podamos probarlo y ver que le ocurre ? gracias
Re: C STRUCTURE
Gracias, sigue el ejemplo que funciona con xHarbour
Code: Select all
#include "FiveWin.Ch"
#include "cstruct.ch"
#include "RMCHART.Ch"
#define DLL_OSAPI 0x20
typedef struct { CTYPE_DOUBLE nDouble[12] } DataStructD12
FUNCTION TesteGrafico()
LOCAL 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 } , { 220.00, 100.00, 125.00, 300.00, 150.00, 125.00, 85.00, 50.00, 285.00, 275.00, 295.00, 280.00 }, { 125.25, 100.00, 100.00, 150.00, 250.00, 300.00, 25.00, 75.00, 300.00, 200.00, 325.00, 300.00 } }
LOCAL cLegenda := "Entradas*Saidas*Mais Um"
LOCAL cLabels := "Janeiro*Fevereiro*Março*Abril*Maio*Junho*Julho*Agosto*Setembro*Outubro*Novembro*Dezembro"
LOCAL cTitulo := "Grafico de Teste Grafico"
PRIVATE hDll := DllLoad("rmchart.dll")
DEFINE DIALOG oDlgGra1 FROM 0,0 TO 400,770 PIXEL FONT oClassVar:oFntB COLOR oClassVar:nCorDlgT,oClassVar:nCorDlgJ
oDlgGra1:lHelpIcon := .F.
oChart := TActiveX():New( oDlgGra1, "RMChart.RMChartX", 0, 0, 0, 0 )
ACTIVATE DIALOG oDlgGra1 CENTER ON INIT GeraRmc( oDlgGra1, oChart, aDados, cTitulo, cLabels, cLegenda )
DllUnload( hDLL )
RETURN NIL
FUNCTION GeraRmc( oDlgGra, oChart, aDados, cTitulo, cLabels, cLegenda )
LOCAL nRetVal := nMax := 0
LOCAL cImagem := "" //"C:\SIG32new\Bitmaps\Paper.jpg"
LOCAL cUnidade := "R$ "
LOCAL cTextoVert := ""
LOCAL aDadosGraf:={}
LOCAL oData1 IS DataStructD12
LOCAL oData2 IS DataStructD12
LOCAL oData3 IS DataStructD12
FOR cTrGra1:=1 TO LEN( aDados )
nMax := MAX( nMax, Amax( aDados[cTrGra1] ) )
FOR cTrGra2:=1 TO LEN( aDados[cTrGra1] )
IF cTrGra1 == 1
oData1:nDouble[cTrGra2] := aDados[cTrGra1,cTrGra2]
ELSEIF cTrGra1 == 2
oData2:nDouble[cTrGra2] := aDados[cTrGra1,cTrGra2]
ELSEIF cTrGra1 == 3
oData3:nDouble[cTrGra2] := aDados[cTrGra1,cTrGra2]
ENDIF
NEXT
IF cTrGra1 == 1
AADD( aDadosGraf, oData1[1] )
ELSEIF cTrGra1 == 2
AADD( aDadosGraf, oData2[1] )
ELSEIF cTrGra1 == 3
AADD( aDadosGraf, oData3[1] )
ENDIF
NEXT
nMax := ROUND( ( INT( nMax/10 ) * 10 ) + 10 , 2 )
nRetVal := DllCall(hDll,DLL_OSAPI,"RMC_CREATECHART", oDlgGra:hWnd, 1001, 0, 0, 770, 400, ColorAzure, RMC_CTRLSTYLE3DLIGHT, .F., cImagem, "", 0, 0 )
nRetVal := DllCall(hDll,DLL_OSAPI,"RMC_ADDREGION", 1001, 0, 0, 760, 400, "Sig SoftWare", .F. )
nRetVal := DllCall(hDll,DLL_OSAPI,"RMC_ADDCAPTION", 1001, 1, cTitulo, ColorTransparent, ColorRed, 9, .T. )
nRetVal := DllCall(hDll,DLL_OSAPI,"RMC_ADDGRID", 1001, 1, ColorLightBlue, .F., 20, 20, 685, 330, RMC_BICOLOR_LABELAXIS )
nRetVal := DllCall(hDll,DLL_OSAPI,"RMC_ADDLABELAXIS", 1001, 1, cLabels, 1, LEN( aDados[1] ), RMC_LABELAXISBOTTOM, 8, ColorBlack, RMC_TEXTCENTER, ColorBlack, RMC_LINESTYLENONE, "" )
nRetVal := DllCall(hDll,DLL_OSAPI,"RMC_ADDDATAAXIS", 1001, 1, RMC_DATAAXISRIGHT, 0.0, nMax, LEN( aDados[1] ), 8, ColorBlack, ColorBlack, RMC_LINESTYLESOLID, 0, cUnidade, cTextoVert, "", RMC_TEXTCENTER )
FOR x:=1 TO LEN(aDadosGraf)
nRetVal := DllCall(hDll,DLL_OSAPI,"RMC_ADDBARSERIES", 1001, 1, aDadosGraf[x], 12, RMC_BARGROUP, RMC_BAR_FLAT_GRADIENT2, .F., 0, .F., 1, RMC_VLABEL_NONE, x, RMC_HATCHBRUSH_ONPRINTING )
NEXT
nRetVal := DllCall(hDll,DLL_OSAPI,"RMC_ADDLEGEND", 1001, 1, cLegenda, RMC_LEGEND_BOTTOM, ColorTransparent, RMC_LEGENDNORECT, ColorRed, 8, .T. )
nRetVal := DllCall(hDll,DLL_OSAPI,"RMC_DRAW", 1001 )
RETURN NIL
///////////////////////////////////////////////////////////////////////////////////////
// //
///////////////////////////////////////////////////////////////////////////////////////
FUNCTION ImprimeGrafico( oDlgGra )
nRetVal := DllCall(hDll,DLL_OSAPI,"RMC_DRAW2PRINTER", 1001, oDlgGra:hWnd, 0, 0, 0, 0, RMC_EMF )
?nRetVal
RETURN NIL
////////////////////////////DADOS DA FUNCAO////////////////////////////////////////////
// NOME : aMax //
// SINTESE : Retornar o maior valor de um vetor //
// PARAMETROS : <1> aVetor //
// <2> nElemento (para vetores multimensionais) //
// RETORNO : xMaior elemento do vetor //
///////////////////////////////////////////////////////////////////////////////////////
function aMax( aVetor, nElem )
local aNovoVet
local xMaxElem
DEFAULT nElem:=0
aNovoVet:=aclone( aVetor )
if nElem=0
aNovoVet:=asort( aNovoVet )
xMaxElem:=aNovoVet[len(aNovoVet)]
else
aNovoVet:=aasort( aNovoVet, nElem )
xMaxElem:=aNovoVet[nElem, len(aNovoVet)]
endif
return xMaxElem
////////////////////////////DADOS DA FUNCAO////////////////////////////////////////////
// NOME : AaSort //
// FINALIDADE : ordenar os elementos de um vetor muldimensional //
// PARAMETROS : <1> aVetor a ser ordenado //
// [2] nElemento do vetor a ser ordenado (default=1) //
// [3] cOrdem Crescente ou Decrescente (default='C') //
// RETORNO : aVetor ordenado //
///////////////////////////////////////////////////////////////////////////////////////
function AaSort( aVetor, nElem, cOrdem )
local aRetorno, x, y
DEFAULT nElem:=1
DEFAULT cOrdem:='C'
if cOrdem='C'
aRetorno:= asort( aVetor,,, { |x, y| x[nElem] < y[nElem] } )
else
aRetorno:= asort( aVetor,,, { |x, y| x[nElem] > y[nElem] } )
endif
return aRetorno
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: C STRUCTURE
Existe una versión demo de "rmchart.dll" ?
Re: C STRUCTURE
Last edited by aferra on Wed Mar 20, 2013 8:09 pm, edited 2 times in total.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: C STRUCTURE
Lo siento, pero no te proporcionaré más soporte técnico hasta que no elimines los ficheros ilegales que tienes en tu cuenta de 4shared...
Sorry, but I will not provide you any further tech support until you remove all the illegal files that you keep on your 4shared account...
Sorry, but I will not provide you any further tech support until you remove all the illegal files that you keep on your 4shared account...
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: C STRUCTURE
Already reported to 4shared and removed accordingly:
Hello,
Thank you for letting us know. We have deactivated the links to the illegal files.
If you know any other illegal use of our service, please let us know. We will do
our best to remove the files as soon as possible.
We appreciate your desire to make our service better. Thank you.
Best regards,
Vadim
support@4shared.com
Re: C STRUCTURE
http://www.4shared.com/rar/iktULs11/RmkChart_42.html
esse é o arquivo
esse é o arquivo
Re: C STRUCTURE
Olá,
Voltando ao assunto do rmchart, com base ao exemplo do aferra, a minha duvida é de como exibir todos os dados de todos os 12 meses?
Consegui portar o código para o harbour.
Voltando ao assunto do rmchart, com base ao exemplo do aferra, a minha duvida é de como exibir todos os dados de todos os 12 meses?
Consegui portar o código para o harbour.