FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index WhatsNew / Novedades New FTDN October/Octubre 2023 (FWH 23.10)
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
New FTDN October/Octubre 2023 (FWH 23.10)
Posted: Thu Nov 02, 2023 09:53 AM
August, September, October 2023
===============================

* function WebPageContents() in imgtxtio.prg:
In case of non-existent URLs this function is returning NIL, where as
return value is expected to be always a character value.
Now fixed to return "" in such cases instead of nil
This fixes runtime error in FW_ReadImage()

* TImageList Class: (source\classes\timaglst.prg)
- New Method AddImage( cImage )
To add any image, not only bitmaps and icons.

* TListView class: (source\classes\tlistvie.prg)
New Method SetStyle( nStyle )
Refer prg source for the list of styles.

* ListView: Samples: (1) revised litvie1.prg amd new sample
(2) listvie2.prg for Unicode implementation

* Unicode implementation for ToolBars and Rebars
revised sample: samples\toolbar1.prg

* Enhanced: function FW_SayTextHilite(). The last paramter
aWords, was required to be upper case. Now the words can
be of any case.

* Fix: creation and opening of metafiles (emf) were not recognising
unicode characters in the metafile path and resulting in failure
in cases of Unicode user names. Fixed by making metafile functions
unicode compatible in \source\winapi\metafi32.c. See
https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43657&p=263231&sid=6540f96ca6f5657f9312c93e92e06ad8#p263231

* ADO (adofuncs.prg):
- Added support for ACE.OLDBB version 16.
- New function FW_AceVer()
Return the version of ACE.OLEDB installed ( 12 or 16 ) and
0 (Zero) if not installed.

* Added Dutch language to multi-lang support for Excel (see olefuncs.prg)

* Image functions: (imgtxtio.prg)
- Enhancements: FW_ReadImage() and FW_DrawImae(). If the parameter
bmp is nil, the functions read image from clipboard, if any and proceed.
- New: function FW_StitchImages( image1, [image2], [cSide], [cBlobType] )
--> NewImage
If [image2] is nil, Clipboard Image (if any) is used
[cSide] "R"/"B": Stitch to the right or botttom. If ommitted
the function decides the best side.
[cBlobType] If specified the result image is a blob of the type specified
If ommitted, hBitmap is returned.

* TGet: When picture clause @M is used, enter key was not exiting the
Get. Fixed.
https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43407&sid=7f4001848fbee7134ccadde0bb0dfd09

* BtnBmp.prg: Improved painting of disabled buttons.
https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43698&sid=b7b15700ca553af24af5480cdf26182f

* XBROWSE:
- Using column objects datas as plural, before creation of any columns
gives runtime. This is resulting in runtime error when SetRDD()
(from ver.2307) is called prior to creating any columns. Fixed.
- New Method ToXlsx( cFileXlsx, aCols )
- Some changes in SetRdd() made in 2307 were not compatible with
older style of building xbrowse and were causing runtime errors.
fixed.
https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43694&sid=c205af2b5c421b3f5c4b7fc27c3d4598
https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43661&p=263266
&hilit=cargos&sid=c205af2b5c421b3f5c4b7fc27c3d4598#p263266

* New: samples\xbrwpages.prg shows how to combine a xbrowse with a TPages control that holds
TScrollPanel objects. Very interesting, don't miss it!

* Enhancement: FW_MemoEdit( cJsonFile/text ) now displays in formatted
json text.

* Enhancement: functions EnumWindows() and EnumChildWindows() support recursive calls.

* New: Class TTVItem METHOD Select(), it is equivalenf of doing oItem:oTree:Select( oItem ),
so now you can simply do oItem:Select()

* Enhancement: DEFINE WINDOW ... SIZE nWidth, nHeight is supported.

* New: samples\winexpl.prg shows how to use EnumChildWindows()

* Enhancement: XBrowse: now json file name can be specified as datasource

* XBrowser cfileJson / cFileXml

* New: samples\chart.prg shows a google graph from a webview control.

* New: samples\copilot.prg shows how to call Windows Copilot from our FWH apps.

* New: functions WinUpper() and WinLower() wrappers to win32 API
CharUpper() and CharLower() works with both ANSI and UTF8 encodings.
Useful for WU language accented characters like Umlauts.
While TRANSFORM( cUtf8, "@!" ) does not work, FW_TRANSFORM( cUtf8, "@!" ) works.


