Lo Nuevo
(Texto en rojo indica modificaciones que pudieran romper su actual código)
Novedades en la versión Xailer 9.1.0
- IDE:
- Soporte de compilación para Linux en entornos WSL
- Soporte en Intellisense de propiedades tipo matriz de objetos
- Permitir tipificacion de parametros en metodo ModifyEvent
- Mostrar en Intelisense valores posibles de DATAs con enumerados despues de escribir ‘:= ‘
- Soporte de lib.info unificado para proyectos que incluyen varias librerías
- Corregido importante error en creacion de lista de miembros de clase en Intellisense
- Nuevo control TWebcam
- Soporte de firma de codigo desde ficheros de certificados PFX
- SqliteEditor: Nueva opcion de menu contextual en el botón ‘To JSON’ para permitir exportar sólo los datos
- Controles
- TWebcam: Nuevo control
- TPicture: Soporte de formato WEBP
- TTreeViewItemMod: Error en método Delete
- Ajustes de escala en múltiples controles
- TCardbox: No se reajustaban correctamente los items cuando el control cambiaba de tamaño
- DataControls
- Sqlite: Actualización de librerías a la última versión 3.46.1
- Ejemplos
- Nuevo ejemplo de uso de TWebcam
Novedades en la versión Xailer 9.0.1
- IDE:
- Soporte de VALUES de properties en Intellisense
- Ajustes en el tamaño de las ventanas en Windows 10/11
- No cargar nunca ficheros de mas de 1GB en el editor
- Error al seleccionar varios TGroupBoxMod con el ratón
- Controles
- TSummerNote: Nuevos estilos note-tip, note-info y note-warning en el editor de ayudas html
- TSummerNote: Soportar enlaces dentro de la misma ayuda del tipo «pagina#apartado». Para localizar el «apartado», este tiene que estar solo dentro de un tag,sin más texto
- TSummerNote: Nuevas propiedades cStyleTags y cStyle. Permiten añadir estilos al menu del editor (ver doc de summernote)
- TSummerNote: Nueva propiedad cFonts
- ThtmlhelpView: Nuevas propiedades nPanelWidth, nHelpWidth, nHelpHeight
- THeaderItemMod: Error de asignación de oHeader:oCol:nFilterEditStyle
- TTreeViewItemMod: Error de inserción en árbol
- TBrwColMod: Error con pérdida de foco en control de edición
- DataControls
- Sqlite: Actualización de librerías a la última versión 3.45.2
- TDataset: Evitar deshacer edición cuando se produce un error de salvado
Novedades en la versión Xailer 9.0.0
- General:
- Adaptaciones a Linux de módulos no visuales
- Nuevas librarías CGILib, CGILinux y libSQLiteLinux.a
- IDE:
- Soporte para compilar en Linux desde windows usando WSL
- Soporte de ejecución de proyectos CGI desde WSL
- SQLite editor: Soporte de colaciones UTF8 y herramienta para cambiar el ‘charset’ en cualquier BD
- Nueva tabla ASCII
- Nueva opcion «Distribuir en ventana» en «Alinear controles»
- Intellisense no funcionaba hasta que el archivo estaba guardado
- Mostrar historial de busqueda en busquedas en editor actual
- Nuevo componente TMicrosoftMailSend
- Al mover Xailer de un monitor a otro no se maximizaba la ventana principal
- Nuevos eventos para plugins: FE_InsertControl, FE_RemoveControl y FE_InsertComponent
- Poder establecer ‘charset’ a nivel de proyecto
- Controles
- TTabs: Evitar seleccionar el tab al añadirlo a su contenedor
- TMicrosoftMailSend: Nueva clase para envío de correos a través de Microsoft Mail
- TRadioMenu: Ajustes de pintado
- TWebView: Nuevo evento OnWebResourceResponseReceived( oSender )
- TExplorerGroup: Nueva propiedad lCollapsible
- TCalendarMod: Error al seleccionar el mes de diciembre
- DataControls
- Sqlite: Error en conversion de tipos date y datetime
- Sqlite: Actualización de librerías a la última versión 3.45.1
- Sqlite: Dos versiones de la misma librería: Una completa (libSqliteFull.a) y otra reducida (libSQLite.a)
- Sqlite: Nuevas funciones internas AnsiToUtf8() y Utf8ToAnsi()
- Sqlite: Nuevas colaciones UTF8Case y UTF8NoCase
- TWebDataSource: Nuevas propiedades lCachedQueries y nCacheTTL
- TWebDataSource: Nuevas propiedad cChaceDB para poder indicar la ubicación del fichero de cache
- TWebDataSource: Nuevos métodos DelCachedQueries( [xTable] ) y CachedRatio()
- TWebDataSource: Error en RefreshCurrent()
- TDbBrowseMod: Nueva versión de XA_wdsMySql.php que evita que use comas como separador decimal
- Clases
- TExStruct: Renombrado comando STRUC a STRUCT por coherencia
- TExStruct: Soporte de tipos DATETIME
- TExStruct: Mejora en método ToJson() para que funcione incluso con estructura anidadas
- Funciones
- Nueva función UuidCreate() –> cUuid
- Nueva función NoAccents()
- La función XA_Ligthness() se hace accesible en alto nivel
Novedades en la versión Xailer 8.2.3
- General:
- Imposibilidad de crear ejecutables autónomos en versión Personal
- Controles
- TBrowseMod: Nuevo método ColWithHeader( cHeader )
- TBrowseMod: Nuevos métodos HitTest( aPos ) y HitTestCol( nX )
- TRadioMenu: No se pintaba correctamente cuando Application:nScale !=100%
- DataControls
- TDataset: No funcionaban GetRowHash() ni GetRowsHash() con TDbfDataset
- Clases
- TSumatra: Nueva propiedad nToolBarHeight
Novedades en la versión Xailer 8.2.2
- General:
- Imposibilidad de crear ejecutables autónomos en versiones Personal y Profesional
- IDE:
- Nueva propiedad oFont en menues popup
- Error de escalado en TreeView
- Controles
- TTabs: No se disparaba OnContextMenu
- TEditMod: Nuevo estilo esUPDOWN en propiedad nStyle
- TEditMod: Nueva propiedad nClickedPos
- TTimeEditMod: Nueva propiedad lSeconds
- TTimeEditMod: Incialización a Time() si NIL
- TTimeEditMod: Soporte de botones Up-Down
- TButtonMod: Nueva propiedad lFlat
- TTMenu: Nueva propiedad oFont
- TTabs: Escalar nTabSize, nTabsMargin y nItemPadding
- TBrowseMod: Nueva propiedad lTooltips
- TBrowseMod: Nuevo evento OnDispTooltip( oSender, @cText, @cTitle, @nIcon, nIndex, oCol )
- TSummerNote: Corrección de errores
- DataControls
- libSqlite.a: Actualizada a 3.42.0
- TDbBrowseMod: Error de ordenación y agrupación corregido
- TMariaDb, TMySql y TSqlite: Error con queries complejas. Permitir usar HAVING en filtros
- Funciones
- Nueva función XA_FunctionExists( cFunction ) -> lExists
- Ejemplos
- samples\MovingBox: Nuevo ejemplo de movimiento de controles
Novedades en la versión Xailer 8.2.1
- IDE:
- Error en la opción de menú contextual ‘Cambiar a’ de control TSplitButton
- Controles
- TWebView: Nueva propiedad nZoomFactor (NOTA: 1.0 es 100%, 1.5 es 150%, etc.)
- TButtonMod: Error de visualización cuando se incluía ‘&’ en el texto
- TButtonMod: Nueva propiedad lLegacyBehaviour para que INTRO dispare siempre OnClick
- THeaderItemMod: Incorrecto pintado de la columna seleccionada
- TComboboxMod: Error en metodo GetText cuando lFreeEdit a .T.
- TBrowseMod: Error en asignacion de propiedad lHotTrack
- TBrowseMod: Error en eventos: lButtonDown, lButtonUp, RButtonDown y RButtonUp
- DataControls
- libSqlite.a: Actualizada a 3.41.2
- TDbBrowseMod: Control de errores y mejoras en AdjustColWidth()
- TDbBrwColMod: Error en asignación del TDatafield
- TDbComboboxMod: Error en metodo SetValue() para tipo dtIndex y dtBound con lFreeEdit
- Funciones
- Nueva función GetCurrentProcessId() –> nProcessId
Novedades en la versión Xailer 8.2.0
- IDE:
- Poner automáticamente el texto HB_SYMBOL_UNUSED( [Parameters] ) cuando se crean métodos en el IDE si el nivel de warning del
compilador está establecido a un valor de dos o superior - Al añadir una imagen desde disco (no recursos) a un TBtnBmp a veces no la cargaba
- Nuevo editor de propiedades para propiedades que pueden depender de Application:nScale
- Nuevo evento ED_TabContextMenu para plugins y componentes
- Poner automáticamente el texto HB_SYMBOL_UNUSED( [Parameters] ) cuando se crean métodos en el IDE si el nivel de warning del
- Controles
- TListBoxMod: Error en método OnClick
- TListboxMod: Nuevo evento OnChanged()
- TCheckBoxMod: Mejoras de pintado
- TRadioMod: Click de ratón no cambiaba el foco al control
- TButtonMod: Error de centrado del texto cuando se usaban aceleradores
- TButtonMod: Click de ratón no cambiaba el foco al control
- TButtonMod: : Realizar opacidad con actual color de fondo
- TBtnPanelMod: Realizar opacidad con actual color de fondo
- TBrowseMod: Error en métodos SaveState y RestoreState
- TBrowseMod: Nueva propiedad lHotTrack
- TBrowseMod: Nueva propiedad lOnEditUseReturn (PUBLIC) Valor NIL utiliza Application:lUseReturn
- TBrowseMod: Centrar imagen cuando no hay texto en el header de las columnas
- TBrowseMod: Mejoras en evento OnContextMenu y OnEnter
- TBrowseMod: OnChar no se disparaba
- TBrowseMod: Evitar disaro de doble-click si ratón encima de barras de scroll virtuales
- TBrowseMod: Nueva propiedad nMargin
- TBrowseMod: Error en la gestión de filtros de la cabecera
- TBrwColMod: Permitir el uso del evento EditForGrid:OnBtnClick por el usuario
- TBrwColMod: Error en alinemiento del gridedit
- TBrwColMod: Error an asignacion de valores por lista desplegable
- TCalendarMod: Error de modo multi-select
- TTreeView: Nuevas propiedades nClrSelFocus y nClrSelItem
- TFastReport: Corregido error de exportación a ODT
- DataControls
- libSqlite.a: Actualizada a 3.41.0
- TMemDataset:Error en método OrgRecno y cambios menores
- TWebDataSource: Nueva propiedad nSendTimeOut para el envío de emails
- TWebDataSource: Nuevos métodos RenameFile(), UpLoadFile(), DnLoadFile(), ADirs(), AFiles(), RemoveDir()
- TWebDataSource: Soporte del método Refresh() que figuraba como VIRTUAL
- TDbBrwColMod: Nueva propiedad de sólo lectura cDataField
- Clases
- TApplication: Nueva propiedad hVersionInfo
- TScreen: A veces ::aMonitors no tenía los monitores correctamente ordenados
- TWiaScan: Devices() ahora contiene un tercer valor en cada elemento con el tipo de dispositivo (0=Default, 1=Scanner, 2=Camera, 3=Video)
Novedades en la versión Xailer 8.1.0
- General:
- Nuevo sistema de ayudas XHtmlHelp
- TForm: Nueva propiedad XHtmlHelp
- IDE:
- Soporte de comandos ‘dummy’ REGION, BEGINREGION y ENDREGION para folding en editor
- Soporte de tres monitores
- Controles
- TSummerNote: Nuevo control de edición HTML basado en TWebView
- TAnimatedGif: Nuevo control para mostrar gifs animados
- TWebView: Nuevo evento OnWebMessageReceived( oSender, cJson )
- TWebView: Solucionado definitivamente el GPF esporadico al crear el control
- TWebView: Nuevo método DeleteAllCookies()
- TBrowseMod: Nuevos eventos OnPostSave() y OnChangeSelected()
- TBrowseMod: Error en procesamiento de lFastEdit
- TBrowseMod: Error en búsqueda incremental
- TBrowseMod: Nuevo metodo TBrwGroup:SumTotal( xCol )
- TCheckBoxMod: Eliminado evento OnChanged() por inútil. y por mantener funcionalidad con clases no tipo ‘Mod’
- TRadioMenuMod: Eliminado evento OnChanged() por inútil. y por mantener funcionalidad con clases no tipo ‘Mod’
- TCheckBoxMod: Cambios en evento OnChange( oSender, lNewValue ) recibe ::lChecked cambiado, pero igualmente se puede cambiar
- TRadioMenuMod: Cambios en evento OnChange( oSender, lNewValue ) recibe ::lChecked cambiado, pero igualmente se puede cambiar
- TCheckBoxMod: Mejoras de pintado
- TRadioMenuMod: Mejoras de pintado
- TComboBoxMod: Nuevos eventos: InsertItem(), AddItem(), DeleteItem(), DeleteItems(), ModifyItem() y GetCount(). Por compatibilidad con version NO Mod
- TRadioMod: Mejoras de pintado
- TSwitch: Cambiar efecto de foco para igualarlo al resto de controles MOD
- TListboxMod: Nuevos metodos CheckAll() y UnCheckAll()
- TListboxMod: Evento OnClick se disparaba dos veces
- TTooltip: No se estaban mostrando los links
- TTooltip: Nuevo parametro <nLink> en OnLinkClick( oSender, nLink ) que indica el numero de link pulsado, comenzando por 1
- TLabelEx: Nuevo parametro <nLink> en OnLinkClick( oSender, cText, nLink ) que indica el numero de link pulsado, comenzando por 1
- TColorComboBox, TComboBox, TFontCombobox, TOptionList: Mejoras en escalado
- TUpDownMod: Soporte de repetición
- TEditMod: Evitar que se vea el texto con password si se ha hecho un paste o setvalue
- TPicture: Añadido parametro <nImageIndex> a todos los metodos LoadXXX()
- DataControls
- libSqlite.a: Actualizada a 3.40.0
- TDbBrowseMod: Error en método Save
- TMemDataset: Nuevos métodos: TableName(), SqlInsert() y SqlUpdate()
- TWebDataSource: Nuevos métodos: CurrentDir(), IsDir(), MkDir() y ForceDir()
- TWebDataSource: Nuevo método: SendMail()
- TWebDataSource: Mejoras en conexión y control de errores
- Clases
- TApplication: Nueva propiedad lDpiAware
- TReport: Nueva propiedad cPdfFilename
- TPrinter: Nuevo metodo EmfToPrinter( nPrinter, nFirst, nLast )
- TSumatraPrinter: Error cuando se intentaba cambiar cualquier propiedad
- TSumatraPrinter: Nueva propiedad nPageOrient
- report.ch: Nuevas cláusulas: REPORT .. TO PDF <cPdf> y REPORT .. KEEP
- Funciones
- Nueva función xa_VarsEqual( xValue1, xValue2 ) –> lEqual (value)
- Nueva función xa_UnixTimeStamp2DateTime( nTimeStamp ) –> dtValue
Novedades en la versión Xailer 8.0.1
- Controles
- TWebView: Evitar instanciar ICoreWebView2EnvironmentOptions si no es estrictamente necesario. Una actualizacion reciente de windows esta provocando GPF al instanciar esta interfaz en algunos usuarios
- TWebView: Nuevo parámetro lIsUtf8> que indica si la cadena ya esta en formato UTF8: METHOD SetContent( cHtml, [lIsUtf8] ) -> nError
- TGoogleDrive: Cuando cToken es incorrecto, volver a pedir identificarse al usuario, Error cuando ‘errorcode’ se recibia como numerico
- TDropBox: Cuando cToken es incorrecto, volver a pedir identificarse al usuario, Error cuando ‘errorcode’ se recibia como numerico
- TOneDrive: Cuando cToken es incorrecto, volver a pedir identificarse al usuario, Error cuando ‘errorcode’ se recibia como numerico
- TBrowseMod: Nuevo evento OnClickRecSelector()
- THeaderMod: nHeaderHeight 0 por defecto. En dicho caso se calcula automáticamente
- TBrowseMod: Recuperar recno despues de un cambio de filtro
- TCheckBoxMod: Error de pintado cuando disabled
- TRadioMod: Rediseño de pintado del control
- TUpdDownMod: Nueva propiedad nClrPenDisabled
- TEditMod: Error al mostrar el texto con estilo esPASSWORD
- THeaderMod: nHeight 0 por defecto. En dicho caso se calcula automáticamente
- DataControls
- TDbBrowseMod: Rediseño de su sincronización con dataset
- TDbComboBox: Rediseño de GetValue() y SetValue por cambios en Datacontrols
- Clases
- TPrinter: Error en método PreviewControl
- Comandos
- Nueva claúsula en comando FILE ADDITIVE
- Nueva claúsula en comando TEXT INTO ADDITIVE
- Ejemplos
- samples\Datacontrols\MariaDB: Nuevo ejemplo de browse con MariaDB
- samples\Modern\Browses\Freeze: Nuevo ejemplo de browse simulando un freeze de columna
Novedades en la versión Xailer 8.0.0
- General
- Corregidos problemas de pintado en Windows 11
- Controles
- TGoogleDrive: Nuevo control para acceder a la nube de Google Drive
- TDropBox: Nuevo control para acceder a la nube de DropBox
- TOneDrive: Nuevo control para acceder a la nube de Microsoft
- TShape: Nuevo control para pintar distintas figuras geométricas
- TUpDownMod: Nuevo control ‘up-down’ estilo moderno
- TGmailSend: Adaptada a los cambios realizados por Google
- TBrowseMod: Error en pintado de líneas verticales
- TBrowseMod: Error en método DelCol y en evento OnSaveCol
- TBrowseMod: Error en edición de FastEdit
- TBrowseMod: Nueva propiedad lAlternateColor (browses con estilo papel pijama)
- TTrackBarMod: Error en pintado del globo con el porcentaje actual
- TFastReport: Nuevo método StopReport()
- TButtonMod: Nueva propiedad nBorderRadius
- TButtonMod: Eliminada propiedad nBmpAlignment
- TButtonMod: Nuevas propiedades: oMenu y nOrientation
- TButtonMod: Nuevo evento OnMenuClick
- TButtonMod: Nuevas propiedades lDefault y lCancel
- TButtonMod: Eliminada propiedad oBitmaps. Sustituida por oImagelist + nImage
- TBtnPanelMod: Nueva propiedad nBorderRadius
- TEditBtn y TDateEdit: Mejoras de pintado
- TListBoxMod: Nueva propiedad lShortCuts para soportar atajos de teclado
- TSplitter: Removed nResizeStyle property as useless
- TTabs/TTabsItem: Eliminados bitmap de la cruz para cerrar pestañas. Ahora se pintan
- TImagelist/TBtnBmp: Soporte de ficheros PNG
- THyperLink: No funcionaban los atajos de teclado (shortcuts)
- TRadioMod: Nueva propiedad nOpacity
- TRadioMod: Eliminada propiedad nVAlignment (gestión deprecated)
- TRadioMod: Cambiada altura a 28
- THeaderMod: Cambiada altura a 28
- TEditMod: Cambiada altura a 28
- TEditMod: Evitar guión bajo en cHint
- TBrowseMod: Cambiada altura a de Header y Footer a 28
- TComboBoxMod: Soporte de filtros en la lista desplegable según texto introducido
- TFastReport: Error en VariableList() y CategoriesList()
- DataControls
- TDataset: Error por actualizacion indebida de campos no modificados
A partir de Xailer 8 se controla cualquier cambio de tipo (Valtype())
en los campos de un dataset (TDataField) y se generá un error de ejecución en el caso de que se produzcan.
Es probable que esto provoque errores en su código. Entendemos que es mejor mostrar el ERROR que enmascararlo. - TDataField: Nuevo método HasChanged( Value )
- TSqlite: Actualizado a la versión 3.38.5
- TSqlite: Permitir conectar (ATTACH) una BD sin cifrar a una BD cifrada ya abierta.
Antes las dos BD tenian que estar sin cifrar, o cifradas con la
misma clave. Ahora, la segunda puede estar sin cifrar. Si ambas estan
cifradas pero con distinta clave se producira un error. - Sqlite:: Aumentada la precision de la funcion local_timestamp() a milisegundos
- TMySql/TMariaDB:: Permitir indicar la precision de los DATETIME y TIMESTAMP en CreateTable()
La precision se indica como decimales, mientras que la longitud se puede dejar a 0 y se ignora. P.ej.: { «Fecha», «T», 0, 3 } - TDBBrowseMod: Error en AdjustColsWidth()
- Nuevo método en todos los DataControls DbLinked() que permite saber si el DataField ha sido asignado con éxito
- TWebDataSource: Actualizado modulo XA_wdsMySql.php con soporte de charset
- TDataset: Error por actualizacion indebida de campos no modificados
- Clases
- TSysVer: Soporte de Windows 11
- Funciones
- Nueva función XA_DRAWROUNDEDRECT // XA_DrawRoundedRect( hDC, rect, nDia, nColor, nTransparency, nPenSize ) –> NIL
- Nueva función XA_FILLROUNDEDRECT // XA_DrawRoundedRect( hDC, rect, nDia, nColor, nTransparency ) –> NIL
- Nueva función XA_UrlEncode( ) ->
- Nueva función XA_UrlDecode( ) ->
- Nueva función XA_UrlDecodeToAnsi( ) ->
- Nueva función XA_DateTimeZ2Local( )
- Comandos
- Nuevo comando:
FILE INTO
NOTA: Permite leer el contenido del fichero dentro de la
variable , en tiempo de compilacion. Funciona parecido a
#include, pero el contenido va a parar a la variable
- Nuevo comando: