When building my application ( Microsoft Visual Studio most recent version, FWH most recent version ). I get the following errors:
hbct.lib(trig.obj) : error LNK2005: _HB_FUN_ACOS already defined in g_server.obj
hbct.lib(trig.obj) : error LNK2005: _HB_FUN_ASIN already defined in g_server.obj
hbct.lib(trig.obj) : error LNK2005: _HB_FUN_COS already defined in g_server.obj
hbct.lib(trig.obj) : error LNK2005: _HB_FUN_COT already defined in g_server.obj
hbct.lib(trig.obj) : error LNK2005: _HB_FUN_PI already defined in g_server.obj
hbct.lib(trig.obj) : error LNK2005: _HB_FUN_SIN already defined in g_server.obj
hbct.lib(trig.obj) : error LNK2005: _HB_FUN_TAN already defined in g_server.obj
aMLS11.exe : fatal error LNK1169: one or more multiply defined symbols found
This is new to this version and has not surfaced for the years I have been assembling this program.
↧
LINK ERROR: 15.09
↧
harbour v1.x -> v.3x Error
hi,
i have a old harbour v1.x Source Code and try to run it under v3.x and got these Error
[quote:1xuzz0tz]
----------------------------------------------------------------------------------------------------
Project [ HbXbase ] Launch [ Yes ] Rebuild [ Yes ] Started [ 08:58:35 ]
----------------------------------------------------------------------------------------------------
Batch File Exists => R:\Temp\s5bwew.bat
Batch File Contents =>
C:\harbour\bin\hbmk2.exe E:\harbour\CAL\HbXbase.hbp -q -trace -info -lang=en -width=512 -rebuild
Command => C:\WINDOWS\system32\cmd.exe
Arguments => /C R:\Temp\s5bwew.bat
----------------------------------------------------------------------------------------------------
CurDir() => Users\a\Desktop Starting in => E:\harbour\CAL\
E:\harbour\CAL>C:\harbour\bin\hbmk2.exe E:\harbour\CAL\HbXbase.hbp -q -trace -info -lang=en -width=512 -rebuild
hbmk2: Autodetected platform: win
hbmk2: Autodetected C compiler: bcc
hbmk2: Using Harbour: C:\harbour\bin C:\harbour\include C:\harbour\lib\win\bcc C:\harbour\bin
hbmk2: Using C compiler: C:\bcc55\bin\bcc32.exe
hbmk2: Processing local make script: hbmk.hbm
hbmk2: Processing: hbxpp.hbc
hbmk2: Processing: gtwvg.hbc
hbmk2: Processing: C:\harbour\contrib\hbwin\hbwin.hbc
hbmk2: Compiling Harbour sources...
hbmk2: Harbour compiler command (embedded):
(C:\harbour\bin\harbour.exe) -n2 E:\harbour\CAL\HBXBASE.PRG -w1 -es2 -q -o.hbmk\win\bcc\ -iC:\bcc55\Include -iC:\harbour\include -ic:\hmg.3.4.4\HARBOUR\contrib\hbxpp -ic:\hmg.3.4.4\HARBOUR\contrib\gtwvg -iC:\harbour\contrib\hbwin -undef:.ARCH. -D__PLATFORM__WINDOWS -D__LITTLE_ENDIAN__ -D__ARCH32BIT__
Harbour 3.0.0 (Rev. 16951)
Copyright (c) 1999-2011,
hbmk2: Compiling...
hbmk2: C/C++ compiler command:
bcc32.exe -c -q -d -6 -O2 -OS -Ov -Oi -Oc -tW -tWM -w -Q -w-sig- -n.hbmk\win\bcc -IC:\bcc55\Include -IC:\harbour\include -Ic:\hmg.3.4.4\HARBOUR\contrib\hbxpp -Ic:\hmg.3.4.4\HARBOUR\contrib\gtwvg -IC:\harbour\contrib\hbwin .hbmk\win\bcc\HBXBASE.c .hbmk\win\bcc\_hbmkaut_HBXBASE.c
.hbmk\win\bcc\HBXBASE.c:
Warning W8065 E:\\harbour\\CAL\\HBXBASE.PRG 196: Call to function 'hb_itemGetDD' with no prototype in function HB_FUN_DATEASDOUBLE
.hbmk\win\bcc\_hbmkaut_HBXBASE.c:
hbmk2: Linking... HBXBASE.exe
hbmk2: Linker command:
ilink32.exe @R:\Temp\5rn3ik.lnk
hbmk2: Linker script:
-Gn -Tpe -LC:\bcc55\Lib;C:\bcc55\Lib\PSDK;C:\harbour\lib\win\bcc;C:\harbour\bin -aa c0w32.obj .hbmk\win\bcc\HBXBASE.obj .hbmk\win\bcc\_hbmkaut_HBXBASE.obj, HBXBASE.exe, nul, gtwvg.lib hbxpp.lib hbwin.lib png.lib hbextern.lib hbdebug.lib hbvmmt.lib hbrtl.lib hblang.lib hbcpage.lib gtcgi.lib gtpca.lib gtstd.lib gtwin.lib gtwvt.lib gtgui.lib hbrdd.lib hbuddall.lib hbusrrdd.lib rddntx.lib rddcdx.lib rddnsx.lib rddfpt.lib hbrdd.lib hbhsx.lib hbsix.lib hbmacro.lib hbcplr.lib hbpp.lib hbcommon.lib kernel32.lib user32.lib gdi32.lib advapi32.lib ws2_32.lib winspool.lib comctl32.lib comdlg32.lib shell32.lib uuid.lib ole32.lib oleaut32.lib mpr.lib winmm.lib mapi32.lib imm32.lib msimg32.lib wininet.lib hbpcre.lib hbzlib.lib cw32mt.lib import32.lib, ,
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_hb_itemGetDD' referenced from E:\HARBOUR\CAL\.HBMK\WIN\BCC\HBXBASE.OBJ
Error: Unresolved external '_HB_FUN_HB_TOOUTDEBUG' referenced from E:\HARBOUR\CAL\.HBMK\WIN\BCC\HBXBASE.OBJ
Error: Unresolved external '_HB_FUN_WIN_DESTROYMENU' referenced from E:\HARBOUR\CAL\.HBMK\WIN\BCC\HBXBASE.OBJ
Error: Unresolved external '_HB_FUN_OLERELEASEOBJECT' referenced from E:\HARBOUR\CAL\.HBMK\WIN\BCC\HBXBASE.OBJ
Error: Unresolved external '_HB_FUN_WIN_GETDESKTOPWINDOW' referenced from E:\HARBOUR\CAL\.HBMK\WIN\BCC\HBXBASE.OBJ
Error: Unresolved external '_HB_FUN_SECTOTIME' referenced from E:\HARBOUR\CAL\.HBMK\WIN\BCC\HBXBASE.OBJ
Error: Unresolved external '_HB_FUN_TIMETOSEC' referenced from E:\HARBOUR\CAL\.HBMK\WIN\BCC\HBXBASE.OBJ
Error: Unresolved external '_HB_FUN_WIN_MESSAGEBOX' referenced from E:\HARBOUR\CAL\.HBMK\WIN\BCC\HBXBASE.OBJ
Error: Unresolved external '_HB_FUN_XHB_LIB' referenced from E:\HARBOUR\CAL\.HBMK\WIN\BCC\HBXBASE.OBJ
hbmk2: Error: Running linker. 2
ilink32.exe @R:\Temp\5rn3ik.lnk
----------------------------------------------------------------------------------------------------
Exit Code [ 7 ] Exit Status [ 0 ] Finished at [ 08:58:36 ] Done in [ 1.30 Secs ]
----------------------------------------------------------------------------------------------------
Detected executable => E:\harbour\CAL\HBXBASE.exe
Sorry, cannot launch project because of errors...[/quote:1xuzz0tz]
these Error are from "internal" harbour function which Pritpal Bedi use
[code=fw:1xuzz0tz][/code:1xuzz0tz]
[code=fw:1xuzz0tz][/code:1xuzz0tz]
i have no Idea how to get it work under harbour v3.x
can someone help me please to get that Sample working.
↧
↧
Pritpal, HBIDE developer, assists us to use it with FWH
hi,
thx for Answer.
i'm a harhour Newbie so my Problem is "just" to compile/link my Xbase++ Source.
i want to learn Syntax of hbmk2.exe, *.hbM, *.hbP, *.hbC and how to set Environment.
i have try a lot of IDE / Editor since year but i still use my 16 Bit ETP Editor which i bought when start with Clipper S87.
as i say i do not like Mouse and i do not need "Intelligence", just F5 to compile/link and as Debugger/Editor
---
i meet Pritpal Bedi 2009 when work with Xbase++ and Codejock ActiveX Calender.
he point me to harbour and GTWVG
while Pritpal Bedi was Xbase++ User before Syntax of GTWVG is 99% compatible.
i got a hole GTWVG Contribution include "Per-Config" xMate to start.
HbIDE have same Design as xMate so it was no Problem to use *.ENV File for right Environment.
---
Those Error Message are not while using HbIDE, it is IMHO the difference of harbour v1.x vs. v3.x
i will open a new Thread and hope somebody can help me to get that old Sample working under harbour v3.x
[quote="Uwe.Diemer":3mmzh7kc]why you dont include it with preconfiged Files for the Std Fwh Installation[/quote:3mmzh7kc]i will ... but this is the next Step.
i like to learn more about how to config files rather using them and which Environment Setting are need
i have found some *.BAT Files and i start it. after that i found new Entry in my Environment
[quote:3mmzh7kc]
set bcdir=c:\bcc7
set FWDIR=d:\fwh
set fwh=d:\fwh
set GT=gtgui
set HBDIR=c:\harbour
set hdir=c:\harbour
set hdirl=c:\harbour\lib
set HB_BIN_INSTALL=
set HB_LIB_INSTALL=
set HB_INC_INSTALL=
set HB_ARCHITECTURE=win
set HB_COMPILER=bcc32
set HB_USER_LIBS=gtwvg.lib hbwin.lib
set HB_GUI=yes
[/quote:3mmzh7kc]so
[code=fw:3mmzh7kc][/code:3mmzh7kc]
like
[code=fw:3mmzh7kc][/code:3mmzh7kc]
seems the same
are HB_ for all Contribution
↧
Error en Posición de ComboBox
Hola Cristobal
Disculpa y muchas gracias por aclararme tu nombre.
Muy agradecido por esta y toda la ayuda que me brindas.
Muchos Saludos
Antonio.
↧
Source code editor based on xBrowse
Dear Otto,
Could you provide some screenshots or a video ? thanks> small test program
Could we review it ?
↧
↧
Pritpal, HBIDE developer, assists us to use it with FWH
hi Antonio,
[quote="Antonio Linares":2655atfn]HB_... are some settings required by hbmk2 and Harbour[/quote:2655atfn]
thx for Answer.
does FW have more than FWDIR / fwh for Environment
i did not found under fwh\manual\
↧
harbour v1.x -> v.3x Error
[quote="Antonio Linares":19wd2t2m]Please provide complete HBXBASE.prg source code so we can help you to fix it, thanks[/quote:19wd2t2m]Ok, i will prepare a hole Demo.
↧
exe windows on tablet
[url:3cyet6fb]https://techonation.com/best-windows-emulator-for-android/[/url:3cyet6fb]
↧
New FTDN September/Septiembre 2019 (FWH 19.09)
Julio/Agosto/Septiembre 2019
============================
* TDataRow (FW_Record):
- Mientras se lee ADO, campos memo con valores nulos. son leidos como
NIL. Ahora está corregido, son leidos como "".
- Nuevo DATA bOnRead: Si se asigna, el bloque de código es ejecutado con
Self como parámetro poco después de que los datos sean cargados.
- Cuando uno de los campos es una matriz, el método Modified() estaba
devolviendo .T. siempre. Corregido.
* FWMariaDBConnection:
- Nuevo método InTransaction() --> .T. / .F.
Indica si una transacción está en curso. Es deseable comprobar esto
antes de comenzar una nueva transacción.
Es compatible con MariaDB y MySQL anteriores y posteriores a la versión 8.0
- Mejorado el método BeginTransaction() --> .T. / .F.
Este método inicia una nueva transacción sólo si no hay una transacción en
curso. Nos devuelve .T. o .F. en función si una nueva transacción ha podido
ser comenzada.
- Soporte para SAVEPOINT (transacciones anidadas). Esta característica está
disponible con MariaDB y MySql versión 5.0.3 y versiones superiores.
Nuevos métodos:
SavePoint( cSavePt )
RollBack( cSavePt )
CommitTransaction( cSavePt )
- Mejorado el método SaveToDBF().
En el caso de una conexión no UTF al servidor, los campos con el conjunto de caracteres
UTF8 se guardan en una longitud de campo menor y los valores se truncan.
En caso de conexión UTF, los campos con no UTF8 (por ejemplo, Latin1) también se crean
con 3 veces la longitud requerida.
Corregido. Los campos ahora se crean con una longitud que coincide con el juego de
caracteres del campo.
viewtopic.php?f=3&t=37513&p=224462#p224462
- Nuevo método MainTable( cSql ) --> cTableName
Devuelve el nombre de la tabla principal de una instrucción SQL usando
varias tablas.
- Mejorado el método Execute().
Llamando a Execute() sin parámetros después de llamas a Execute( cSql ) devuelve
la estructura d la tabla.
- El método Explain(cSql, aParams) no era compatible con las nuevas versiones de
MySql 8.0 y superiores. Ahora este método es compatible con versiones antiguas y nuevas.
- Al intentar una conexión, sql_mode se establece en PAD_CHAR_TO_FULL_LENGTH.
Se informa que algunas versiones anteriores del MySQL no aceptan esta configuración.
En tales casos, esta configuración se realiza sólo si no hay error.
- Nueva función FWMARIA_SET_PAD_CHAR_TO_FULL_LENGTH( lSet ).
Para evitar establecer sql_mode en SET_PAD_CHAR_TO_FULL_LENGTH.
viewtopic.php?f=6&t=37663
* FWMariaDB RowSet:
- Los nuevos métodos recientemente añadidos First(), Last() como sinónimos
de GoTop() y GoBottom() están en conflicto con algunos nombres de campo
en algunas tablas. Estos métodos ahora son descartados.
- Método Eval( bAction, [bFor], [bWhile], [nNext], [nRecord], [lRest] )
Todos los bloques de código son evaluados con Self como parámetro.
el puntero al registro es restaurado después de la ejecución.
- Después de una consulta, si el SQL no contiene la cláusula "ordenar por",
el orden de clasificación existente se restaurará sólo si el orden está
sólo en un campo. Ahora el orden se restablece incluso en la clasificación
de campos múltiples asc/desc.
* Nuevo: FWMariaRowset
BATCHMODE/Modo por lotes
En el modo por lotes, todas las ediciones, anexos y eliminaciones se retienen
sólo en la memoria y no se escribe nada en la base de datos, hasta que todos
los cambios se escriben en una llamada a SaveBatch ()
- Método SetBatchMode( lSet ) --> nuevo modo por lotes
- Método SaveBatch() --> lSuccess
Guarda todos los cambios (ediciones, añadidos, eliminaciones) en la base de datos.
Los cambios se guardan en una transacción y, por lo tanto, se guardan todos los
cambios o ninguno. Si los cambios se cambian con éxito, el conjunto de filas se
actualiza con ReQuery(). De lo contrario, se muestra el error y los
cambios se dejan para que el usuario haga más cambios y los guarde.
- Método CancelBatch():
Descarta todos los cambios realizados en el modo por lotes y el conjunto de filas
se actualiza con ReQuery().
- Método IsBatchEdited() --> lYesNo
Devuelve .T. /.F. en función de si se han realizado modificaciones/añadidos/eliminaciones
en el modo por lotes que aún no se han escrito en la base de datos
* SAVING WORK AND RESTORING/Grabando y restaurando
- En cualquier momento (en casos como la pérdida de conexión), el trabajo no guardado
se puede guardar en un archivo dbf con oRs:SaveWork( cDbfFile ) y cerrar el RowSet.
Más tarde, el trabajo en progreso puede abrirse con oCn: RowSet (cDbfFile) y reanudarse
desde donde se dejó.
* Mejoras MDI:
- MENUINFO menu, con caractéres UNICODE. Corregido.
- Clase TMdiFrame:
Nueva DATA: bDlgSelectChild ( default ::bDlgSelectChild := { || ::DlgSelectChild() } )
Para el diálogo de configuración del usuario, la ventana secundaria está activa.
Nuevo método: DlgSelectChild()
Diálogo para mostrar la lista de ventanas secundarias (haga clic en el elemento "Más ventanas"
cuando la lista de ventanas secundarios sea mayor que diez).
* Clase TRichEdt5:
- GPF en el método Destroy al abrir varias instancias de Richedit5: Solucionado.
* Clase FW_Record (TDataRow):
- Los métodos de navegación GoTop(), GoBottom(), GoUp(), GoDown(), GoLast() y GoNew() estaban
disponibles sólo cuando el método Edit() era llamado. Ahora, estos métodos estan
disponibles para ser usados cuando el objeto registro es creado.
* TARRAYDATA (\source\classes\tarrdata.prg)
- Eof() no se está poniendo a .T. cuando saltamos después del ultimo registro. Solucionado.
viewtopic.php?f=3&t=37514
- Bof() no se está poniendo a .T. cuando saltamos antes del primer registro. Solucionado.
- Skip( n ) ahora devuelve el número de registros saltados.
- Eval( bAction, [bFor], [bWhile], [nNext], [nRecNo], [lRest] ) --> Self
Sintaxis extendida. Todos los parámetros tienen la misma funcionalidad de DBEVAL (),
bAction se evalúa con Self como parámetro.
Después de la ejecución, el puntero al registro se restaura.
- Nuevo método FieldDefault( ncFld, uDefaultValue )
El valor por defecto será usado en todos los registros añadidos.
- Ahora esta clase se puede usar para leer un lote de registros de una tabla DBF o MYSQL.
Estos registros pueden ser editados en memoria, añadidos y borrados y luego guardar
(o descartar) todos los cambios, incluidas las adiciones y eliminaciones, en la tabla DBF o MySQL.
- El método New(), ahora tiene 3 alternativas de sintaxis
New( aData, aStruct ) // usa una matriz simple
New( [cAlias], [bFor], [bWhile], [nNext], [nRecord], [lRest] ) // DBF
New( oCn, cTable, [cWhere] ) // Tabla MySQL
New( oCn, cSql, [aParams] ) // Consultas complejas MySQL
- Edición: los campos con los tipos +,=,^ no se pueden editar. En el caso de las tablas MySQL,
los valores de clave primaria de los registros existentes no se pueden cambiar, pero los registros
recién añadidos pueden ser cambiados.
- Método Load(). Sintaxis alternativas
Load( [bFor], [bWhile], [nNext], [nRecord], [lRest] ) // DBF
Load( [cWhere] ) // Tabla MySQL
Load( [aParams] ) // Consulta MySQL
Recarga los datos con la nueva condición o con la condición existente.
Ejemplo:
oData:Load() // Recarga el dato usando bFor/cWhere existente
oData:Load( "INVNUM=99" / { || "INVNUM=99" } )
- FieldDefault( cField, uValue )
Usa el valor por defecto para todos los nuevos registros añadidos.
Ejemplo:
oData:FieldDefault( "INVNUM", 99 )
- Método SaveData() --> lSuccess
Guarda todas las modificaciones en todos los registros, los añadidos y los eliminados
a la tabla DBF / MySQL.
En el caso de MySQL, todos los cambios, añadidos y eliminados se guardan dentro de una
transacción. En caso de cualquier error (Por ejemplo, clave principal / infracciones de
restricciones únicas), se muestra el error y la transacción se revierte.
O se guardan todos los cambios o ninguno.
Si se llama a SaveData () dentro de una transacción, este método usa puntos de restauración.
- Nueva DATA lAutoAppend.
Cuando se establece a .T., la navegación más allá del final añade una nueva fila.
- Nuevo método Sum( fieldname ) --> Suma del campo
Devuelve cero si el campo no es numérico.
* Función FW_DbfToExcel(). Mejora:
Todos los valores de los campos de tipo carácter se recortan al exportar a Excel.
* Función FW_ArrayToDBF().
Cuando se almacena en un campo memo de DBFCDX, el dato también puede ser una matriz.
* XBROWSE:
- Nueva DATA bArrayData:
Si se especifica, se evalúa durante la actualización y restablece el valor de
bArrayData si el valor no es el mismo.
* HARUPDF:
- Nueva clase FWPdf.
Derivada de la clase TPdf de Carlos Mora.
Mejorada y adaptada por el equipo de FWH.
Los fuentes de ambas en \fwh\source\classes\fwpdf.prg y tpdf.prg.
Uso:
oPdf := FWPdf():New( cPdfFileName )
// escribe texto, imágenes, códigos de barra y otros gráficos con los mismos métodos
// como la clase Printer..
oPdf:End() // guarda el fichero PDF y finaliza (destruye) el objeto
- En el curso normal, no es necesario instanciar el objeto por separado y en su
lugar podemos usar los comandos PRINT / ENDPRINT para escribir código portátil.
Ahora el comando:
PRINT oPrn [PREVIEW] FILE "filename.pdf"
// código
ENDPRINT
guardará el material impreso en filename.pdf y lo mostrará si se usa la cláusula PREVIEW.
Este comportamiento continuará.
Si TPrinter():lUseHaruPDF se establece a .T., y es enlazado con HaruPDF mediante
REQUEST FWHARU, el comando de impresión anterior generará el archivo pdf usando HaruPDF.
- Con esta configuración, el comando:
REPORT oRep TO FILE ( cPdf )
creará el fichero pdf usando HaruPDF.
- Limitaciones actuales:
- No hay soporte Unicode (puede no estar disponible pronto).
- Algunos gráficos FWH como TGraph, barras de progreso, gráficas, etc. que
se pueden imprimir en la impresora no se pueden imprimir con Harupdf.
Todas esas limitaciones se eliminarán pronto.
- Configuración de nivel alfa para imágenes.
- Ejemplos: pdfharu1.prg, pdfharu2.prg
- Enlazado:
Por favor, comprueba samples\build*.bat par ver las librerías adicionales
necesarias para el enlazado con distintos compiladores.
- Solucionado: TPen:
Cuando se crea para un dispositivo, hPen no se crea para la dimensión
correspondiente del dispositivo. Solucionado.
* Nueva función MOVETOEX( x, y ) --> { startingX, startingY }
* XImage: bPainted no funcionaba antes. Ahora funciona.
* Clase Meter: Mejoras:
La sintaxis existente para crear el control del medidor(Meter) es:
@ , METER [ VAR ] ;
[ TOTAL ] ;
[ SIZE , ];
[ OF ] ;
[ ] ;
[ ] ;
[ FONT ] ;
[ PROMPT ] ;
[ ] ;
[ , ] ;
[ BARCOLOR , ] ;
[ ] ;
El medidor se muestra como una barra horizontal.
BARCOLOR (valor por defecto CLR_BLUE predeterminado) se utiliza para mostrar el progreso.
COLORES (valor por defecto oWnd:nClrPane) se utiliza para mostrar la parte restante.
Ambos colores deben ser constantes de color RGB.
Mejoras:
1) Tanto como ahora pueden ser cualquier combinación de lo siguiente:
a) Colores RGB estándar (el comportamiento actual continúa).
b) Colores alfa (transparentes). Rango 0x01000000 a 0xffffffff.
c) Degradados de color (como matrices) que consiste en colores RGB y colores alfa.
d) Objetos brocha de mapa de bits / imágenes de cualquier otro estilo.
e) Mapa de bits / Fichero de imagen o recurso.
f) Bloques de código que devuelven cualquier color o degradados. Esto permite cambiar los colores
durante el progreso dependiendo del progreso u otras variables.
2) PROMPT también puede ser un bloque de código.
Todos los bloques de código se evalúan con el progreso expresado como una fracción (0.0 a 1.0) como parámetro.
3) Corregido: la cláusula UPDATE no tenía ningún efecto. Ahora funcionando.
4) Nueva cláusula BORDER
nBorderClr puede ser una constante de color RGB o una matriz de {color, ancho} o un objeto lápiz (Pen).
Si se especifica, el borde se dibuja alrededor del medidor (meter) utilizando el color y el grosor.
5) Nueva cláusula opcional BMPARRAY
Si se especifica esta cláusula, y se pueden asignar con identificadores de mapa de
bits o archivos bmp. El medidor mostrará una matriz de 5 o 10 de estos mapas de bits dependiendo del ancho
relativo del control. El progreso se muestra con el primer mapa de bits y la parte restante se muestra con el
segundo mapa de bits.
Si solo se especifican colores, los mapas de bits en forma de estrella se generan internamente y se muestran
utilizando los colores especificados.
Medidor circular (Circular Meter:)
CIRCULAR [INNERDIA ] [FILLCOLOR ]
Por defecto, la apariencia es como un gráfico circular.
Si se especifica INNERDIA, ya sea en píxeles o como una relación (0.1 a 0.9) al diámetro exterior,
el círculo interno se pinta por separado con color de relleno.
Si no se especifica color de relleno, el círculo interno se deja transparente.
También en este caso, los tres colores nClrBar, nClrPane y nFillColor pueden ser
a) Colores RGB
b) Colores alfa
c) Degradados de colores RGB (degradados de color alfa no compatibles)
d) Objetos brocha(Brush)
e) Imágenes
f) Bloques de código que devuelven cualquier color.
Sintaxis completa:
@ , METER [ VAR ] ;
[ TOTAL ] ;
[ SIZE , ];
[ OF ] ;
[ ] ;
[ ] ;
[ FONT ] ;
[ PROMPT ] ;
[ ] ;
[ , ] ;
[ BARCOLOR , ] ;
[ [INNERDIA ] ] ;
[ FILLCOLOR ] ;
[ BORDER ] ;
[ ] ;
[ ] ;
// nClrBar, nClrPane, nClrFill pueden ser color RGB o Alpha, oBrush,
// hBitmap, aGradient o cualquier fuente de imagen (file/resource/webaddress)
// Opcionales CIRCULR y BMPARRAY o mutuamente excluyentes.
Medidor circular creado sin ser control
También es posible dibujar medidores circulares, en cualquier ventana, diálogo o
dentro de cualquier otro control, sin crear realmente un control de medidor,
utilizando esta función:
PaintCircularMeter( oWnd, aRect, nInnerDia, nActual, nTotal, aColors, aPen )
viewtopic.php?f=3&t=37806
Ejemplos: \fwh\samples\meter01.prg, meter02.prg, meter03.prg
* TBrush:
- Nuevo método GdipBrush() --> pBrush
Devuelve un color GDI+ o una brocha/pincel texturizado.
El llamante o debería destruir la brocha/pincel. Este será eliminado cuando
el objeto brocha/pincel(Brush) es destruido.
* Mejoras en la clase TPrinter:
- Los pinceles/brochas con textura (pinceles/brochas de imagen) en mosaico y sin
mosaico no funcionan correctamente en la impresora. Ahora, esto está rectificado.
Ahora es posible usar pinceles de color alfa y degradados alfa también.
- Texto con fuentes perfiladas (fuentes huecas):
METHOD SayText( nRow, nCol, cText, nWidth, nHeight, oFont, cAlign, nClrText,
nClrBack, cUnits, nOutLineClr, nPenSize )
Se añaden los dos últimos parámetros, nOutLineClr y [ nPenSize ( Por defecto 1 ) ].
Si se especifica, el texto se imprime con el contorno de nOutLineClr con un grosor
de nPenSize. Si nClrText es un pincel/brocha, el texto se rellena con el pincel/brocha.
Comando:
@ , PRINT TO TEXT ;
[SIZE [,] ] ;
[] ;
[FONT ] ;
[ALIGN ] ;
[COLOR [, ] ] ;
[OUTLINE SIZE ] ;
[LASTROW ] ;
Las cláusulas OUTLINE y SIZE son nuevas.
- Metodo RoundBox()
No estaba funcionando correctamente. Solucionado y mejorado.
Los métodos Box() y Ellipse(9 también se han mejorado.
METHOD Box( nTop, nLeft, nBottom, nRight, [uPen], [uBrush], [aText], ;
[cUnits] )
METHOD RoundBox( nRow, nCol, nBottom, nRight, nWidth, nHeight, [uPen], ;
[uBrush], [aText], [cUnits] )
METHOD Ellipse( nTop, nLeft, nBottom, nRight, [uPen], [uBrush], [aText], ;
[cUnits] )
METHOD FillRect( aRect, uBrush, [cUnits] )
uPen:
Usado para dibujar el borde. Puede ser un objeto oPen, un valor de color o
una matriz de {color, grosor}. Por defecto { CLR_BLACK, 1 }.
uBrush:
Si se especifica, rellena el área. Si se omite el área interna se deja transparente.
uBrush puede ser un objeto Pincel/brocha (oBrush), un color RGB, un color alfa,
un matriz de degradado con colores RGB y alfa.
aText:
Una matriz opcional de { texto, fuente, color }. Si se especifica, imprime el texto
en el centro de la forma.
cUnits:
Puede ser "INCHES", "CM", "MM" o "PIXEL". Si se omite, por defecto es PIXEL.
- Nuevos métodos:
- METHOD PieChart( aRect, aValues, [aColors], [aPen], [nStartAngle], [cUnits] )
Para mostrar rápidamente un gráfico circular de valores dados en una matriz aValues.
aColors: matriz de colores u objetos de pincel/brocha. Si no se especifica o si algún
elemento es nulo, se utilizan colores predeterminados.
- METHOD PrintTable( nRow, nCol, oTable, nWidth, nHeight, [oFont], [lBorder], ;
[cTitle], [cUnits] )Útil para incrustar una tabla simple y pequeña dentro de un área especificada en un documento impreso.
oTable: Datos que se muestran como una tabla. Se puede especificar como una matriz o un objeto TArrayData.
- METHOD PrintChart( nRow, nCol, oTable, nWidth, nHeight, cType, [aColors], ;
[cTitle], [cUnits] )Útil para incrustar un gráfico simple en un área específica en un documento impreso.
oTable: Datos a trazar. Pueden ser una matriz o un objeto TArrayData.
cType: Tipo de gráfico. Los valores posibles son"LINE, BAR, PIE, DOUGHNUT, STACK (Barra apilada),
STACKL (Barra apilada con el primero de la serie como línea)"
Los métodos anteriores también están disponibles como comandos, que son más fáciles de usar., PRINT TO ;
[] CHART ;
[SIZE [,] ] ;
[COLORS ] ;
[TITLE ] ;
[] ;, PRINT TO TABLE ;
[SIZE [,] ] ;
[FONT ] ;
[] ;
[TITLE ] ;
[] ;
* GDI+
Nuevas funciones GDI+ aportadas por Antonio Perricone.
Mira en \fwh\source\winapi\gdiplus.cpp.
* Nueva: Clase TProgressWheel
Aportada por Silvio Falconi.
Adaptada con las modificaciones necesarias.
Esta es otra clase de medidor de círculo completamente basada en GDI+.
No está disponible para algunos compiladores como xhb.com
Comando:, WHEELMETER ;
[ ]
[ ] ;
[ RANGE , ] ;
[ INNERCOLOR ] ;
[ ANIMACOLOR ] ;
[ BACKCOLOR ] ;
[ INNERDIA ] ;
[ ] ;
[ ] ;
[ SIZE , ] ;
[ ] ;
[ TEXTCOLOR ] ;
[ ] ;
[ FONT ]:
Color para pintar el círculo interno, por defecto,CLR_GRAY.
Puede ser un color RGB o alfa., :
Por defecto: GRAY,RED. Puede especificar cualquier color RGB, color alfa,
degradado de color que contenga colores normales y alfa, o un nombre de
archivo de mapa de bits, o un objeto TBrush o puntero a pincel/brocha GDi+.:
Valor numérico que indica la relación con el diámetro exterior (0.05 a 0.95)
o el número de píxeles.:
Puede ser un bloque de código.
viewtopic.php?f=3&t=37732&hilit=progress
↧
↧
make error after upgating to MacOs Catalina
René,
I have not installed Catalina yet.
I am going to test it and also ask Manuel Alvarez who surely may have tested it already...
A quick solution is coming, don't despair
↧
harbour_for_modharbour
Andreu Botella's right answer:
[quote:3cjv3zfy]The mod_harbour repo contains the code for the apache module proper, as well as builds and samples.
harbour_for_modharbour is a fork of the normal harbour/core repo adding build tools to build a version of libharbour that's specific to mod_harbour, including the compiler and debugger, as well as the contrib libraries[/quote:3cjv3zfy]
↧
#command Syntax
DATA nMaximum
METHOD SetMaximum( nVal ) INLINE ::nMaximum := nVal
METHOD GetMaximum() INLINE ::nMaximum
The simplest way uses to be the best one
↧
help on string comparisons
Hi Antonino
Database is BD2 on iSeries IBM and field CODICE is CHAR(15) (not VARCHAR) but when recordset read table chars are trimmed:
Field CHAR(15) in DBU = "123456abc "
field read = "123456abc".
↧
↧
IMPRIMEPDF. Nueva clase
Buenas, Donde encuentro completo? Gracias, saludos.
↧
LINK ERROR: 15.09
[quote="Silvio.Falconi":3ccmfweh]seem g_server... google server... class of Cristobal ?[/quote:3ccmfweh]
No class or module of mine is called that.
↧
Como hacer conexion a base de datos Firebird...
Podrías usar HDO para ODBC
Tengo previsto hacer una HDO pata Firebird nativo. Pero HDO para ODBC con el driver Firebird va a tope!!!
↧
MOD_HARBOUR and C++
Thanks for the explanation !
↧
↧
Algun experto en el foro que use o uso Eagle 1 ?
Respondido por privado amigo Lubin
↧
Importar a DBF desde CSV
Hola postinelli.
Cierto que no realiza la importacion correctamente,
la unica manera que he conseguido que la realice es asi.
Primero se formatea el .csv con macros, o reemplazar , yo utilizo notepad++
y dejarlo delimitado con blancos, para ellos se une BANCOSANTANDER y TARJETADEBIT
Y los campos que recogen los datos que sean todos texto.
Mira el codigo.
[code=fw:4gf4x4pg][/code:4gf4x4pg]
Asi lo hace bien, pero tenemos que convertir los 3 primeros campos a fecha y los totaldesc , etc a numericos con 2 decimales
lo puedes formatear y pasarlo a otra database ya con campos correctos, no lo
he probado pero supongo que no habra problema.
En fin no he podido conseguir mas.
Saludos.
Jose.
↧
Como mejorar la calidad de las imágenes
Fernando, no debes tener ningún problema con las imágenes
↧