* Fixed: samples\testtray.prg is properly working with FWH 64 bits.

* Fix: function cValToChar( object ) returning nil when
object:cClassName is nil. fixed.

* New: samples\diskexpl.prg shows how to build a tree with a drive folders using recursion

* Improved: FW_CopyToClipBoard(): Uses gdi++ to copy images to clipboard, enabling
the contents to be pasted in word,excel,whatsapp, etc.
Usage: FW_CopyToClipboard( hBitmap/imagebuffer ) or
FWCopyToClipBoard( imagefilename, 2 )

* New: samples\dllexpl.prg shows how to get the exported functions of any DLL.

* function cFilePath( cFile ). Upper() is removed as it is convinient
to users of some languages.
https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43850&sid=19db84a6686a199e5a8529b0d17e21d6

* FWMariaConnection:
Reconnection logic improved when the app loses connection to the server.
New data bOnLostServer: If this codeblock is specified, it is called when the
application loses connection with the server.

* New: function FolderExists( cFolder ) --> lExists

* NON UNICODE APPLICATIONS ALSO CAN NOW USE UNICODE SAY/GET
CONTROLS TO DISPLAY AND EDIT UTF8 TEST.

- @ r,c SAY ..... UNICODE
Note: Even if the clause UNICODE is not specified, if
the initial prompt is utf8, it is displayed as utf8

- @ r,c GET ... CHRGROUP CHR_WIDE
If the clause "CHRGROUP CHR_WIDE" is specified, the Get
can edit any text encoded in utf8. The result of the Get
is utf8 text.
Even if this clause is not specified, if the initial
edit variable is utf8, this clause is assumed

- Same way, in a Unicode application, i.e., where
FW_SetUnicode( .t. ) is set to .T., Ansi Edit can be
forced by using the clause:
@ r,c GET .... CHRGROUP CHR_ANSI

* CREATING XLSX FILES WITHOUT USING EXCEL APPLICATION.

Recently two great libraries to create xlsx files without
using Excel have been released for free use by Harbour
community.

1. DrXlsx library by Dr Charles Kwon.
see: https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43643&sid=7888508ef5731900fe8bdea1022d46e5
Library download link: http://www.charleskwon.com/?page_id=956
2. xlxlib by Mr. John McNamara and Mr. Arturo Tamayo Daza
see: https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43767&sid=7888508ef5731900fe8bdea1022d46e5
Library download link: https://github.com/FiveTechSoft/FWH_tools/blob/master/Xlsxlibhb_ver2.zip

- Any one or both these libraries can be downloaded and linked with
FWH application. FWH further provides wrapper classes for these libraries
to make it more convenient to use these libraries.
Please see: \fwh\source\function\drxl.prg and \fwh\source\function\fwxlsxlb.prg
To force these classes, use
REQUEST DRXLSX
REQUEST XLXLIB
as the case may be.
- Interested users can download these libs to \fwh\libs folder,
BUILD??.BAT files provide the link scripts,
To use these libs, remove "rem " before the relevant link script
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: New FTDN October/Octubre 2023 (FWH 23.10)
Posted: Sun Dec 03, 2023 04:46 PM
Agosto, Septiembre, Octubre 2023
================================

* Fubci贸n WebPageContents() en imgtxtio.prg:
En caso de URLs inexistentes devuelve NIL, mientras que se
espera que el valor de retorno sea siempre un valor de car谩cter.
Ahora se ha corregido para que devuelva "" en lugar de NIL.
Esto corrige el error de ejecuci贸n en FW_ReadImage()

* Clase TImageList: (source\classes\timaglst.prg)
- Nuevo m茅todo AddImage( cImage )
Para a帽adir cualquier imagenm no s贸lo mapas de bits e iconos.

* Clase TListView: (source\classes\tlistvie.prg)
- Nuevo m茅todo SetStyle( nStyle )
Por favor, revisa el c贸digo fuente prg para conocer la lista de estilos.

* ListView samples:
(1) listvie1.prg revisado
(2) listvie2.prg implementaci贸n unicode

* Implimentaci贸n unicode para ToolBars y Rebars, ejemplo revisado samples\toolbar1.prg

* Mejora: Funci贸n FW_SayTextHilite(). El 煤ltimo par谩metro aWord, deb铆a estar
en may煤sculas. Ahora es indistinto.

