Page 1 of 1

New FTDN July / Julio 2008 (8.07)

Posted: Sat Jul 26, 2008 8:08 am
by Antonio Linares
July 2008
=======

* Enhancement: function GradientFill() now allows to specify horizontal or vertical painting. Please review samples\TestGrd2.prg

* New: Class TDialog TRANSPARENT clause admits the use of bitmaps (not as brushes). Please review samples\TestTrn2.prg

* New: samples\MyDLL.prg and samples\TestMyDL.prg show how to build a Harbour self contained DLL and how to use it.

* New: Class TReg32 Method GetBinary( cSubKey ). It retrieves binary values from the registry.

* Fix: Class TActiveX added missing lines in function OleInvoke().

* Enhancement: Class TActiveX improved used functions OleSetproperty(), OleGetProperty() and OleInvoke().

* Fix: Class TComboBox Method DrawItem(), its working fine now when a popup menu is used as a popup of the combobox.

* Enhancement: Class TSay was not properly setting the default text width when creating the SAY or later on when changing its text. Now it is fine.

* Fix: Class TWBrowse was not providing the column index when lCellStyle is true and a codeblock is used for nClrText and/or nClrPane. Now it is fine.

* Fix: FWPPC function lRmDir() properly implemented. Please review samples\folder.prg example.

* New: Class TControl Method LDblClick(), it detects if a control is in design mode (clause DESIGN) and avoids to leave the mouse captured.

* New: function cValToStr( uVal, cPicture ), similar to FWH cValToChar() but allows the use of a PICTURE mask, including extended pictures masks for dates values.

* New: function WheelScroll( [nLines] ) --> nLines, sets or retrieves the amount of lines to use for the mouse wheel scroll. Actually used from Class TXBrowse.

* Enhancement: Class TSmtp with enhancements from different FiveWin users. This class has been around for some time and finally we include its changes in the original FiveWin Class TSmtp. Thanks to all its contributors. Some minor editing and changes added.

* Enhancement: fwh\makes\BorMake.zip has been updated with new Harbour libraries names. It has been tested here and it is working fine.

* New: function GradientFill( hDC, nTop, nLeft, nBottom, nRight, aGradient ) where aGradient can contain any number of gradients and should be specified the following way:
{ { nPart, nClrStart, nClrEnd }, { nPart, nClrStart, nClrEnd }, ... }
nPart is to be specified as 0.25, 0.5, etc. and should agregate to 1.

This function is used from Class TXBrowse, Class TBar and Class TBtnBmp. Please review samples\TestGrad.prg

* Fix: MsgBar items prompts, using 2007 clause, were not properly centered. Now it is ok.

* Fix: Class TWBrowse Method Resize() was changing the selected cell if DATA lCellStyle is .T.. Now it is ok.

* New: We are actually porting the Class TXBrowse to FWPPC. Still is a work in development, but if you are interested in beta testing it, please contact us.

* XBROWSE:

1. Post Edit navigation:
(a) If get is exited with up or down arrow, cursor is moved to previous or next row as the case may be.
(b) If lFastEdit is true, cursor goes to the next editable cell in the same row. If the edited cell is the last editable cell in the rown, cursor goes to the first editable cell of the next row.

2. Tooltips for headers: New data cToolTip of TXBrwColumn can be assigned with a toolip as character value / array / codeblock. The tooltip will be shown when mouse hovers on the header of the column.

3. Mouse Wheel: Now mouse wheel works only when the mouse is in the browse's data area and number of lines scrolled depends on the window's settings. Thanks to suggestions from Manuel Mercado and James Bott.

3. SetArray( <hash> ) is implemented for xharbour.

4. User speicified date formats can be assigned to oCol:cEditPicture and dates will be shown in the specified format will be used for display in xbrowse and export to excel. The formats are the same that are used for formatting dates in excel. ( eg dd/mm/yyyy, mmmm dd yyyy, etc )

5. Sorting RDD. Repeated click on the header toggles ascending / descending order of the sort even for RDD ( if the RDD supports ), in the same way like arrays and recordsets

6. Sorting on columns is possible for TDatabase ( and similar objects ) set with SetoDbf(...) or with commands, by assigning data name to oCol:cSortOrder. This works if the data object contains method by name SetOrder( <corder> )

