New FTDN April / Abril 2008 (8.04)

New FTDN April / Abril 2008 (8.04)

Postby Antonio Linares » Fri Apr 11, 2008 11:42 am

April 2008
=======

* Enhancement: Class TWindow Method MeasureItem() returns wider sizes for menuitems.

* Fix: Class TControl has been modified to properly process WM_UPDATEUISTATE message. This was causing some controls not to be seen when pressing Alt in Vista.

* New: Help CHM files support, using the same syntax and commands used with HLP files. Please review samples\TestHlp2.prg. We appreciate your tests feedback.

* Enhancement: New Class TGraph version by Alfredo Arteaga:

DATA nMaxVal to set the maximum value
DATA nMinVal lo set the minimum value,
DATA lLine sets a yellow line over bar graphics,
DATA lFull to fill the entire surface

New parameters nType and l3D in AddSerie():
AddSerie( aDat, cLegend, nColor, nType, l3D )
This allows to specify the type of graphic for each data serial

* Class TXBrowse enhancements and fixes:

1. Multi select works with MARQSTYLE_HIGHLCELL also. On Shift-Click, multi select is automatically activated and style is temporarily changed two MARQSTYLE_HIGHLROWMS. On normal click, the original style is restored.

2. ADD [<oCol>] TO <oBrw> is improved providing facilty to insert the column at a desired position optionally. Now ADD [<ocol>] TO <oBrw> AT nPos inserts the new coumn at nPos. Optionally instead of nPos a Column object also can be specified.

ADD [<oCol>] TO oBrw AT oOtherCol inserts the new column at the position of the oOtherCol. If AT <onAt> is not specified, the new column is added at the end as usual.

3. @ <row>, <col> XBROWSE and REDEFINE XBROWSE commands providing for sort orders also inline.

4. Creating xBrowse with @ <row>,<col> or REDEFINE XBROWSE COLUMNS ...... syntax or setting with SetRdd, SetAdo, SetArray, SetoDbf methods with columns provide the advantage of appropriately formatting the values ( european format is optional ), alignment, default setget blocks as bEditValue and default OnPostEdit blocks.

5. New Datas: lEdited and bOnRowLeave: If specified, this user specified codeblock is evaluated before leaving a row, if Data oBrw:lEdit is True. This is useful in case of buffered writes of entire row as in TDataBase or similar classes or for committing after checking the validity of entire rows. When SetADO or SetODbf are called, default suitable default code blocks are provided which can be overridden where necessary.

6. New Datas: bLock and bUnlock: Default OnPostEdit block uses these codeblocks. SetRDD method automatically sets these blocks to { |oBrw| ( oBrw:cAlias )->( dbrLock() ) } and { | oBrw | ( oBrw:cAlias )->( dbrUnlock() ) }. The default behaviour is adequate in most cases. If desired, in complex cases, appropriate codeblocks can be assigned from program.

7. New Data: nStretchCol: If specified, this column is streatched to fit the width of columns to fill the browse area. A column numer can be specified or one of the defined constants STRETCHCOL_NONE, STRETCHCOL_LAST, STRETCHCOL_WIDEST can also be assigned, for not stretching, stretching the last column or stretching the last widest text column. STRETHCOL_NONE is default for keeping backward comaptibility.

8. New Method: MoveCol( nFrom, nTo ): In contrast to SwapCols method which swaps the position of two columns, this method moves a column from position nFrom to the new position at nTo, shifting the columns in between to right or left accordingly.

9. New Method: FontSize( +/- nIncr ): To increase or decrease the font size of the entire browse. Column widths are automatically adjusted.

10. Bitmaps were not correctly algned center earlier. Now Bitmaps are correctly centered when bStrData is nil.

11. Bitmap painting on Header and Footer is improved.

12. Text data with trailing spaces was not correctly centered or right aligned properly with alignments AL_CENTER and AL_RIGHT. Now alignment works correctly.

13. Report Method: (a) If multiple rows are selected, only the rows selected are printed. Otherwise all rows are printed. This makes it convinient to select the rows to be printed.

(b) An array of column objects or visible column numbers can be specified in the addiional parameter aGroupBy for grouping the report.

14. ToExcel method:a) If multiple rows are selected, only the rows selected are exported. Otherwise all rows are exported. This makes it convinient to select the rows to be exported.

(b) By specifying a sorted column number as the new last parameter, it is poossible to have collapsible sub-group totals and grand totals.

(c) Multilingual formula support for French, Spanish, Italain, German and Portugese.

15. Improved support for ADT table data types.

16. New Method: (a) SetTree for browsing FWH ( LinkList ) trees, along with attached data. It is also possible to link navigation of tree to extrenal database.

(b) Auto tree feature. After xbrowse is set up normally for any summarised data in RDD, ADO or Array, SetTree method can be called. XBrowse automatically constructs the tree and sets the browse in Heirarchial Tree naviagaion mode. Review the sample TestXbr3.prg under menu Window->TreeBrowse.

17. TXBrwColumn New Data: lBmpStretch. If set to .t., and if bStrData is nil, the bitmap is stretched to fill the cell.

18. TXBrwColumn New Data: oBrush: If specified, this brush is used to paint the background of the column.

19. TXBrwColumn New Data: bPopUp: A codeblock can be specified to return a Popup Menu object when evaluated. On right click on the cell, this popup menu is executed.

20. TXBrwColumn New Method: Value (SETGET_: oCol:Vaue is equivalent to Eval( oCol:bEditValue) or Eval( oCol:bStrData ) when bEditValue is nil. oCol:value := newVal is equivalent to calling Eval( oCol:bEditValue, newvalue ) if bEditvalue is a SetGet block.

21. TXBrwColumn New Method: bIndent: If specified, the bitmaps and text are indented by the number of pixels returned by the codeblock on evaluation.

* Class TReport enhancement:

Text data with trailing spaces was not correctly centered or right aligned properly with alignments AL_CENTER and AL_RIGHT. Now alignment works correctly.

* TLinkList class:
New Methods: Expand( nLevel ), Collapse( nLevel ), nLevels()

* TtreeItem Class:
New Method: ItemNo(). Count from the beginning of the tree till the item, ignoring items in the closed trees.

* Trees.Prg
SummaryDataAsTree( bSkip, bEof, aGroups, bCargo ) --> oTree
function to build tree from summary data.

* Class TRichEdit new methods and functions:

METHOD GetBullet() -> Returns the state of bullets at the beginning of the current paragraph
METHOD GetNumbering() -> Returns the state of numbering at the beginning of the current paragraph
METHOD SetBullet() -> Sets bullets at the beginning of the selected paragraphs or in the insertion point
METHOD SetNumbering() -> Sets numbers at the beginning of the selected paragraphs or in the insertion point
METHOD ScrollCaret() -> Scrolls the caret into view in a rich edit control
METHOD InsertRTF() -> Insert a string with RTF codes

New function REGetDateTime() -> Retrieves an array with Date/Time in all available formats

Please review samples\Testrtf.prg using the new methods.

* Enhancement: Class TMdiFrame searches for a "Window" menuitem, and if found and other item has been specified, it is used to display the opened mdichild windows.

* Enhancement: Class TBtnBmp Method LButtonUp(). Now it is possible to use a popup menu with a btnbmp button placed on a dialog. Please review samples\TestBtnM.prg

* New: samples\TestPag3.prg shows using pages inside a main dialog box.

* Fix: Class TWBrowse is properly displaying the headers if Windows XP or Vista use the "classic" look.

* Fix: function TimeFromStart() was failing when an init procedure was generating an error. Now it is ok.

* New: Class TGif provides support for animated GIFs without the need for external DLLs. Please review samples\TestGif.prg. This is still a work in development, as not all GIFs are properly supported, and we plan to provide a better integration in next FWH builds.
Last edited by Antonio Linares on Sat Sep 06, 2008 2:17 pm, edited 1 time in total.
regards, saludos

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

Postby Antonio Linares » Thu Apr 24, 2008 9:44 am

Construcción Abril 2008
=================

* Mejora: El método MeasureItem() devuelve tamaños ampliados para las opciones de los "menuitems".

* Corrección: La clase TControl ha sido modificada para procesar apropiadamente el mensaje WM_UPDATEUISTATE. Esto causaba que algunos controles no se visualizaban al pulsar la tecla "Alt" en Vista.

* Nuevo: Soporte para los ficheros de ayuda CHM, usando la misma sintáxis usada con los ficheros de ayuda HLP. Por favor, revisa el ejemplo Samples\TestHlp2.prg. Agradecemos vuestros comentarios de vuestras pruebas.

* Mejora: Nueva versión de la clase TGraph por Alfredo Arteaga:

DATA nMaxVal ... para poner el valor mayor.
DATA nMinVal ... para poner el valor más pequeño.
DATA lLine ... pone una línea amarilla sobre la barra de los gráficos.
DATA lFull ... rellena la superficie completa.

Nuevos parámetros nType y l3D en la función AddSerie():
AddSerie( aDat, cLegend, nColor, nType, l3D )
Esto permite especificar el tipo de gráfico para cada serie de datos.

* Correcciones y mejoras en la clase TXBrowse:

1. La multiselección trabaja también con MARQSTYLE_HIGHLCELL. Al hacer clic con la tecla Shift pulsada, la multiselección se activará automáticamente y el estilo es temporalmente cambiado a MARQSTYLE_HIGHLROWMS. Al hacer un clic normal se vuelve al estilo original.

2. Se ha mejorado ADD [<oCol>] TO <oBrw> proporcionando la facilidad para insertar la columna en una posición deseada opcionalmente. Ahora ADD [<ocol>] TO <oBrw> AT nPos inserta la nueva columna en nPos. Opcionalmente en lugar de nPos también se puede especificar un objeto columna.

ADD [<oCol>] TO oBrw AT oOtherCol inserta la nueva columna en la posición de oOtherCol. Si no se especifica AT <onAt>, la nueva columna se añade al final como de costumbre.

3. Los comandos @ <row>, <col> XBROWSE y REDEFINE XBROWSE se proporcionan para usar la sintaxis habitual con otros browses.

4. Creando XBrowse con la sintáxis @ <row>,<col> o REDEFINE XBROWSE COLUMNS ...... o poniendo los métodos SetRdd, SetAdo, SetArray y SetoDbf con columnas proporciona la ventaja del formateo apropiado de los valores (el formato europeo es opcional), alineación, los
bloques de código por defecto setget como bEditValue y OnPostEdit.

5. Nuevos Datas: lEdited y bOnRowLeave: Si se especifica, este bloque de código especificado por el usuario es evaluado antes de abandonar una fila, si oBrw:lEdit es TRUE. Esto es útil en caso de escrituras del buffer de filas completas como en la clase TDataBase o clases similares o para guardado después de la comprobación de la validez de la fila completa. Cuando SetADO ó SetDbf son llamados, los bloques de código proporcionados por defecto se pueden anular en caso necesario.

6. Nuevos Datas: bLock y bUnlock: El bloque de código por defecto OnPostEdit usa estos bloques de código. El método SetRDD pone automáticamente estos bloques a { |oBrw| ( oBrw:cAlias )->( dbrLock() ) } y { | oBrw | ( oBrw:cAlias )->( dbrUnlock() ) }. El comportamiento
por defecto es el adecuado en la mayoría de los casos. Si lo desea, en casos complejos, los bloques de código apropiados pueden ser asignados desde el programa.

7. Nuevos Datas: nStretchCol: Si se especifica, esta columna es estirada para encajar el ancho de las columnas para llenar el area de navegación del browse. Se puede especificar una columna numérica ó una de las constantes definidas STRETCHCOL_NONE, STRETCHCOL_LAST, STRETCHCOL_WIDEST se pueden asignar también, para que no se extienda, para extender la última columna o extender la última columna de texto. STRETHCOL_NONE es la opción por defecto para mantener la compatibilidad con versiones anteriores.

8. Nuevo método: MoveCol( nFrom, nTo ): En contraste con el método SwapCols que intercambia la posición de dos columnas, este método mueve una columna desde la posición "nFrom" a la nueva posición "nTo", desplazando las columnas entre ellas.

9. Nuevo método: FontSize( +/- nIncr ): Para aumentar o disminuir el tamaño de la fuente del "browse" completo. El ancho de las columnas se ajusta automáticamente.

10. En versiones previas los "bitmaps" no se alineaban centrados. Ahora los "bitmaps" se centran correctamente cuando bStrData es NIL.

11. Se ha mejorado el pintado de "bitmaps" en las cabeceras y pies de página.

12. El texto con espacios no se centraba correctamente o alineaba correctamente a la derecha con alineaciones AL_CENTER y AL_RIGHT. Ahora el alineamiento funciona correctamente.

13. Método Report:
(a) Si múltiples filas son seleccionadas, sólo las filas seleccionadas son impresas. En otro caso todas las filas son impresas. Esto hace conveniente el seleccionar las filas a imprimir.

(b) Una matriz de objetos columna o el número de la columna visible se pueden especificar en el parámetro aGroupBy para agrupar el informe.

14. Método ToExcel:
(a) Si múltiples filas son seleccionadas, sólo las filas seleccionadas son exportadas. En otro caso todas las filas son exportadas. Esto hace conveniente el seleccionar las filas a exportar.

(b) Especificando una columna numérica como último parámetro, es posible tener subgrupos de totales y totales.

(c) Soporte multilingue: Francés, Español, Italiano, Alemán y Portuges.

15. Mejorado el soporte para los tipos de datos de ADT.

16. Nuevo método:
(a) SetTree para mostrar árboles en "browses" en FWH (LinkList ), junto con datos adjuntos. También es posible enlazar la navegación del árbol a una base de datos externa.

(b) Característica de árbol automática. Después de que el "xbrowse" es configurado usando RDD, ADO o Array, se puede llamar al método SetTree.XBrowse construye automáticamente el árbol y pone el "browse" en modo de navegación jerarquica. Revisa el ejemplo TestXbr3.prg bajo el menú Window-> TreeBrowse.

17. En TXBrwColumn nuevo data lBmpStretch. Si es puesto a .T y bStrData es NIL, el "bitmap" es extendido para llenar la celda.

18. En TXBrwColumn nuevo data oBrush. Si se especifica, esta brocha "brush" se usa para pintar el fondo de la columna.

19. En TXBrwColumn nuevo data bPopUp. Se puede especificar un bloque de código para devolver un objeto menú Popup cuando se evalua. Al hacer un click en el botón derecho del ratón sobre la celda, se ejecuta este menú popup.

20. En TXBrwColumn nuevo método value, (SETGET_: oCol:Value es equivalente a Eval( oCol:bEditValue ) o Eval( oCol:bStrData ) cuando
bEditValue es NIL. oCol:Value := newVal es equivalente a llamar a Eval( oCol:bEditValue, newvalue ) si bEditValue es un bloque SetGet.

21. En TXBrwColumn nuevo método bIdent, si se especifica, los "bitmaps" y el texto son sangrados en función del número de pixels devueltos en la evaluación del bloque de código.

* Mejora en la clase TReport:

El texto con espacios no se centraba correctamente o alineaba correctamente a la derecha con alineaciones AL_CENTER y AL_RIGHT.
Ahora el alineamiento funciona correctamente.

* Clase TLinkList:
Nuevos métodos: Expand( nLevel ), Collapse( nLevel ), nLevels()

* Clase TtreeItem:
Nuevo método: ItemNo(). Cuenta el número de "items" desde el principio del árbol hasta el "item", ignorando los "items" de las ramas cerradas.

* Trees.Prg
SummaryDataAsTree( bSkip, bEof, aGroups, bCargo ) --> oTree
Función para construir árboles desde resumenes de datos.

* Clase TRichEdit nuevos métodos y funciones:

METHOD GetBullet() -> Devuelve el estado de las balas "bullets" al principio del párrafo actual
METHOD GetNumbering() -> Devuelve el estado de numeración al inicio del párrafo actual
METHOD SetBullet() -> Pone las balas "bullets" al comienzo del párrafo seleccionado o en el punto de insercción
METHOD SetNumbering() -> Pone números al comienzo del párrafo seleccionado o en punto de insercción
METHOD ScrollCaret() -> Desplaza el cursor del get en la vista de un control RichEdit
METHOD InsertRTF() -> Inserta una cadena con códigos RTF

Nueva función REGetDateTime() -> Devuelve una matriz con la fecha/tiempo en todos los formatos disponibles

Por favor revisa el ejemplo el ejempo samples\Testrtf.prg para ver el uso de los nuevos métodos.

* Mejora: La clase TMdiFrame busca una opción de menú ventana, y si la encuentra y se especifica otro item, es usada para mostrar
ventanas hijas MDI abiertas.

* Mejora: En el método LButtonUp() de la clase TBtnBmp. Ahora es posible usar menús popup con botones "btnbmp" colocados en diálogos.
Por favor revisa el ejemplo samples\TestBtnM.prg

* Nuevo: Ejemplo samples\TestPag3.prg, muestra el uso de páginas dentro de una caja de diálogo principal.

* Corrección: La clase TWBrowse muestra correctamente las cabeceras si Windows XP ó Vista usan la apariencia cásica.

* Corrección: La función TimeFromStart() estaba fallando cuando en un procedimiento inicial "init" se generaba un error. Ahora está correcto.

* Nuevo: Clase TGif proporciona soporte para GIF animados sin la necesidad de DLLs externas. Por favor, revisa el ejemplo samples\TestGif.prg. Está todavía en desarrollo, no todos los GIFs son soportados correctamente y tenemos planificado el proporcionar una mejor integración en la próxima construcción de FWH.
regards, saludos

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


Return to WhatsNew / Novedades

Who is online

Users browsing this forum: No registered users and 3 guests

cron