FTPFile para Xailer 2.5

Esta es una actualización del componente FTPFile para Xailer 2.5 con los siguientes cambios:

Componente TFTPFile:

  • Ampliado el tamaño de la propiedad nBuffer a 32kb.
  • Nueva propiedad oFtp para poder usar directamente el objeto TFtp.  Esta propiedad permite enviar comandos directamente al servidor ftp como oFTP:CreateDirectory(), oFTP:RenameFile(), etc. igual que al usar el componente TFtp nativo.

Componente TCDOMail:

  • lHTML, permite el envío de mensajes con formato HTML.
  • cCharSet, establece el conjunto de caracteres para la codificación del mensaje.
  • nPriority, prioridad del mensaje. Sus valores están definidos en includeCDOMail.ch.
  • lReceipt, establecer acuse de recibo.
  • cReceiptTO, dirección de envío para el acuse de recibo.
  • nTimeOut, tiempo de espera máximo del objeto CDO para establecer la conversación con el servidor de correo.

También se incluye la clase TBlatMail de la RTL de Xailer para poder establecer sus propiedades visualmente desde el inspector de objetos del IDE y se añaden tres nuevas clases descendientes de TCDOMail con los datos de conexión ya preconfigurados para poder usar estos servicios de correo de forma sencilla.

  • TCDOYahooMail
  • TCDOHotMail
  • TCDOAOLMail

El zip incluye la DLL y la librería para Xailer 2.5 o superior.

Error.log

Cuando lanzamos una aplicación desde el IDE y aparece un error en tiempo de ejecución sucede que, por motivos que van desde el cansancio o la falta de concentración hasta directamente porque se ha producido un error no recuperable (recursión, GPF, etc.), se cierra la aplicación sin darnos tiempo a anotar en qué lugar del código estaba el error.

Sigue leyendo

Actualización de Xailer 2.5

¡¡Nueva versión de Xailer disponible!!

Ya está disponible la nueva versión de Xailer 2.5.1  que incorpora importantes correciones sobre la versión 2.5 y algunas mejoras:

  • IDE:
    • Correcciones varias en Intellisense
    • Mejoras en la gestión de Plugins
    • Al copiar controles, se duplicaban sus eventos en el .xfm
    • Error al intentar borrar un ExplorerGroup
    • Ajustes en el guardado de la propiedad oFont de los controles
    • Error al copiar elementos con aItems que no eran objetos (p.ej. listbox)
    • SQLite Editor: Nueva funcionalidad en editor para ejecutar procesos BATCH
  • General:
    • Debido a cambios internos en el sistema de Plugins es necesario reconstruirlos
  • Controles
    • TOcx: No dejaba escribir caracteres acentuados dentro de un OCX
    • TControl: Al hacer click fuera de un menu popup, siempre se disparaba la opcion por defecto. Usar nuevo parámetro lCanceled para conseguir misma funcionalidad
    • TControl: Nuevo parametro lCanceled en ShowPopupMenu(), que se recibe por referencia y se rellena a .T. si el usuario ha cerrado el menu sin seleccionar una opcion
    • TControl: Usar oFont del formulario si oFont = Nil y lParentFont = .F.
  • Ejemplos
    • samplesMetaControlsOffice2007Buttons: Ejemplo de metacontrol que crea un boton con estilo Office2007 a partir de un TGlassBtn
    • samplesPluginsMoreOptions: Nuevas opciones y mejoras. Ahora utiliza un diálogo en vez de un menú
    • samplesPluginsHelloWord: Plugin basico para usar como plantilla o como punto de partida de otros plugins
  • Documentación
    • Actualizada a los últimos cambios

    En esta ocasión no hemos habilitado el sistema de ‘Auto Update’ debido a los grandes cambios existentes: nuevo IDE, nuevas ayudas y nuevos ejemplos.

    Un cordial saludo,

    [El equipo de Xailer]

  • Xailer 2.5

    ¡¡Nueva versión de Xailer disponible!!

    Ya está disponible la nueva versión de Xailer 2.5 que incorpora importantes novedades:

    • IDE:
      • Nuevo: Sistema de copiar/pegar controles en los formularios que corrige problema de controles con objetos en aItems
      • Nuevo: Soporte de Intellisense
      • Nuevo: Soporte de Plantillas (Archivo->Nuevo->Desde plantilla y Archivo->Guardar como plantilla)
      • Nuevo: Soporte de Metacontroles
      • Nuevo: Soporte de Plugins y gestor de Plugins en menú Componentes->Plugins
      • Nueva ventana de inicio cuando no hay ningún proyecto cargado
      • Actualizado scintilla a 2.1.2
      • Soporte de hotspots (URLs) en los comentarios en Herramientas->Opciones del editor->Apariencia
      • Nuevo botón para restaurar los colores por defecto desde el formulario de configuración del IDE
      • Arreglado bug al guardar propiedad TOptionItem:Cargo
      • Error de salvado en la propiedad oExplorerGroup:Cargo
      • Error esporádico al cerrar proyecto
      • Error al cambiar el color de la fuentes de más de un control a la vez
      • Busqueda de TODO/TOFIX en comentarios multilínea
      • Completadas las traducciones en todos los idiomas soportados
      • Nueva opción «Establecer módulo principal» en el árbol del gestor de proyectos
      • Reescrito el editor de valores numéricos con decimales en el inspector de objetos para que funcione en línea sin mostrar ningún formulario
      • Mostrar información sobre el fichero en curso en la tooltip de las pestañas del editor
      • Nueva opción «Cerrar todas las pestañas» en el menú contextual del área de mensajes
      • Al pulsar F2 sobre un control en el editor de formularios se entra a editar la propiedad ‘cText’
      • Al pulsar F2 en el inspector se activa la edición ‘extendida’, si la propiedad lo soporta
      • Indicar el número de ocurrencias y ficheros en ‘Buscar en ficheros’
      • SQLite editor: mostrar las sentencias DDL que se ejecutan en cambios de tabla
      • Mostrar el número de elementos que contienen las vistas ToDo, Puntos de ruptura y Marcas como tooltip de la pestaña
      • Al hacer doble click en una línea de error de un .h, no se mostraba en el editor
      • Al hacer doble click en la pestaña del editor seleccionar el archivo en el gestor de proyectos
      • Detener la compilación al intentar cerrar la pestaña «Compilar» del área de mensajes
      • No lanzar la compilación si ya se está compilando
      • Mostrar las calltips alineadas con la función
      • Recordar la altura de la ventana Output entre sesiones
      • Permitir cerrar la ventana Output con ESC desde el editor de código
      • Bug al seleccionar código entre paréntesis con Ctrl+E
      • Opción para configurar carpetas de usuario en Herramientas->Opciones->Carpetas->Carpetas de usuario
      • Permitir personalizar la fuente para Intellisense en Herramientas->opciones del editor->Calltips e Intellisense
      • Usar Enter para pasar al editor de código desde el visor de marcas, puntos de ruptura y tareas
    • General
      • Colors.chLa definición de colores del tipo CLR_nombre son obsoletos y se eliminarán en la siguiente versión de Xailer
      • Controls.chEliminado #translate ?
    • DataControls
      • TDbfDataset: Error en uso lReuseDel
      • TDbfDataset: Mejorar la información del error en el método OrdSetFocus()
      • TMySQL: Soporte de DateTime y TimeStamp
    • Formularios
      • Nuevo evento OnCopyData()
    • Controles
      • TGlassBtn: Nuevo control tipo botón utilizando GDI+
      • TShiftPanel: Nuevo control tipo TPanel
      • TOcx: Correcciones en el control del foco y otros problemas
      • TRichEdit: Error en método GetLine()
      • TRichEdit: Corregida forma de crear oFont en método Create
      • TRichEdit: Cargar filtros de conversión de Office 2010
      • TRichedit: Buscar los filtros de conversión en el directorio de la aplicación
      • TMessagebox: Corregido valor de retorno en Run()
      • TMessagebox: Permitir mostrar el timeout también en el título
      • TStatusPanel: Ajuste en el cálculo de la posición de controles embebidos en paneles
      • TEditBtn: Nuevos estilos ebARROW y ebPROMPT
      • TEditBtn: Nueva propiedad cPrompt
      • TBtnBmp: Nuevos estilo fsRAISED
      • TColorComboBox: Nueva propiedad lAddColor
      • TDBBrowse: Evitar posible error en destrucción del formulario
      • TAdoDataSource: Bug en método Execute() al devolver un recordset
      • TBrwCol: Incorrecto posicionamiento del menú contextual en oHeader
      • TListViewGroup: Establecer correctamente cHeader, cFooter, nHeaderAlign y nFooterAlign
      • TListViewColumn: Establecer correctamente nAligment
      • TListViewColumn: Mostrar correctamente la imagen al cambiar nAlignment
    • Otras clases
      • TBlatMail: Error en lReceipt
      • TBlatMail: Nuevas propiedades: lUndisclosedRecipients, nTimeOut, nTries y nAuth
      • TMailSlotServer y TMailSlotClient: Nuevas clases para intercambio de datos entre aplicaciones
      • TCanvas: Nuevos métodos AngeArc, Arc, ArcTo, Chord y Pie
      • TCanvas: Nuevo método GetPos()
      • TMenu: Nuevo método Refresh()
    • TComboBox: No quitar los espacios al añadir elementos
      • TCalculator: Nuevo parámetro para pegar el resultado de la calculadora al control activo
      • TRecentList: No se refrescaba la lista al establecer las propiedades lAutoSave y lAutoRemove
      • TFileOperationDlg: Nuevas propiedades lFilesOnly y lNoCopySecurityAttrib
    • Funciones
      • Nuevas funciones AngleArc(), Arc(), ArcTo(), Chord() y Pie()
      • Nueva funcion SendWMCopyData()
      • Nueva funcion SHGetFolder()
      • Función MakeNestedDir() devuelve código de error compatible con DirMake()
      • Función GetFileVersionInfo() obtiene información de versión de ejecutables y DLLs
      • Soporte íntegro del api GDI+ (609 funciones)
    • Ejemplos
      • samplesMetaControlsPanelOkCancel: Ejemplo de metacontrol que construye un panel que contiene un botones Aceptar y otro Cancelar con varias propiedades preestablecidas
      • samplesGlassBtn: Ejemplo de control TGlassBtn
      • samplesShiftPanel: Ejemplo de control TShiftPanel
      • samplesPluginsMoreEdit:Ejemplo de un plugin con dos extensiones:
        • Menu MoreEdit: agrega un menú al menú Edit con las opciones SetCaseUpper/Lower/Capitalize, iguales a las del menu Especial, opción de invertir mayúscuals y minúsculas, opción de ordenar líneas A-Z o viceversa y opción de renumerar defines numéricos
        • Opcion QuickFind: agrega una opción al menú Buscar que muestra un formulario para buscar y/o marcar interactivamente como en Firefox
      • samplesPluginsMoreOptions:Ejemplo de un plugin que añade una opción «Opciones extra del editor» al menú Herramientas y permite personalizar varios aspectos del editor de código
      • samplesMailSlotServer y samplesMailSlotClient:Ejemplo de uso de Inter Process Communications (IPC) usando MailSlots
      • samplesWMCopyDataServer y samplesWMCopyDataClient:Ejemplo de uso de Inter Process Communications (IPC) usando SendWmCopyData y evento TForm:OnCopyData
      • samplesGdiPlusExif: Mostrar informacion EXIF de imágenes
      • samplesGdiPlusConvert: Conversión entre formatos de imágenes
    • Documentación
      • Actualizada a los últimos cambios

    Os recordamos que al igual que ocurrió con la versión anterior se requiere volver a registrar el producto ya que ha cambiado la clave de activación.  El registro sólo será posible realizar en máquinas que estén activas y además la licencia tenga la suscripción igualmente activa.

    Podrá comprobar hasta que versión puede actualizar consultando su información de registro desde la opción de menú Ayuda->Información de registro.

    Para simplificar el proceso de registro para todas aquellas personas que no puedan acceder vía Web al sistema de registro de Xailer, cada vez que se lance una nueva versión todos los usuarios activos recibirán un Email con la clave de registro para todas las máquinas que tienen activas.

    No intente actualizarse a esta versión hasta que tenga absoluta certeza de que tiene derecho a recibirla.

    Un cordial saludo,

    [El equipo de Xailer]

    Intellisense (auto completado de código) en Xailer

    Estimados usuarios de Xailer,

    Como bien podéis imaginar por el título de esta publicación, la próxima versión de Xailer (2.5) incluirá soporte de ‘Intellisense’ o completado de código al igual que hacen otras herramientas de desarrollo de más renombre.

    Xailer será posiblemente el primer entorno de desarrollo basado en [x]Harbour que aporte ‘Intellisense’ o completado de código, y no sólo de funciones, sino también de clases y miembros de las mismas con cualquier nivel de herencia, tanto a nivel de la RTL de Xailer como de los propios proyectos o subproyectos que tenga el usuario abiertos.

    Sigue leyendo

    Xailer 2.4

    Estimados usuarios de Xailer,

    ¡¡Nueva versión de Xailer disponible!!

    Ya está disponible la nueva versión de Xailer 2.4 que incorpora importantes novedades, sobre todo en su IDE como son:

    • Uso de pestañas en el área de mensajes que permite guardar historial de todas las búsquedas realizadas y no perder dicha información cuando se compilaba el proyecto por ejemplo
    • Soporte de búsquedas globales en todo el disco
    • Ampliado el sistema de búsqueda de ‘definición bajo el cursor’ a todo el proyecto
    • Sistema de mantenimiento de comentarios TODO y TOFIX
    • Actualización automática del estado de mayúsculas y minúsculas en las variables, parámetros y miembros de clase

    Y otras muchas mejoras que podéis encontrar en el archivo LoNuevo.htm

    Ya tenemos muy avanzado el soporte completo de ‘Intellisense’ para toda la RTL de Xailer y esperamos que esté disponible para la siguiente versión 2.5. Las tres otras áreas en las que estamos trabajando muy activamente son:

    • Corrección de errores en operaciones de copiar y pegar
    • Operaciones de ‘deshacer’ en el editor de formularios
    • Soporte nativo de FireBird para Xailer Enterprise

    Esperamos que también esté todo terminado para la futura versión 2.5.

    Os recordamos que al igual que ocurrió con la versión 2.3 se requiere volver a registrar el producto ya que ha cambiado la clave de activación.  El registro sólo será posible realizar en máquinas que estén activas y además la licencia tenga la suscripción igualmente activa.

    Podrá comprobar hasta que versión puede actualizar consultando su información de registro desde la opción de menú Ayuda->Información de registro.

    Para simplificar el proceso de registro para todas aquellas personas que no puedan acceder vía Web al sistema de registro de Xailer, cada vez que se lance una nueva versión todos los usuarios activos recibirán un Email con la clave de registro para todas las máquinas que tienen activas.

    No intente actualizarse a esta versión hasta que tenga absoluta certeza de que tiene derecho a recibirla.

    Un cordial saludo,

    [El equipo de Xailer]

    Case match

    En esta ocasión es Ignacio el que nos sorprende con una mejora muy agradable para el IDE que estará disponible en la próxima revisión: el case matching.

    En la animación se puede observar como al escribir nKey (declarado como parámetro del método) y nIndex (declarada como variable local) en minúsculas,  el IDE actualiza automáticamente el estado de mayúsculas/minúsculas de las variables, parámetros y miembros de clases para hacerlos coincidir con su definición.

    CaseMatch