* Correcci贸n: La creaci贸n y apertura de metaficheros (emf) no reconoc铆a
caracteres unicode en la ruta del metafichero y provocaban fallos
en los casos de nombres de usuario con representaci贸n unicode.
Corregido haciendo las funciones compatibles con unicode en \source\winapi\metafi32.c
Informaci贸n sobre esto en el hilo del foro:
https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43657&p=263231&sid=6540f96ca6f5657f9312c93e92e06ad8#p263231

* ADO (adofuncs.prg):
- A帽adido soporte para la versi贸n 16 de ACE.OLDBB
- Nueva funci贸n FW_AceVer()
Devuelve la versi贸n instalada de ACE.OLEDB (12 o 16) y cero si no est谩 instalada.

* A帽adido el idioma neerland茅s al soporte multiling眉e de Excel (v茅ase olefuncs.prg)

* Funciones de im谩genes: (imgtxtio.prg)
- Mejoras: FW_ReadImage() y FW_DrawImage(). Si el par谩metro bmp es mulo, leen la imagen desde
el portapapeles, si existe.
- Nueva funci贸n: FW_StitchImages( image1, [image2], [cSide], [cBlobType] ) --> NewImage
Si [image2] es nulo, se usa si existe la imagen del portapapeles.
[cSide] "R"/"B": Une hacia la derecha o hacia abajo. Si es omitidola funci贸n decide el mejor lado.
[cBlobType] Si se especifica, la imagen resultante es un blob del tipo especificado.
Si se omite, se devuelve hBitmap.

* TGet: Cuando se usa la cl谩usula @M, la tecla enter no sal铆a de la funci贸n Get. Corregido.
https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43407&sid=7f4001848fbee7134ccadde0bb0dfd09

* BtnBmp.prg: Mejorado el pintado de los botones deshabilitados.
https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43698&sid=b7b15700ca553af24af5480cdf26182f

* XBROWSE:
- Al usar datas de objetos de columna en plural, antes de la creaci贸n de cualquier columna,
proporcionados tiempo de ejecuci贸n, produce un error de tiempo de ejecuci贸n cuando se llama a SetRDD()
(desde la versi贸n 2307) antes de crear cualquier columna. Solucionado.
- Nuevo m茅todo: ToXlsx( cFileXlsx, aCols )
Algunos cambios hechos en la versi贸n 2307 en SetRDD() no son compatibles con el estilo anterior de
creaci贸n de xbrowse y provocaban errores en tiempo de ejecuci贸n. Solucionado.
https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43694&sid=c205af2b5c421b3f5c4b7fc27c3d4598
https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43661&p=263266&hilit=cargos&sid=c205af2b5c421b3f5c4b7fc27c3d4598#p263266

* Nuevo: Ejemplo samples\xbrwpages.prg, muestra c贸mo combinar un xbrowse con un control TPages
que contiene objetos TScrollPanel. Muy interesante. No te lo pierdas!

* Mejora: En la funci贸n FW_MemoEdit( cJsonFile/text ), ahora se muestra en formato texto json.

* Mejora: En las funciones EnumWindows() y EnumChildWindows(), ahora soportan llamadas recursivas.

* Nuevo: M茅todo Select() en la clase TTVItem, es equivalente a hacer oItem:oTree:Select( oItem ),
as铆 que ahora puedes simplemente hacer oItem:Select()

* Mejora: DEFINE WINDOW ... SIZE nWidth, nHeight son soportados.

* Nuevo: Ejemplo samples\winexpl.prg, muestra c贸mo usar EnumChildWindows().

* Mejora: En XBrowse, ahora se puede especificar un fichero json c贸mo fuente de datos.

* XBrowser cfileJson / cFileXml

* Nuevo: Ejemplo amples\chart.prg, muestra una gr谩fica Google desde un control WebView.

* Nuevo: Ejemplo samples\copilot.prg, muestra c贸mo llamar a Windows Copilot desde nuestras aplicaciones FWH.

* Nuevo: Funciones WinUpper() y WinLower() contenedores para la API win32 CharUpper() y
CharLower() funcionan con codificaciones ANSI y UTF8.
脷til para caracteres con acento en el idioma WU, c贸mo di茅resis.
Mientras TRANSFORM( cUtf8, "@!" ) no funciona, FW_TRANSFORM( cUtf8, "@!" ) funciona.

