tag:blogger.com,1999:blog-34399651739212046682024-03-06T01:04:43.179-08:00Pascal y LazarusJosé Torreshttp://www.blogger.com/profile/01813554554228991068noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-3439965173921204668.post-57372916771613922152013-06-24T03:02:00.000-07:002013-06-24T03:02:02.681-07:00La librería IBDAC<br />
<div style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span></div>
<br />
<div dir="ltr" id="docs-internal-guid-76a02615-6795-89a1-dae2-42f8cd3ebd18" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">En
nuestra empresa buscábamos una librería rápida y confiable para
conectar nuestros sistemas a Firebird, y luego de hacer pruebas con las
librerías nativas de Lazarus y varias otras librerías comerciales, nos
decidimos por IBDAC.</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">IBDAC
(Interbase Data Access Components) es una librería comercial,
desarrollada por <a href="http://www.devart.com/" target="_blank">Devart</a>. La primera versión es del año 2006, aunque
recién en el 2008 se le agregó soporte para Free Pascal, y en el 2011
para Lazarus. La versión actual es la 5.0.</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"><br /></span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;">Aunque
cada versión está certificada para una versión específica de Lazarus /
Free Pascal, en la práctica la he podido instalar sin problemas en todas la
versiones de Lazarus posteriores a la 0.9.30.</span></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGVRMGOJ-QSxgpkdNKkE9G4QT3KwY49AeCpdfoIWbubk1ni-q_-dClbvqLT1qgtVBZxonQQ_snAtLOk3Sd1oJgNVm36jIXjIjDCGJTSMtUbl9prC-ieSLyrNqUiDBxfBE94kRqstuWvG8/s1600/IBDAC+en+Lazarus+1.0.10+32+bits.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="IBDAC instalada en Lazarus 1.0.10" border="0" height="53" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGVRMGOJ-QSxgpkdNKkE9G4QT3KwY49AeCpdfoIWbubk1ni-q_-dClbvqLT1qgtVBZxonQQ_snAtLOk3Sd1oJgNVm36jIXjIjDCGJTSMtUbl9prC-ieSLyrNqUiDBxfBE94kRqstuWvG8/s400/IBDAC+en+Lazarus+1.0.10+32+bits.png" title="" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">IBDAC instalada en Lazarus 1.0.10</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-eado6zUmzO76NMDy9iGQz0eYN6tq4rDEUFqJ4BQHRLL9FL8fRsUfP7yvm4cUYJPngTBmveEovUgGRKOjHDrAuFDk3MCA0xXDh333wiWq7hJfvDMiY5fso4AP2ClO-4H_ElVDFrYlo8I/s1600/IBDAC+en+Typhon+4.3+32+bits.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="... instalada en Typhon 4.3 de 32 bits" border="0" height="90" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-eado6zUmzO76NMDy9iGQz0eYN6tq4rDEUFqJ4BQHRLL9FL8fRsUfP7yvm4cUYJPngTBmveEovUgGRKOjHDrAuFDk3MCA0xXDh333wiWq7hJfvDMiY5fso4AP2ClO-4H_ElVDFrYlo8I/s400/IBDAC+en+Typhon+4.3+32+bits.png" title="" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">... instalada en Typhon 4.3 de 32 bits</td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjGoQZZ_WjA48vmAsokVpFFZn6Dv6CriozfCqOaEbvyEwE1gX5Hg1u2CQP2FCUY_29_dtsDkNvyu1qoxPfkR7yOVTyGT_q0pbzSTMs5RabGruHJiD-Fj6zodJdYWt51owl8qqUdjkz7DQ/s1600/IBDAC+en+Typhon+4.3+64+bits.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="... instalada en Typhon 4.3 de 32 bits" border="0" height="91" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjGoQZZ_WjA48vmAsokVpFFZn6Dv6CriozfCqOaEbvyEwE1gX5Hg1u2CQP2FCUY_29_dtsDkNvyu1qoxPfkR7yOVTyGT_q0pbzSTMs5RabGruHJiD-Fj6zodJdYWt51owl8qqUdjkz7DQ/s400/IBDAC+en+Typhon+4.3+64+bits.png" title="" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">... instalada en Typhon 4.3 de 64 bits</td></tr>
</tbody></table>
Al instalar esta librería aparecen dos nuevos tabs en la barra de herramientas de Lazarus. El primer tab lleva por título "Interbase Access" y contiene los componentes de acceso a la base de datos. El título del segundo tab es "Interbase Services", contiene los componentes de acceso administrativo, estadístico y de configuración de la base de datos. Los componentes <b>TCRBatchMove </b>y <b>TVirtualTable </b>aparecen en el tab "Data Access".<br />
<br />
La librería IBDAC tiene una enorme cantidad de funciones y características, entre las que destacamos las siguientes:<br />
<br />
<u><b>Modo desconectado</b></u>: En este modo la conexión se hace solamente cuando se la necesita. Para habilitarlo se debe setear en True la propiedad <b>DisconnectedMode </b>de la conexión. Luego de realizar las llamadas al servidor la conexión se cierra en forma automática. Los datasets permanecen abiertos aunque la conexión esté cerrada. Cuando se actualiza la información del dataset la conexión se abre, se envía la actualización, y se vuelve a cerrar.<br />
El modo desconectado es muy útil en redes inseguras, pero tiene el inconveniente de que cada conexión requiere ser autorizada, y eso consume tiempo. Para evitarlo, podemos usar el componente <b>TCustomDAConnection</b>, que mantiene un pool de conexiones abiertas. De esa forma, cada vez que el sistema necesita conectarse a la base de datos, en vez de construir una nueva conexión utiliza una de las disponibles en el pool, reduciendo enormemente los tiempos. <br />
Es recomendable además setear a True la opción <b>LocalFailover </b>de la conexión.<br />
<br />
<u><b>Local maestro-detalle</b></u>: Cuando esta propiedad del <b>TCustomDADataSet </b>se pone en True las relaciones maestro-detalle usan filtrado local, sin referirse al servidor. De otro modo el dataset detalle ejecuta un query cada vez que se selecciona un registro en el dataset maestro. Esta opción es muy útil para reducir la cantidad de llamadas al servidor, mejorando el uso de recursos, aunque no es recomendable cuando la tabla detalle contiene demasiadas filas. <br />
<br />
<u><b>Unicode</b></u>: IBDAC soporta el formato Unicode UTF-8, para habilitar su uso utilizamos la propiedad <b>UseUnicode</b> de la conexión. El valor de esta propiedad afecta los resultados de las consultas y procedimientos almacenados. Si se va a utilizar este formato, hay que tener en cuenta las recomendaciones del manual sobre las conversions entre StringField y WideStringField.<br />
<br />
<u><b>Encriptación de datos</b></u>: IBDAC permite encriptar y desencriptar campos en la base de datos. Para eso es necesario agregar el componente <b>TCREncryptor </b>al dataset y especificar qué campos serán encriptados. Así, cuando se agregue o modifique la información de la tabla, se encriptará en el lado del cliente antes de guardarla. Del mismo modo, el componente desencriptará en forma automática al leer desde la base de datos.<br />
Existen dos formas de trabajar: guardamos solamente los datos encriptados, o bien les agregamos el GUID y el hash. La segunda forma es la preferible en términos de seguridad, aunque consume más recursos.<br />
<b>TCREncryptor </b>soporta la encriptación solamente de campos string o binarios, por razones de tamaño de buffer. Si es necesario encriptar campos de otro tipo (como fechas, números, etc.), es necesario crear un campo de tipo binario o BLOB en la tabla, y luego convertirlo en el tipo correcto en el lado cliente, con ayuda del <b>Mapeo de Tipo de Datos</b>.<br />
<br />
<u><b>Mapeo de Tipo de Datos</b></u>: es un recurso que permite crear mapeos entre tipos de campos de la base de datos y tipos de datos Delphi.En versiones anteriores, donde el Mapeo de Tipo de Datos o ea soportado, IBDAC establecía automáticamente la correspondencia entre ambos tipos. En las versiones que soportan el mapeo, la correspondencia puede establecerse en forma manual.<br />
El mecanismo es inteligente, pueden establecerse reglas para ignorar los errores de conversión, en caso de desbordes numéricos o de cadena.<br />
<br />
<u><b>CachedUpdates</b></u>: Cuando está habilitada, esta propiedad permite que las modificaciones a un dataset (modificaciones a un registro, agregar un nuevo registro, borrar un registro) se guarden en una cache interna del lado cliente en lugar de ser escritos directamente a las tablas de la base de datos. Cando los cambios están completos, todos los cambios se escriben dentro de una sola transacción.<br />
Este mecanismo es especialmente útil para aplicaciones cliente trabajando con servidores remotos, ya que de esta forma se reducen la cantidad de transacciones y los tiempos empleados, disminuyendo por lo tanto el tráfico de red. <br />
<br />
<u><b>Tablas Virtuales</b></u>: Con el componente TVirtualTable es posible almacenar datos en forma independiente de la base de datos. Los campos de la tabla pueden ser definidos tanto en tiempo de diseño como en runtime. Se pueden definir filtros, así como crear índices sobre los campos de la tabla. Dispone de los métodos <b>Locate </b>y <b>LocateEx </b>para hacer búsquedas. Es posible hacer persistente la información ingresada en tempo de diseño usando la opción <b>voStored</b>. En tiempo de ejecución las modificaciones se pueden guardar usado el método <b>SaveToFile </b>y posteriormente recuperar llamando al método <b>LoadFromFile</b>. <br />
<br />
<u><b>Monitoreo</b></u>: Es posible monitorear y analizar las llamadas a la base de datos hechas por nuestras aplicaciones, utilizando la herramienta gratuita <b>dbMonitor</b>. Los eventos puede ser ordenados y filtrados por descripción, timestamp, duración o estado.<br />
<br />
En la práctica, luego de adoptar IBDAC como nuestra principal herramienta de acceso a bases de datos, hemos desarrollado dos proyectos comerciales - <a href="http://www.logosoftcr.com/" target="_blank"><b>Capital 5</b></a> y <a href="http://www.sistemas.org/" target="_blank"><b>Visual Sueldos 5.10</b></a> (para la empresa Logosoft de Argentina) - y varias herramientas de uso interno, incluyendo un CRM y . Entre nuestros planes está el testeo de<b> </b>otras herramientas del mismo fabricante.<br />
<br />
<br />
<br />
<br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span>
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"></span>José Torreshttp://www.blogger.com/profile/01813554554228991068noreply@blogger.com1tag:blogger.com,1999:blog-3439965173921204668.post-57995677299710259592013-06-10T13:23:00.000-07:002013-06-24T03:13:08.986-07:00Typhon 4.3 : nueva versión de CodeTyphon, sin mencionar a Lazarus<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
El 2 de junio pasado PilotLogic liberó la versión 4.3 de CodeTyphon. Esta vez el producto lleva el nombre de Typhon, y si vemos el Acerca de, el texto dice:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguN48g-mFbTL5iz4Pxt_G_-qGzc3Klark-1yXbr51ext2CjiMhLi_HCYO02F__8WfcJ_lFVCNzoz5rLEN34H6_OvUslFzdzeK7QwVNGT_6TpEqtRGeGQdEvPTmYeIoHGaYNcCrFME7_M4/s1600/Typhon+acerca+de.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="281" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguN48g-mFbTL5iz4Pxt_G_-qGzc3Klark-1yXbr51ext2CjiMhLi_HCYO02F__8WfcJ_lFVCNzoz5rLEN34H6_OvUslFzdzeK7QwVNGT_6TpEqtRGeGQdEvPTmYeIoHGaYNcCrFME7_M4/s320/Typhon+acerca+de.jpg" width="320" /></a></div>
<br />
sin ninguna mención a Lazarus, aunque el IDE sigue siendo claramente el de Lazarus, eso sí, con algunas mejoras.<br />
<br />
<h3>
<b>Instalación de CodeTyphon</b></h3>
La instalación en Windows es muy fácil, basta con descomprimir el paquete y ejecutar <b>install.bat, </b>seleccionando la opción 0 se instalará CodeTyphon Studio, una vez instalado, y en la misma ventana de terminal nos aparecerán las opciones para instalar FreePascal y Typhon. Para una instalación limpia es mejor seleccionar la opción 8. Aquí sí es necesario un poco de paciencia.<br />
<br />
Si el Windows es de 64 bits se instalarán las versiones de 32 y 64 bits. La primer vez que lo instalé la de 64 bits no arrancaba, diciendo que faltaba una librería. Pienso que había algún conflicto con a versión 1.0.8 de Lazarus que tenía instalada en el mismo equipo. Desinstalé CodeTyphon y Lazarus, reinicié el equipo y volví a instalar CT. Esta vez, todo funcionó sin problemas.<br />
<h3>
Instalación de paquetes </h3>
El primer paquete que instalo siempre para probar compatibilidad es la librería IBDAC de Devart. Una versión de CodeTyphon o Lazarus que no permita instalar esta librería no nos sirve, ya que es nuestra librería por defecto para manejar bases de datos.<br />
<br />
Esta es la lista de librerías probadas, y su compatibilidad con las dos versiones de Typhon: <br />
<br />
<table border="0" cellspacing="0" cols="3"><tbody>
<tr><td align="LEFT" height="18"></td><td align="CENTER"></td><td align="CENTER"></td></tr>
<tr><td height="17" style="text-align: center;"></td><td align="CENTER"></td><td align="CENTER"><table border="0" cellspacing="0" cols="3">
<colgroup width="293"></colgroup>
<colgroup span="2" width="85"></colgroup>
<tbody>
<tr>
<td align="CENTER" bgcolor="#94BD5E" height="39" rowspan="2" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;" valign="MIDDLE"><b>Librería</b></td>
<td align="CENTER" bgcolor="#94BD5E" colspan="2" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;" valign="MIDDLE"><b>Compatible con</b></td>
</tr>
<tr>
<td align="CENTER" bgcolor="#94BD5E" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><b>Typhon 32</b></td>
<td align="CENTER" bgcolor="#94BD5E" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;"><b>Typhon 64</b></td>
</tr>
<tr>
<td align="LEFT" height="22" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">IBDAC 4.01 </td>
<td align="CENTER" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">SI</td>
<td align="CENTER" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">SI</td>
</tr>
<tr>
<td align="LEFT" height="22" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">AJLazCtrls</td>
<td align="CENTER" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">SI</td>
<td align="CENTER" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">NO</td>
</tr>
<tr>
<td align="LEFT" height="22" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">csvBase </td>
<td align="CENTER" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">SI</td>
<td align="CENTER" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">SI</td>
</tr>
<tr>
<td align="LEFT" height="22" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">ZVDateTimeCtrls 1.4</td>
<td align="CENTER" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">SI</td>
<td align="CENTER" style="border-bottom: 1px solid #000000; border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000;">SI</td>
</tr>
</tbody></table>
</td>
</tr>
<tr>
<td align="LEFT" height="18"></td>
<td align="CENTER"><br /></td>
<td style="text-align: left;"><br /></td><td align="CENTER"><br /></td><td align="CENTER"><br /></td><td align="CENTER"><br /></td><td align="CENTER"><br /></td><td align="CENTER"><br /></td><td align="CENTER"><br /></td><td align="CENTER"><br /></td><td align="CENTER"><br />
<br /></td>
</tr>
</tbody></table>
<br />
El problema con AJLazCtrls es que el paquete no tiene definiciones para WIN64, necesarias para compilar en 64 bits. Habría que probar forzando la definición de 32 bits.<br />
<br />
Usando Typhon 4.3 32 puedo compilar sin problemas nuestros proyectos Lazarus. <br />
<br />
<table border="0" cellspacing="0" cols="3"><tbody></tbody></table>
<br />
<table border="0" cellspacing="0" cols="3"><tbody></tbody></table>
José Torreshttp://www.blogger.com/profile/01813554554228991068noreply@blogger.com0tag:blogger.com,1999:blog-3439965173921204668.post-3887878454835818622012-08-02T10:02:00.000-07:002012-08-02T10:11:35.916-07:00CodeTyphon 2.80 ya está disponibleCon muchas novedades (ver la lista <a href="http://pilotlogic.com/codetyphon/changeslog.txt" target="_blank">aquí</a>) CodeTyphon 2.80 es la mejor versión hasta ahora de este cada vez más popular IDE Lazarus - FreePascal. Las mejoras son evidentes desde el mismo momento de la instalación.<br />
Como siempre, luego de descargar CT y descomprimirlo en una carpeta temporaria, ejecuté install.bat y seleccioné la opción de instalar reemplazando la versión 2.70. Todo fué normal, al terminar la instalación y cuando apareció el menú de opciones de Codetyphon seleccioné la opción de construir todo.<br />
Esta vez fuí más astuto que cuando instalé el 2.70, y recordé respaldar la carpeta <i>userschemes</i>, donde se guardan las combinaciones de colores del editor definidas por el usuario.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlo5KlhfBR7_2TfPcQXsbo9A3UsrVGNmKqxd0IURO5txVHKTk_KFAHldkAUYbMlCeva9BbFSo9pzmIOgtpijbT26SwbYLUxRPeeN9tpg1vC5Ole5rwkVstBrTHJZMiTgit85mZLRLdajA/s1600/dropmenu.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img alt="dropmenú de Lazarus ordenado por categorías" border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlo5KlhfBR7_2TfPcQXsbo9A3UsrVGNmKqxd0IURO5txVHKTk_KFAHldkAUYbMlCeva9BbFSo9pzmIOgtpijbT26SwbYLUxRPeeN9tpg1vC5Ole5rwkVstBrTHJZMiTgit85mZLRLdajA/s320/dropmenu.png" title="" width="252" /></a></div>
Al iniciar Lazarus lo primero que noté es que el dropmenú selector de paletas está mucho mejor ordenado, ahora las páginas de componentes están organizadas por categorías.<br />
<br />
Sugerencia:<br />
Sería muy bueno que al agregar un nuevo paquete a Lazarus se pudiera indicar a qué categoría pertenece, o crear una nueva categoría para el dropmenú. <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
En el menú principal se puede ver una de las novedades de esta versión: el paquete LazSolutions, con tres herramientas muy útiles:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM4-NGKfTHT3xXETiXP7No1ZmcA9izEgNv-e-U5LsoHQ0cYPFv0VuHDuebWqeRTaby3_qa4TL7OE37fy4eUDa9fE9Vhfdt2VWSpebKDDpNBjTgRdcbtHm1koPUTOqBDnDdl2NdI9kZND0/s1600/men%C3%BA+LazSolutions.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Nuevas herramientas de LazSolutions" border="0" height="100" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM4-NGKfTHT3xXETiXP7No1ZmcA9izEgNv-e-U5LsoHQ0cYPFv0VuHDuebWqeRTaby3_qa4TL7OE37fy4eUDa9fE9Vhfdt2VWSpebKDDpNBjTgRdcbtHm1koPUTOqBDnDdl2NdI9kZND0/s320/men%C3%BA+LazSolutions.png" title="" width="320" /></a></div>
<br />
Entre los paquetes actualizados pude ver los BGRAControls con demos actualizadas, muy buenas y que FUNCIONAN! con muchos estilos para elegir.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjU2czT-zA8dNj2hPq64A7IBA4iXWWJpZCjRCsTgQmcTZpCSM5grpqS81yAXl2l4XXhGDRrz1hChAAnaAVkCWPov3HDvJ8yxxX-Rl-k-7GJKQbEQtWmQmfoXqHU2OT0A5fFu38pvK_c-0/s1600/test+BGRAControls.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="229" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjU2czT-zA8dNj2hPq64A7IBA4iXWWJpZCjRCsTgQmcTZpCSM5grpqS81yAXl2l4XXhGDRrz1hChAAnaAVkCWPov3HDvJ8yxxX-Rl-k-7GJKQbEQtWmQmfoXqHU2OT0A5fFu38pvK_c-0/s320/test+BGRAControls.png" width="320" /></a></div>
<br />
<br />
Pienso seguir posteando sobre esta versión, pero con lo que ya he visto puedo decir sin dudas que CodeTyphon es una extraordinaria herramienta que mejora mucho en cada versión. <br />
<br />José Torreshttp://www.blogger.com/profile/01813554554228991068noreply@blogger.com0tag:blogger.com,1999:blog-3439965173921204668.post-67625735302247191262012-06-19T20:58:00.000-07:002012-06-19T20:58:54.786-07:00DSPack : Librería multimedia para Lazarus<br />
<div style="margin-bottom: 0cm;">
DSPack es un conjunto de componentes
para escribir aplicaciones multimedia usando las tecnologías MS
Direct Show y DirectX. Originalmente desarrollado para Delphi, el
proyecto ha sido portado a Lazarus por <a href="http://www.lazarus.freepascal.org/index.php?action=profile;u=39022">TheBlackSheep</a>,
y está disponible para su descarga en
<a href="https://github.com/TheBlackSheep/DSPack-Lazarus">https://github.com/TheBlackSheep/DSPack-Lazarus</a></div>
<div style="margin-bottom: 0cm;">
<br />
</div>
<div style="margin-bottom: 0cm;">
Por ahora sólo hice una prueba básica,
un simple form con una VideoWindow y un TrackBar, y funciona muy
bien.
</div>
<div style="margin-bottom: 0cm;">
<br />
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2PhpR6vmYvMEFcRK6ueThYTCQZaEr5odrxJMqr1Vd2dHGG-jw4MvxSIfQf9HPGUMYNGdgrcYiT2A0sAvDB4kS0Zx6hdHeKrittB7fp1gCfy6bs63fkDgTj_UsWD5VaDhJMF4QbnEdp_A/s1600/DSPack-Sagan.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="287" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2PhpR6vmYvMEFcRK6ueThYTCQZaEr5odrxJMqr1Vd2dHGG-jw4MvxSIfQf9HPGUMYNGdgrcYiT2A0sAvDB4kS0Zx6hdHeKrittB7fp1gCfy6bs63fkDgTj_UsWD5VaDhJMF4QbnEdp_A/s400/DSPack-Sagan.png" width="400" /></a></div>
<div style="margin-bottom: 0cm;">
<br />
</div>José Torreshttp://www.blogger.com/profile/01813554554228991068noreply@blogger.com0tag:blogger.com,1999:blog-3439965173921204668.post-370588849832622592012-05-02T04:44:00.001-07:002012-05-02T04:47:36.072-07:00Cómo integrar la ayuda en línea en LazarusLazarus es un gran IDE, pero no se destaca por la amabilidad de la ayuda. Si pulsamos F1 buscando información nos envía a una página web donde tenemos que hacer la búsqueda en forma manual.<br />
Esto se puede mejorar con muy poco esfuerzo. Voy a mostrar cómo integrar al IDE la ayuda de Lazarus, la de FreePascal y el fantástico <b>DelphiBasics </b>de <b>Neil Moffatt. </b><br />
<br />
<b><span style="font-size: large;">Integrando la ayuda de Lazarus en formato .chm</span></b><br />
Para utilizar la ayuda de Lazarus en formato .chm<b> </b>la secuencia a seguir es ésta:<br />
<ol>
<li>Instalar el paquete ChmHelpPkg, disponible en el menú de Paquetes de Lazarus, en Instalar/desinstalar Paquetes.</li>
<li>Abrir y construir el proyecto lhelp (si usa CodeTyphon el proyecto está
en c:\codetyphon\lazarus\components\chmhelp\lhelp\)</li>
<li>En el menú de Lazarus, abrir Herramientas/Opciones/Ayuda/Opciones de Ayuda</li>
<li> En Visores, seleccionar CHM Help Viewer</li>
<li>En la opción HelpEXE seleccionar el ejecutable lhelp.exe (en mi caso es
C:\codetyphon\lazarus\components\chmhelp\lhelp\lhelp.exe)</li>
<li>En HelpFilesPath poner la carpeta donde colocaremos los archivos de ayuda, fcl.chm y lcl.chm. </li>
<li>En Bases de Datos/RTLUnits/BaseURL escribir <b>rtl.chm://</b></li>
<li>En Bases de Datos/FCLUnits/BaseURL escribir
<b> fcl.chm:// </b></li>
</ol>
<b> </b>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiebB4xYrHSBOSIeT7K5W53haU-dSYdEuO20fSBGbtNUasJt2WnZxuf2l1MxsS4qiJstAiBJeer9Ul2WM_2kOeIu9DVsnvxeNxkbXfymZVuzgAG3lHNiIT6mJiiPOCyTksTVPs1rjF5zwQ/s1600/Ayuda+de+Lazarus+-+Instalacion.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="356" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiebB4xYrHSBOSIeT7K5W53haU-dSYdEuO20fSBGbtNUasJt2WnZxuf2l1MxsS4qiJstAiBJeer9Ul2WM_2kOeIu9DVsnvxeNxkbXfymZVuzgAG3lHNiIT6mJiiPOCyTksTVPs1rjF5zwQ/s640/Ayuda+de+Lazarus+-+Instalacion.jpg" width="640" /> </a></div>
<div class="separator" style="clear: both; text-align: left;">
Los archivos de ayuda en formato .chm se pueden descargar de</div>
<div class="separator" style="clear: both; text-align: left;">
<b> </b><a href="http://sourceforge.net/projects/freepascal/files/Documentation/">http://sourceforge.net/projects/freepascal/files/Documentation/</a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b><span style="font-size: large;">Integrando la ayuda en formato .inf</span></b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Para poder utilizar la ayuda en este formato necesitamos descargar el programa Docview y los archivos de ayuda desde <a class="bbc_link" href="http://sourceforge.net/projects/fpgui/files/" target="_blank">http://sourceforge.net/projects/fpgui/files/</a> , disponibles gracias al amigo <b>Graeme </b>del foro de <a href="http://lazarus.freepascal.org/">lazarus.freepascal.org</a>. </div>
<div class="separator" style="clear: both; text-align: left;">
Luego de instalar el DocView, vamos al menú de Lazarus, Herramientas/Configuración de Herramientas Externas. Pulsamos Añadir y en la pantalla que aparece configuramos la aplicación:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
1. En Título ponemos lo que deseamos que aparezca en el menú de Lazarus</div>
<div class="separator" style="clear: both; text-align: left;">
2. En Nombre de archivo seleccionamos el ejecutable de DocView.</div>
<div class="separator" style="clear: both; text-align: left;">
3. En parámetros debemos colocar la cadena "<path de archivos .inf> -k $curtoken()" reemplazando los backslash por slash</div>
<div class="separator" style="clear: both; text-align: left;">
4. Desmarcar el check "Ocultar formulario principal"</div>
<div class="separator" style="clear: both; text-align: left;">
5. Asignar una tecla para llamar la ayuda. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEim73ozNJPDqnrEAGbKPlQtDqVuo7jZomONL10urtTLjUFqZaQxGPxje-sVd6bi0pSwpxYlJJW1v3tXQKfZQTl2S68DbdPkieI-XcWXjDxs7zDWZWQXy-8y-vpc75xryTNAhe_THzKM7og/s1600/Ayuda+en+forrmato+inf+-+Instalacion.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2VuglKuV2r1BThgvLB_8fpTry1nQWfNzQEtWW5wiUL9xr80Faa9Fby_SNF9-DBUZW6_Kn_0FbNWTAvHhXnueoBUlXsTPOnlxRsrYnfmLleiNnz5zJ5GrfvdOxlv8HtSh9CP5WW66Q3b0/s1600/Ayuda+en+formato+inf+-instalacion.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="508" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2VuglKuV2r1BThgvLB_8fpTry1nQWfNzQEtWW5wiUL9xr80Faa9Fby_SNF9-DBUZW6_Kn_0FbNWTAvHhXnueoBUlXsTPOnlxRsrYnfmLleiNnz5zJ5GrfvdOxlv8HtSh9CP5WW66Q3b0/s640/Ayuda+en+formato+inf+-instalacion.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxJQx2-_6F09_O3V5fd-1lLml7_Utm2vBGyCPM0VpfQ6ZQGtnxMA6iPJIzHRq8y8pfArY7Eh2MgjeJNR_Ys-aBhN8CKs40pL2o2bG9ZM_H544a4spDkpDQZQkDF59FdwOq1rGg4fqkHrU/s1600/Ayuda+en+formato+inf+-instalacion.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxJQx2-_6F09_O3V5fd-1lLml7_Utm2vBGyCPM0VpfQ6ZQGtnxMA6iPJIzHRq8y8pfArY7Eh2MgjeJNR_Ys-aBhN8CKs40pL2o2bG9ZM_H544a4spDkpDQZQkDF59FdwOq1rGg4fqkHrU/s1600/Ayuda+en+formato+inf+-instalacion.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-size: large;"><b>Integrando DelphiBasics en Lazarus como herramienta externa</b></span></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Para esto es necesario comprar la <a href="http://www.delphibasics.co.uk/Standalone/Purchase.html" target="_blank">versión standalone de DelphiBasics</a>. El precio es muy bajo, diez dólares, y el valor que nos agrega es mucho más que eso. </div>
<div class="separator" style="clear: both; text-align: left;">
La configuración es muy similar a la anterior:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
1. Elegimos un título conveniente</div>
<div class="separator" style="clear: both; text-align: left;">
2. En Nombre de archivo seleccionamos el ejecutable de DelphiBasics</div>
<div class="separator" style="clear: both; text-align: left;">
3. En Parámetros colocamos la cadena "$CurToken()"</div>
<div class="separator" style="clear: both; text-align: left;">
4. Como directorio de trabajo elegimos la carpeta donde instalamos el DelphiBasics</div>
<div class="separator" style="clear: both; text-align: left;">
5. Desmarcamos Ocultar formulario principal</div>
<div class="separator" style="clear: both; text-align: left;">
6. Asignamos una tecla para llamar la ayuda.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPLeJptdj6o9Jtwui42kLAtGYJETvyZB6Ml3R3_mfgfU4g83QmMZIbYB1IjJWSPbCXvgywTCNf-pVji1PAiKeJgHXZhlwy8W23W8RIziYCN7nFha6eWrw0Gb6aWlNxmXFi98Z07NxDyGQ/s1600/Instalacion+de+Delphibasics.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="508" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPLeJptdj6o9Jtwui42kLAtGYJETvyZB6Ml3R3_mfgfU4g83QmMZIbYB1IjJWSPbCXvgywTCNf-pVji1PAiKeJgHXZhlwy8W23W8RIziYCN7nFha6eWrw0Gb6aWlNxmXFi98Z07NxDyGQ/s640/Instalacion+de+Delphibasics.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Ojalá les sirva de ayuda para usar Lazarus!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>José Torreshttp://www.blogger.com/profile/01813554554228991068noreply@blogger.com0tag:blogger.com,1999:blog-3439965173921204668.post-11295153131925511602012-04-24T13:55:00.003-07:002012-04-24T14:23:16.484-07:00Herramientas de código II - SourceMonitor<div style="font-family: inherit;">
Buscaba una herramienta que me proporcionara métricas del código fuente, y tuve la suerte de encontrar <b>SourceMonitor</b>. Este programa <u>freeware </u>desarrollado por Campwood Software es muy fácil de instalar y configurar, con una interfaz sencilla y buena ayuda. </div>
<div style="font-family: inherit;">
Sus características principales son:</div>
<ul>
<li>Recolecta las métricas en una sola pasada por los archivos fuente.</li>
<li>Puede trabajar con código fuente escrito en <span style="font-size: small;">C++, C, C#, VB.NET, Java, Delphi, Lazarus (Free Pascal), Visual Basic (VB6) o HTML. </span></li>
<li><span style="font-size: small;">Incluye métricas a nivel de método y función para </span><span style="font-size: small;">C++, C, C#, VB.NET, Java, Delphi y Lazarus. </span></li>
<li><span style="font-size: small;">Ofrece la opción de métricas con Complejidad Modificada. </span><span style="font-size: small;"> </span></li>
<li><span style="font-size: small;">Guarda las mediciones en checkpoints para realizar comparaciones durante el desarrollo de un proyecto.</span></li>
<li><span style="font-size: small;">Muestra e imprime las mediciones en forma de tablas y diagramas, incluyendo diagramas Kiviat.</span></li>
<li><span style="font-size: small;">Exporta las mediciones como archivos XML o CSV. </span></li>
<li><span style="font-size: small;">Opera como programa Windows normal o desde la línea de comandos. </span></li>
</ul>
<div style="font-family: inherit;">
<br /></div>
<div style="font-family: inherit;">
<span style="font-size: small;"><u><b>Se lo puede integrar al IDE de Lazarus</b>.</u> Para eso, hay que ir a Herramientas/Configuración de herramientas externas/Añadir, y configurar como en la siguiente pantalla:</span></div>
<div style="font-family: inherit;">
<span style="font-size: small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWNqkoJXBvRYTBZHpJU-KkP7NKzA30WCCP9FWgFArWoAkIMsfv7Dd8h9IBK1pqJj7i8ziGgMG7kr-VkQTswTfqP3oxU2A5L9ePtsanctoi2fc7gmefXdQhI5KQfrLUjMfFDsk3YjvTvaY/s1600/herram_sourcemonitor.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="509" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWNqkoJXBvRYTBZHpJU-KkP7NKzA30WCCP9FWgFArWoAkIMsfv7Dd8h9IBK1pqJj7i8ziGgMG7kr-VkQTswTfqP3oxU2A5L9ePtsanctoi2fc7gmefXdQhI5KQfrLUjMfFDsk3YjvTvaY/s640/herram_sourcemonitor.jpg" width="640" /></a></div>
<br />
<div style="font-family: inherit;">
<span style="font-size: small;"></span></div>
<br />
<div style="font-family: inherit;">
<span style="font-size: small;">El proyecto debe existir previamente, SourceMonitor no lo crea si lo llamamos por este camino (al menos yo no encontré cómo).</span></div>
<div style="font-family: inherit;">
<span style="font-size: small;">El instalador de <b>SourceMonitor </b>se puede descargar de <a href="http://www.campwoodsw.com/">http://www.campwoodsw.com/ </a></span></div>
<div style="font-family: inherit;">
<span style="font-size: small;"><br /></span></div>José Torreshttp://www.blogger.com/profile/01813554554228991068noreply@blogger.com0tag:blogger.com,1999:blog-3439965173921204668.post-27289962622208347872012-04-23T08:59:00.000-07:002012-04-24T14:23:46.793-07:00Nueva versión de CodeTyphon: 2.60El sábado 21 de Abril se liberó la <a href="http://www.pilotlogic.com/sitejoom/index.php/codetyphon" target="_blank">versión 2.60 de CodeTyphon</a>. Agradezco a Sternas Stefanos y la empresa PilotLogic por este esfuerzo, que nos brinda una herramienta muy poderosa. Esta versión incluye soporte para Windows 8 (consumer preview), además de muchas actualizaciones y mejoras.<br />
Por pura coincidencia, el sábado pasado estuve experimentando con ActiveX en Lazarus, y veo que esta versión de CodeTyphon incorpora el paquete. Hoy mismo la voy a instalar. <br />
<br />José Torreshttp://www.blogger.com/profile/01813554554228991068noreply@blogger.com0tag:blogger.com,1999:blog-3439965173921204668.post-70068116447646358602012-04-20T06:52:00.001-07:002012-04-20T10:04:20.457-07:00Hopper for Firebird<a href="http://www.upscene.com/displaynews.php?item=20120228">http://www.upscene.com/displaynews.php?item=20120228</a><br />
Upscene Productions is proud to announce the first public beta of our new product "Hopper", a Stored Code Debugger for Firebird.<br />
<br />
Un debugger para Procedimientos Almacenados en Firebird? Excelente!!!José Torreshttp://www.blogger.com/profile/01813554554228991068noreply@blogger.com0tag:blogger.com,1999:blog-3439965173921204668.post-37183147154791156152011-11-29T14:16:00.001-08:002012-04-20T10:06:27.611-07:00Porqué Pascal?Tal vez la pregunta debería ser: Porqué no Pascal? Reconozco que hay cientos, tal vez miles, de buenos muy buenos y no tan buenos lenguajes, entornos y herramientas de desarrollo. Todos tenemos tendencia a una de dos cosas: o tendemos a mantenernos en aguas familiares, y seguimos programando en vBasic hasta que se nos secan los ojos (porque eso es lo que aprendimos), o, apenas sale una versión alpha del nuevo paradigma estructurado por objetos virtualizados, corremos a descargarlo y se convierte en nuestra religión por un par de meses, hasta que aparece algo más revolucionario.<br />
<br />
Tal vez la pregunta esté mal desde el principio. Lo que nos debe interesar es la obra y no la herramienta, si es que de crear se trata. Nuestro objetivo es mejorar la calidad de vida de nuestro cliente. Si la herramienta no sirve para eso, hay que cambiarla. Si sirve, tiene una base amplia de desarrolladores y hay un roadmap vigente, sólo la cambiaría si me demostraran que existe otra muy superior, y tanto que la ganancia permita absorber el costo del cambio.<br />
<br />
En nuestra empresa desarrollamos programas de gestión empresarial. La conectividad a bases de datos y la capacidad de manejar tablas con muchos registros son fundamentales. Utilizamos Delphi durante varios años, y durante 2011 comenzamos a reemplazarlo con FreePascal-Lazarus. La razón fundamental del cambio es que FreePascal es muy estable, está en permanente desarrollo, y Lazarus es multiplataforma, open source y free.José Torreshttp://www.blogger.com/profile/01813554554228991068noreply@blogger.com0tag:blogger.com,1999:blog-3439965173921204668.post-24369007689874903532011-11-29T03:50:00.001-08:002012-04-20T10:06:57.721-07:00Herramientas de código I - SVN TortoiseSVNLos usuarios de SVN agradecemos que exista una herramienta como CommitMonitor, de Stefan Küng. Permite monitorear los commit en distintos proyectos, con una interfaz muy intuitiva. Se lo puede descargar de <a href="http://tools.tortoisesvn.net/">http://tools.tortoisesvn.net/</a>José Torreshttp://www.blogger.com/profile/01813554554228991068noreply@blogger.com0