7. In earlier versions a column object can be retrieved by oBrw:oCol( <cHeader> ). Now it is possible to retrieve a column object with new syntax oBrw:cHeader. It is also possible to create new columns with this syntax.

Example:
oBrw:SalePrice := { || oBrw:Sales:Value / oBrw:Quantity:Value }
Above stament adds a new column with the header 'SALEPRICE' whose value is the value of column with header 'SALES' divided by the value in the column with header 'QUANTITY'.
oBrw:Sales:nEditType := EDIT_GET
Column with header 'SALES' is set to editmode.

8. New Function XBROWSE( [cAlias/aData/oRs/oDbf], [cTitle], [lAutoSort], [bSetUp] ) for quick browse of any datasource.
Example:
use customer
xbrowse()
or
xbrowse( aArray / oRs / oDbf / cAlias / hHash )
Additional features can be provided by the programmer through bSetUp codeblock, which receives the browse object as parameter.

Re: New FTDN July / Julio 2008

Posted: Mon Jul 28, 2008 11:09 pm
by FiveWiDi
Antonio Linares wrote:July 2008
=======

3. Mouse Wheel: Now mouse wheel works only when the mouse is in the browse's data area and number of lines scrolled depends on the window's settings. Thanks to suggestions from Manuel Mercado and James Bott.
Antonio,

esta característica también la tiene el GET MULTILINE, u otros controles parecidos como el que usa ''RichEdit''?

Saludos
Carlos G.

Posted: Mon Jul 28, 2008 11:35 pm
by Antonio Linares
Carlos,

De momento la hemos estado probando en la clase TXBrowse.

La idea es usarla en todas las clases en las que se pueda usar el mousewheel.

Posted: Tue Jul 29, 2008 12:31 pm
by FiveWiDi
Antonio Linares wrote:Carlos,

De momento la hemos estado probando en la clase TXBrowse.

La idea es usarla en todas las clases en las que se pueda usar el mousewheel.
Gracias.
Carlos G.

Posted: Tue Jul 29, 2008 10:40 pm
by Antonio Linares
Julio 2008
========

* Mejora: La funcion GradientFill() ahora permite especificar pintado horizontal ó vertical. Por favor revisad samples\TestGrd2.prg

* Nuevo: Class TDialog la claúsula TRANSPARENT de la Clase TDialog admite el uso de bitmaps (no como bruhses). Por favor revisad samples\TestTrn2.prg

* Nuevo: Nuevos ejemplos samples\MyDLL.prg y samples\TestMyDL.prg, que muestran como construir una DLL con Harbour y como usarla.

* Nuevo: Nuevo método GetBinary( cSubKey ) en la clase TReg32. Devuelve un valor binario desde el registro.

* Corrección: Se han añadido unas líneas olvidadas a la función OleInvoke() de la clase TActiveX.

* Mejora: Se han mejorado las funciones OleSetproperty(), OleGetProperty() y OleInvoke() en la clase TActiveX.

* Corrección: En el método DrawItem() de la clase TComboBox, ahora funciona perfectamente cuando un menú desplegable se utliza como
desplegable del "combobox".

* Mejora: En la clase TSay, no se estaba poniendo por defecto el ancho correcto del texto cuando se creaba el SAY o después cuando se cambiaba el texto. Ahora funciona correctamente.

* Corrección: En la clase TWBrowse, no se estaba proporcionando la columna índice cuando lCellStyle es .T. y se usaba un bloque de código para nClrText y/ó nClrPane. Ahora está correcta.

* Corrección: En FWPPC, se ha implementado correctamente la función lRmDir(). Por favor, revise el ejemplo samples\folder.prg.

* Nuevo: En la clase TControl, nuevo método LDblClick(), detecta si un control está en modo diseño (clausula DESIGN) y evita dejar el ratón capturado.

* Nuevo: Nueva función cValToStr( uVal, cPicture ), similar a la función cValToChar() de FWH, pero que permite el uso de una máscara PICTURE, incluyendo máscaras extendidas para valores de fechas.

* Nuevo: Nueva función WheelScroll( [nLines] ) --> nLines, pone o devuelve la cantidad de líneas a usar por la rueda del ratón en su deplazamiento (scroll). Actualmente se usa en la clase TXBrowse.

* Mejora: Mejoras en la clase TSmtp original de Fivewin, se han usado las mejoras sobre la clase de diferentes usuarios de Fivewin. Gracias a todos los que han contribuido. Se han añadido algunos _ en la edición.

* Mejora: Se ha actualizado el fichero FWH\makes\BorMake.zip con los nombres nuevos de las librerias de Harbour. Se han comprobado en
FiveTechSoft y están funcionando correctamente.

* Nuevo: Nueva función GradientFill( hDC, nTop, nLeft, nBottom, nRight, aGradient ), dónde aGradient puede contener cualquier número de
gradientes y debería ser especificado de la siguiente manera: { { nPart, nClrStart, nClrEnd }, { nPart, nClrStart, nClrEnd }, ... }
nPart se especifica como 0.25, 0.5, etc..., y debería agregarse a 1.

Esta función se usa en las clases TXBrowse, TBar y TBtnBmp. Por favor, revise el ejemplo samples\TestGrad.prg.

* Nuevo: Estamos portando la clase TXBrowse a FWPPC. Todavía está en fase de desarrollo, pero si está interesado en probarla, por favor contacte con nosotros.

* XBROWSE:

1. Navegación post edición:

(a) Si nos salimos de un GET con las flechas arriba ó abajo, el cursor se desplaza a la fila previa o a la siguiente según sea el caso.
(b) Si lFastEdit es .T., el cursor se desplaza a la siguiente celda editable en la misma fila. Si la celda editable es la última en la fila, el cursor se desplazará a la primera celda editable de la siguiente fila.

2. Descripciones "Tooltips" en la cabeceras:

Nuevo data cToolTip de la clase TXBrwColumn puede ser asignado con una descripción "tooltip" como un valor carácter / matriz / bloque de código. La descripción "tooltip" será mostrada cuando el ratón se situe en la cabecera de la columna.

3. Rueda del ratón:

Ahora la rueda del ratón sólo funciona cuando el ratón está en el area de datos del "browse" y el número de líneas desplazadas depende de la
configuración de la ventana. Gracias por la sugerencia a Manuel Mercado y a James Bott.

4. Se ha implementado la función SetArray( <hash> ) para xHarbour.

5. Se pueden asignar formatos de fechas especificados por el usuario a oCol:cEditPicture y las fechas se mostrarán en el formato especificado
y serán usados al mostrar el xBrowse y al exportar a Excel. Los formatos son los mismos que los utilizados para el formateo de las fechas en
Excel. ( Ejemplo dd/mm/yyyy, mmmm dd yyyy, etc ).

6. Ordenación RDD. Los "clicks" repetidos sobre la cabecera cambia el orden ascendente/descendente de la ordenación incluso para el RDD (si el
RDD lo soporta), de la misma manera que lo haría con matrices y "recordsets".

7. La ordenación de columnas es posible en la clase TDatabase ( y en objetos similares ) con SetoDbf(...) o con comandos, asignando el nombre de la data a oCol:cSortOrder. Esto funciona si el objeto de datos contiene el nombre de método SetOrder (<corder>).

8. En versiones previas un objeto columna podía ser devuelto por oBrw:oCol( <cHeader> ). Ahora es podible devolverlo con la nueva sintaxis oBrw:cHeader. También es posible crear nuevas columnas con esta sintaxis.

Ejemplo:

oBrw:SalePrice := { || oBrw:Sales:Value / oBrw:Quantity:Value }

Añade una nueva columna con el encabezado 'SALEPRICE' cuyo valor es el valor de la columna con el encabezado de 'SALES' dividido por el valor de la columna con el encabezado de 'QUANTITY'.

oBrw:Sales:nEditType := EDIT_GET

La columna con el encabezado igual a 'SALES' es puesta en modo de edición.

9. Nueva función XBROWSE( [cAlias/aData/oRs/oDbf], [cTitle], [lAutoSort], [bSetUp] ) para crear rápidamente una xBrowse desde cualquier fuente de datos.

Ejemplo:

use customer
xbrowse()

ó

xbrowse( aArray / oRs / oDbf / cAlias / hHash )

Características adicionales pueden ser proporcionadas por el programador a través del bloque de código bSetUp, el cual recibe el objeto "browse" como parámetro.