* Correcci贸n: El ejemplo samples\testtray.prg funciona correctamenete con FWH 64 bits.

* Correcci贸n: La funci贸n cValToChar( object ), devuelve nulo cuando object:cClassName es nulo. Solucionado.

* Nuevo: Ejemplo samples\diskexpl.prg, muestra c贸mo construir un 谩rbol con las carpetas de una unidad utilizando la recursividad.

* Mejorado: La funci贸n FW_CopyToClipBoard(), usa GDI++ para copiar im谩genes al portapapeles, lo que permite pegar
los comtenidos en Word, Excel, Whatsapp, etc.
Uso: FW_CopyToClipboard( hBitmap/imagebuffer ) o FWCopyToClipBoard( imagefilename, 2 )

* Nuevo: Ejemplo samples\dllexpl.prg, muestra c贸mo obtener las funciones exportadas de cualquier DLL.

* Modificado: Funci贸n cFilePath( cFile ). Se elimina la funci贸n Upper() porque es pr谩ctico para los usuarios de algunos idiomas.
https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43850&sid=19db84a6686a199e5a8529b0d17e21d6

* FWMariaConnection:
Se ha mejorado la l贸gica de reconexi贸n cuando la aplicaci贸n pierde la conexi贸n con el servidor.
Nuevo data bOnLostServer: Si se especifica este codeblock, es llamado cuando la aplicaci贸n pierde la conexi贸n con el servidor.

* Nuevo: Nueva funci贸n FolderExists( cFolder ) --> lExists

* LAS APLICACIONES NO UNICODE AHORA TAMBI脡N PUEDEN USAR LOS CONTROLES UNICODE SAY/GET PARA MOSTRAR Y EDITAR LA PRUEBA UTF8.
- @ r,c SAY ..... UNICODE
Nota: Incluso si no se especifica la cl谩usula UNICODE, si el mensaje inicial es utf8, se muestra como utf8.

- @ r,c GET ... CHRGROUP CHR_WIDE
Si se especifica la cl谩usula "CHRGROUP CHR_WIDE", el Get puede editar cualquier texto codificado en utf8.
El resultado del Get es un texto utf8.
Aunque no se especifique esta cl谩usula, si la variable de edici贸n inicial es utf8, se asume esta cl谩usula.

- De la misma manera, en ua aplicaci贸n unicode, es decir, donde FW_SetUnicode( .T. ) es puesto a .T., ANSI Edit puede ser
forzado por el uso de la cl谩usula: @ r,c GET .... CHRGROUP CHR_ANSI

* CREAR DE FICHEROS XLSX SIN USAR LA APLICACION EXCEL.
Recientemente dos grandes librerias para crear archivos xlsx sin Excel han sido liberadas para su uso gratuito
por la comunidad de Harbour.

1. Libreria DrXlsx por Dr Charles Kwon.
M谩s informaci贸n en: https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43643&sid=7888508ef5731900fe8bdea1022d46e5
Enlace de descarga: http://www.charleskwon.com/?page_id=956
Manual: http://www.charleskwon.com/?page_id=956

2. xlxlib por Mr. John McNamara y Mr. Arturo Tamayo Daza
M谩s informaci贸n en: https://forums.fivetechsupport.com/viewtopic.php?f=3&t=43767&sid=7888508ef5731900fe8bdea1022d46e5
Enlace de descarga: https://github.com/FiveTechSoft/FWH_tools/blob/master/Xlsxlibhb_ver2.zip
John McNamara libxlsxwriter: https://github.com/jmcnamara/libxlsxwriter

- Cualquiera de estas bibliotecas o ambas se pueden descargar y vincular con la aplicaci贸n FWH. FWH adem谩s proporciona
clases contenedoras para estas bibliotecas para que sea m谩s f谩cil usarlas.
Por favor revisa: \fwh\source\function\drxl.prg y \fwh\source\function\fwxlsxlb.prg
Para forzar estas clases, utilice
REQUEST DRXLSX
REQUEST XLXLIB
seg煤n sea el caso.
- Los usuarios interesados pueden descargar estas librer铆as en la carpeta \fwh\libs,
Los archivos BUILD??.BAT proporcionan los scripts de enlace,
Para utilizar estas librer铆as, elimine "rem " antes del script de enlace correspondiente.
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion