New FTDN March/Marzo 2009 (9.03)

Post Reply
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

New FTDN March/Marzo 2009 (9.03)

Post by Antonio Linares »

March 2009
==========

* Enhancement: Class TBrush has been improved to avoid the reuse of gradient brushes. Please
review samples\GradBrus.prg. Thanks to Günther!

* New: samples\WhereAmI.prg an interesting example to know on what procname, procline, control
and dialogbox we are located.

* New: samples\TestMMov.prg an interesting example to move a window, with the mouse, without a
caption.

* New: Class TImage Method LoadFromMemory(). It lets you load images directly from memory, without
having to create a temporary file. i.e.: oImg:LoadFromMemory( MyDBF->photo ), thanks to Cesar Lozada!

* Enhancement: FWPPC\UEStudio\Application config file has been updated for recent Harbour version.
Thanks to Richard!

* Enhancement: function uValBlank() has been enhanced to respect the length of numeric values when
turning them into zero. The previous behavior was affecting Class TDataBase Method Blank().

* New: Class TFolder Method SetItemText( nItem, cText ) lets you change the prompt (text) of a folder
tab without flickering. Thanks to Biel!

* Enhancement: Class TDataBase Method Delete(). Now it does not use DbFilter() at all.

* Fix: Class TGet Method Paste() keeps the previously GET :oGet:buffer length.

* Fix: Minor change in function cValToStr( uVal, cPic ) in source\function\valblank.prg

* New: Class TGet DATA lAdjustBtn, allows the adjustment of the button width to the bitmap width, when
... GET ... ACTION ... BITMAP ... is used. Please review samples\testget2.prg

* New: clause TRANSPARENT support for @ ..., ... SAY and some class enhancements to support it.
Please review samples\testsay.prg

* New: Some new DATAs for Class TBTNBMP to allow a fourth image that will be shown when the mouse is over the
the button. TBTNBMP commands have been enhanced to support this fourth image.

* New: TRANSPARENT clause support for Class TBTNBMP commands. It is no longer needed to do:
oBtnBmp:lTransparent := .T.

* Enhancements: Improved transparency support for Class TBTNBMP:
* It uses the same alignment and placement of the prompt and image, as the ones used for the 2007 clause
* ::cCaption is properly shown
* Four bitmaps support
* Image adjustment is supported

* New: clause TOOLTIP <cText> support in command @ ..., ... BTNBMP ...

* Enhancement: Class TBtnBmp properly shows the underline if "&" is used in the button prompt. Same behavior
as standard Windows buttons.

* New: Class TBtnBmp DATA lBoxSelect allows to show a border when the mouse is moved over the button, if clause
2007 is used.

* Enhancement: Class TBTNBMP properly manages clause ADJUST when the buttons are placed on a ButtonBar.
Please review samples\testbtb.prg. This example shows many of the new Class TBtnBmp enhancements.


* Enhancement: The cursor location in Class TGet goes to the very end of the GET when the GET is filled.
This feature has been requested for a long time. Please review sample\testget4.prg

Special thanks to Daniel García Gil for his great support and contributions! :-)

* New: Class TBarTabs. It shows a bar with tabs. Please review samples\multibar.prg

XBROWSE:

* New: Two new EDIT_TYPE values for TXBROWSE cells: EDIT_DATE y EDIT_TIME, so DATEPICK and TIMEPICK are shown:
Please review samples\testdtp.prg

* New defines to access print and spreadsheet buttons of xbrowser

#define BUTTON_PRINT 1
#define BUTTON_SHEET 2

Please review samples\xbrwser.prg

* New: Class TXBrowse DATA nMoveType, to select the post-edition cells positioning:

#define MOVE_RIGHT 1
#define MOVE_LEFT 2
#define MOVE_UP 3
#define MOVE_DOWN 4
#define MOVE_NONE 5
#define MOVE_FAST_RIGHT 6
#define MOVE_FAST_LEFT 7

The ones with _FAST_ use FastEdit feature and is properly respected.
The other styles go to the selected cell without checking if such cell is editable.

Please review samples\xbposte.prg

* New: Class TXBrwColumn DATA lAutoSave to automatically save the edited cell value if other cell is clicked.
Please review samples\xbcell.prg

* New: Class TXBrwColumn DATA lBtnTransparent allows transparency for the buttons used on the cells.
Please review samples\xbrbtn.prg


* New: new EDIT_TYPE value for TXBROWSE cells: TYPE_IMAGE it is used for new DATA bStrImage
String data codeblock (returns a string with imagen name)

* Enhancements: To use empty array in xbrowse.
Please review samples\xbrarra1.prg

* Enhancements: To use nStretchCol == STRETCHCOL_LAST in xbrowse.

* Enhancements: Class TXbrowse METHODS ToExcel, ToCalc, Report and Eval:

When SET DELETED IS ON, these methods used to repeat the last column
as many times as there are deleted records. In case of DBFNTX, this
repetion is equal to number of filtered out records and deleted records.
Now this is fixed.

METHODS ToExcel() and ToCalc() default to each other:

When ToExcel() method is called and Excel is not installed, execution
defaults to ToCalc() automatically. When both Excel and Calc both are
not installed, then Alert is shown and export to spreadsheet is
abandoned.
Similarly a call to ToCalc method defaults to ToExcel method if Calc
software is not found.
Now software written with call to ToExcel or ToCalc work on any system
where either excel or calc are installed.

METHOD DelRePos

This method is called from Refresh method. This used to raise a
runtime error when DBF is SET FILTER TO an expression containing local
/ static varialbes. Now this method does not raise any error, though
does not reposition the invalid record in such cases.

DATAS lAutoAppend and bPastEof:

Change: In FastEdit mode, after editing the last column of last row,
new row is appended only if lAutoAppend is TRUE and bPastEof is
defined. If bPastEof is not defined, error mesage is not issued but no
automatic append takes place just like in previous versions.
If bPastEof is defined and lAutoAppend is FALSE, new row is added only
by pressing the down arrow key on the last row like in previous
versions.

New METHOD MakeTotals()
-----------------------
This method totals values of all columns whose DATA nTotal is set
to numeric. This can be used for accumulating totals to be
shown / refreshed in footers for any data source. Advisable to use
only for tables of small or medium size.
//----------------
#include "fivewin.ch"
#include "xbrowse.ch"

function Main()

xbrowser "\fwh\samples\customer" ;
columns "Last", "City", "Salary" ;
setup ;
( oBrw:lFooter := .t. ,;
oBrw:lFastEdit := .t. ,;
oBrw:Salary:lTotal := .t. ,;
oBrw:Salary:nTotal := 0 ,;
oBrw:Salary:nEditType := EDIT_GET ,;
oBrw:MakeTotals() ;
)

return nil

Salary column totals are set as footer and xbrowse automatic edit
behaviour updates the totals when salary column is edited.

//-------------

Function XBROWSE() and command XBROWSER.

1) Now xbrowse() / xbrowser command can be called with a dbf file name.
The function automatically opens the dbf with the default RDD and
closes when done.

Example:

Instead of :
USE \FWH\SAMPLES\CUSTOMER
XBROWER "CUSTOMER"
CUSTOMER->( DBUSEAREA() )

We can now write:
XBROWSER "\fwh\samples\customer"regards, saludos

2) Now XBrowse( oTree ) or XBROWSER oTree also works.

3) New CALC clause for the xbrowser command so Method ToCalc() is invoked to use "Oppen Office".
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: New FTDN March/Marzo 2009 (9.03)

Post by Antonio Linares »

Marzo 2009
==========

* Mejora: La clase TBrush ha sido mejorada para evitar la reutilización de gradiente de brochas "brushes". Por favor, revisa el ejemplo samples\GradBrus.prg. Gracias a Günther !

* Nuevo: Nuevo ejemplo samples\WhereAmI.prg,ejemplo interesante para conocer donde nos encontramos, en que procname, proline, control y caja de diálogo nos encontramos.

* Nuevo: Nuevo e interesante ejemplo samples\TestMMov.prg para mover una ventana sin título, con el ratón.

* Nuevo: Nuevo método LoadFromMemory() en la clase TImage. Permite cargar imágenes directamente desde memoria, sin crear un fichero temporal. Por ejemplo: oImg:LoadFromMemory( MyDBF->photo ). Gracias a Cesar Lozada!

* Mejora: Se ha actualizado el fichero de configuración de UEStudio FWPPC\UEStudio\Application con la versión actual de
Harbour. Gracias a Richard!

* Mejora: Se ha mejorado la función uValBlank() respecto a la longitud de los valores numéricos cuanto tienden a cero.
El comportamiento de la versión anterior estaba afectando al método Blank() de la clase TDataBase.

* Nuevo: Nuevo método SetItemText( nItem, cText ), este permite cambiar el texto del símbolo "prompt" de una carpeta sin
parpadeo. Gracias a Biel!

* Mejora: Mejora en el método Delete() de la clase TDatabase. Ahora no usa DbFilter().

* Corrección: Corrección en el método Paste() de la clase TGet, mantiene la longitud del GET previo :oGet:buffer.

* Corrección: Pequeño cambio en la función cValToStr( uVal, cPic ) en source\function\valblank.prg.

* Nuevo: Nueva DATA lAdjustBtn en la clase TGet, permite el ajuste del ancho del botón al ancho de imágene de mapa de bits, cuando se usa ... GET ... ACTION ... BITMAP ... Por favor, revisa samples\testget2.prg.

* Nuevo: Soporte para la clausula TRANSPARENT en @ ..., ... SAY y algunas mejora en la clase para soportarla. Por favor,
revisa el ejemplo samples\testsay.prg.

* Nuevo: Nuevas DATAs en la clase TBTNBMP, para permitir una cuarta imagen, que se mostrará cuando el puntero del ratón
esté sobre el botón. Los comandos de TBTNBMP han sido mejorados para soportar esta cuarta imagen.

* Nuevo: Soporte de la clausula TRANSPARENT en los comandos TBTNBMP. Ya no es necesario hacer: oBtnBmp:lTransparent := .T.

* Mejoras: Mejorado el soporte de transparencias en la clase TBTNBMP:
Usa el mismo sistema de alineación y colocación del símbolo "prompt" y la imagen, que el el usado para la clausula 2007.
Se muestra correctamente ::cCaption.
Soporte de cuatro imágenes de mapa de bits.
Se soporta el ajuste de la imagen.

* Nuevo: Soporte de la clausula TOOLTIP <cText> en comandos @ ..., ... BTNBMP ...

* Mejora: La clase TBtnBmp muestra correctamente el subrayado si se usa el carácter "&" en el símbolo "prompt" del botón. El mismo comportamiento que los botones estandard de Windows.

* Nuevo: Nuevo DATA lBoxSelect en la clase TbtnBmp, permite mostrar un borde cuando el puntero del ratón es pasado por el
botón, si se usa la clausula 2007.

* Mejora: La clase TBTNBMP maneja correctamente la clausula ADJUST cuando los botones están colocados en un ButtonBar.
Por favor, revisa el ejemplo samples\testbtb.prg. Este ejemplo muestra muchas de las mejoras realizadas en la clase TBtnBmp.

* Mejora: La ubicación del cursor en la clase TGet va al final del GET cuando este es rellenado. Esta característica ha sido demandada por los usuarios desde hace tiempo. Por favor, revisa el ejemplo sample\testget4.prg.

Agradecimiento especial a Daniel García Gil por su gran soporte y contribuciones! :-)

* Nuevo: Nueva clase TBarTabs. Muestra una barra de pestañas. Por favor, revisa el ejemplo samples\multibar.prg.

XBROWSE:

* Nuevo: Dos nuevos valores EDIT_TYPE para las celdas TXBROWSE: EDIT_DATE y EDIT_TIME, para que se muestren DATEPICK y TIMEPICK. Por favor, revisa el ejemplo samples\testdtp.prg.

* Nuevas definiciones para acceder a los botones de imprimir y hoja de cálculo del xbrowse:

#define BUTTON_PRINT 1
#define BUTTON_SHEET 2

Por favor, revisa el ejemplo samples\xbrwser.prg.

* Nuevo: Nueva DATA nMoveType en la clase TXBrowse, para seleccionar las celdas después de la edición de posicionamiento:

#define MOVE_RIGHT 1
#define MOVE_LEFT 2
#define MOVE_UP 3
#define MOVE_DOWN 4
#define MOVE_NONE 5
#define MOVE_FAST_RIGHT 6
#define MOVE_FAST_LEFT 7

Las que usan _FAST_ con la característica FastEdit se respetan correctamente. Los otros estilos para ir a la celda
seleccionada sin comprobar que la celda es editable.

Por favor, revisa el ejemplo samples\xbposte.prg.

* Nuevo: Nueva DATA lAutoSave en la clase TXBrwColumn, para guardar automáticamente el valor de la celda editada si pulsamos sobre otra celda.

* Nuevo: Nueva DATA lBtnTransparent en la clase TXBrwColumn, permite la transparencia de los botones usados en las celdas. Por favor, revisa el ejemplo samples\xbrbtn.prg.

* Nuevo: Nuevo valor EDIT_TYPE para las celdas del TXBROWSE: TYPE_IMAGE es usado en el nuevo DATA bStrImage. Bloque de código de tipo cadena de caractéres, devuelve una cadena con el nombre de la imagen.

* Mejora: Para utilizar una matriz vacía en el xbrowse. Por favor, revisa el ejemplo samples\xbrarra1.prg.

* Mejora: Para usar nStretchCol == STRETCHCOL_LAST en un xbrowse.

* Mejora: Nuevos métodos ToExcel, ToCalc, Report y Eval en la clase TXBrowse:

Cuando está activado SET DELETED, estos métodos son usados para repetir la última columna tantas veces como registros sean borrados. En caso de uso de DBFNTX, esta repetición es igual al número de registros filtrados y borrados.
Ahora está corregido.

Métodos ToExcel() y ToCalc() por defecto para cada uno:

Cuando se llama al método ToExcel() y Excel no está instalado, se ejecuta automáticamente el método ToCalc() por defecto.
Cuando ni Excel ni OpenOffice Calc están instalados, entonces se muestra una "alerta" y se abandona la exportación a hoja
de cálculo.

De la misma manera se llama al método ToExcel() si OpenOffice Calc no está instalado y se ha llamado a ToCalc().

Ahora el software escrito con llamadas a ToExcel() o ToCalc() funciona en cualquier sistema en el que, ya sea Excel o OpenOffice Calc estén instalados.

Método DelRePos

Este método es llamado desde el método Refresh. Se utiliza para lanzar un error en tiempo de ejecución cuando en una dbf se usa SET FILTER TO con una expresión que contenga variables locales/estáticas. Ahora este método no lanza ningún error, aunque no la posición del registro no válido en tales casos.

DATAS lAutoAppend y bPastEof:

Cambio: En el modo FastEdit "edición rápida", después de editar la última columna de la última fila, una nueva fila es añadida sólo si lAutoAppend es verdadero y bPastEof está definida. Si bPastEof no está definida, no se muestra mensaje de error pero no se hace el añadido automático al igual que en versiones anteriores. Si bPastEof está definida y lAutoAppend es falso, un nueva fila es añadida sólo si se pulsa la flecha hacia abajo en la última fila al igual que en versiones anteriores.

Nuevo método MakeTotals()
-------------------------

Este método totaliza valores de todas las columnas cuyo DATA nTotal es puesto como valor numérico. Puede ser usado para acumular los totales para mostrar/refrescar en los pies de página desde cualquier fuente de datos. Recomendado su uso para tablas de pequeño o mediano tamaño.

//----------------
#include "fivewin.ch"
#include "xbrowse.ch"

function Main()

xbrowser "\fwh\samples\customer" ;
columns "Last", "City", "Salary" ;
setup ;
( oBrw:lFooter := .t. ,;
oBrw:lFastEdit := .t. ,;
oBrw:Salary:lTotal := .t. ,;
oBrw:Salary:nTotal := 0 ,;
oBrw:Salary:nEditType := EDIT_GET ,;
oBrw:MakeTotals() ;
)

return nil

Se establece como pie de página la columna total de sueldo "Salary" y esta se actualiza automáticamente cuando la columna salario "Salary" se está editando.

//-------------

Función XBROWSE() y comando XBROWSER.

1) Ahora xbrowse() / comando xbrowser puede ser llamado con el nombre de un fichero dbf.
La función automáticamente abre el fichero dbf con el RDD por defecto y lo cierra cuando termina.

Ejemplo:

En lugar de :
USE \FWH\SAMPLES\CUSTOMER
XBROWER "CUSTOMER"
CUSTOMER->( DBUSEAREA() )

Ahora podemos escribir:
XBROWSER "\fwh\samples\customer"regards, saludos

2) Ahora XBrowse( oTree ) o XBROWSER oTree también funciona.

3) Nueva clausula CALC para el comando xbrowser de manera que se llama al método ToCalc() al usar OpenOffice Calc.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply