20 noviembre 2009

El experto cnPack (4)

Continuando con la barra de botones que aparece encima del editor de código, vamos a ver las características del botón Tools to Enhace Functions about Project:

Este botón está relacionado con los archivos de nuestro proyecto. Al pulsarlo nos aparecen estas opciones:

La opción Run separately From IDE ejecuta nuestro programa como si lo hubiésemos ejecutado fuera de Delphi. Esto suele utilizarme mucho cuando tenemos que hacer una comprobación rápida y no tenemos gana de desactivar el Debugger.

Luego vienen tres opciones que llaman al explorador de Windows y saltan a los siguientes directorios:

Browse Current File’s Dir: Va a la carpeta donde están los archivos de nuestro programa.

Browse Project Dir: Va a la carpeta de nuestro proyecto.

Browse Output Dir: Muestra el contenido de la carpeta donde se compila nuestro ejecutable.

Si las opciones de nuestro proyecto apuntan a la misma carpeta, estas tres opciones harán prácticamente lo mismo. Después vienen otro grupo de opciones que solo son útiles si estamos trabajando con el editor a pantalla completa:

List Units: abre la ventana de búsqueda de unidades:

List Forms: abre la ventana de búsqueda de formularios:

Use Unit: añade otra unidad a la unidad actual. Es exactamente la misma opción que File -> Use Unit de Delphi.

Used Unit List: muestra la lista de unidades utilizadas por nuestro proyecto:

Y las tres últimas opciones de este menú están relacionadas con el proyecto:

Proyect Backup: Permite hacer una copia de seguridad de nuestro proyecto en un archivo zip. Al pulsar sobre esta opción veremos una ventana con todas las unidades:

Al pulsar sobre el botón de guardar (Compress and Save the Backup file) aparecerá este cuadro de diálogo donde debemos elegir el nombre del archivo a guardar, las opciones de compresión e incluso podemos asignar una contraseña:

Si no nos gusta comprimir la copia en un archivo zip podemos llamar a otro compresor externo (como 7-zip) para que haga el trabajo. Esto se configura en la segunda pestaña:

Pero es que además, en la tercera pestaña podemos hacer que después de realizar la copia de seguridad llame a un programa en concreto:

Con esta última opción podemos llamar por ejemplo a otro programa para que conecte por FTP y envíe la copia a un servidor externo, podemos enviarla por correo electrónico, etc.

La segunda opción (Clean Temporaly Files) se utiliza para limpiar archivos temporales que no vamos a necesitar antes de hacer la copia de seguridad:

Al pulsar sobre el botón Next nos mostrará un listado con todos los que ha encontrado:

Al pulsar sobre el botón Finish realizará el proceso de limpieza. Y por último tenemos la opción Project Dir Builder que nos va a permitir organizar la estructura de directorios de nuestro proyecto:

Esto puede ser de utilizar si queremos compartir el código fuente con otros usuarios en Internet subiendo el proyecto a un repositorio como CSV. Aunque en la ayuda no se explica muy bien sobre como utilizarlo, es algo raro.

LAS OPCIONES DE LOS SCRIPTS

Luego están las herramientas para crear scripts que se programan utilizando su propia librería. Este es el botón que se utiliza para crear los scripts:


Al pulsarlo tenemos estas tres opciones:

La primera opción abre el compilador de script:

En la segunda opción abrimos la ventana de librerías de scripts para ver los eventos que podemos programar:

La tercera opción abre el explorador de Windows y nos sitúa en la carpeta donde están los scripts de ejemplo:

Las siguientes opciones que puedan aparecer son los script creados o cargados por nosotros. Este tema de los scripts lo ampliaré más adelante si tengo más tiempo y averiguo como va.

GUARDANDO Y CARGANDO LA CONFIGURACIÓN ACTUAL

El último botón del grupo nos sirve para guardar o cargar el estado del IDE tal como lo dejamos. Esto también lo lleva por ejemplo Delphi 7 con las opciones Tools -> Environment Options y activando estas dos opciones:

Pero el inconveniente está en que solo podemos guardar un estado por proyecto, mientras que con este botón podemos guardar varios perfiles:

Al pulsarlo tenemos estas tres opciones:

La primera opción sirve para crear un nuevo snapshot. En la ventana que aparece le damos un nombre al primer campo:

Al pulsar el botón Ok veremos que ha memorizado ese snapshot en ese mismo menú:

Si nos vamos a otro proyecto y abrimos otras unidades, con sólo seleccionar este snapshot, cerrará el proyecto actual, reabrirá el proyecto donde capturamos el snapshot y abrirá todas las unidades como las dejamos. Es algo muy potente para saltar de un proyecto a otro cuando necesitamos capturar trozos de una unidad de otro proyecto para traerla a la actual.

La opción Manage Snapshot List vuelve a abrir la ventana de los snapshots creados por si queremos eliminar o modificar alguno. Y la última opción (Open Historial Files) nos muestra un histórico con todas últimas unidades que hemos tocado:


HERRAMIENTAS DE AYUDA PARA EL CÓDIGO FUENTE

Aquí tenemos el siguiente grupo de tres botones que son de gran ayuda:

El primer botón es el encargado de borrar las unidades que tenemos incluidas en la sección uses pero que ya no utilizamos:

Por ejemplo, si insertamos un componente nuevo en el formulario y guardamos se añadirá su unidad correspondiente en la sección uses, pero si lo eliminamos ya no se borra su unidad.

Al pulsar el botón Process comenzará a realizar el análisis y nos dirá que unidades tenemos vinculadas que ya no utilizamos:

Al pulsar el botón Clean eliminará todas las unidades inservibles, acelerando de ese modo la compilación y enlazado de los binarios DCU. Este análisis lo hace por defecto de la unidad actual, pero podemos decirle que lo haga para todas las unidades del proyecto. Si no hubiese ninguna unidad inservible diría esto:

Vamos el siguiente botón:
Esta herramienta sirve para comparar dos unidades de código fuente (o cualquier archivo de texto) en busca de sus diferencias. Es similar una la herramienta que siempre utilizo (y es gratuita) llamada WinMerge. Nos muestra esta ventana:

Mediante la opción File abrimos un archivo y luego otro:

Una vez tenemos cargados los dos archivos pulsamos el botón Source code compare (el play) o bien pulsamos la tecla F9 y realizará una comparación entre ambas unidades:

Aunque contiene una opción para mezclar ambos archivos e igualar el código fuente no lo recomiendo porque puede armar un desastre impresionante. Aquí echo de menos el poder editar manualmente ambas unidades para arreglar yo mismo las diferencias (en eso le gana WinMerge).

El último botón de este grupo sirve para abrir la ventana de opciones:

Esta ventana de opciones comenzaremos a verla en el siguiente artículo porque es inmensamente grande:

Al su lado vienen dos botones para la ayuda y el acerca de:


LA BARRA INFERIOR DE ACCESO RÁPIDO

Debajo de toda esta barra que hemos visto tenemos esta otra:

El primer botón sirve para la búsqueda de procedimientos en la unidad donde estamos:

Aparte de poder buscarlos, también podemos ver las 4 primeras líneas de código del que tenemos seleccionado en la lista:

Y como en todas las ventanas de búsqueda que incorpora cnPack, tenemos un campo de búsqueda para filtrar el listado por palabras clave.

Luego está el botón de búsqueda de unidades:

Que abre la ventana que vimos anteriormente:

Y los otros dos botones que le siguen sirven para saltar en el código a la interfaz o a la implementación, como ya vimos con anterioridad:

Luego le sigue un desplegable con la lista de clases:

Y otro con la lista de procedimientos:

Para ambos desplegables de búsqueda tenemos estos dos botones que les siguen:

Si tenemos activado el de la izquierda significa que cuando comencemos a escribir para buscar una clase o un procedimiento, solo buscará las que empiecen por la palabra que hemos puesto. En cambio, si activamos la de la derecha buscará todas que la contengan dicha palabra.

Con esto concluimos todo lo referente a las barras de herramientas que tiene el editor de código. En el próximo artículo entraremos a las opciones de cnPack para configurarlo todo.

Pruebas realizadas en Delphi 7 y Delphi 2007.

13 noviembre 2009

El experto cnPack (3)

Después de ver la barra de botones que nos permiten editar formularios con mucha más facilidad, vamos a pasar a ver la barra que aparece en la parte superior del editor de código.

BOTONES PARA LA VISUALIZACIÓN Y EL ASISTENTE

Al igual que hice anteriormente, vamos a comenzar a ver la barra superior de izquierda a derecha por grupos, comenzando con los dos primeros botones:


El primer botón nos sirve para poder editar el código fuente a pantalla completa. Al activarlo nos aparece este mensaje sobre su descripción:

En Delphi 7 se vería así:

Pero en Delphi 2007 no funciona y nos dirá este error:

Eso es porque tenemos el IDE en modo Default Layout, por lo que demos cambiarlo al modo Classic Unlocked cambiando en desplegable que tenemos en la parte superior derecha de Delphi:

Ahora si que podemos activar la edición de código a pantalla completa:

Si el segundo botón está activado aparecerá el asistente de código al estilo Visual Studio:

Este asistente es más potente que el que incorpora Delphi porque con sólo comenzar a escribir ya nos va dando sugerencias sobre el objeto, función o procedimiento que estamos buscando:

Con el mismo botón podemos activarlo o desactivarlo según nos convenga.

BOTONES PARA LA CARGA Y GRABACIÓN DE UNIDADES

A continuación tenemos otro botón que aparece en Delphi 7 pero que no aparece en Delphi 2007:

Este botón sirve para crear una nueva unidad, es decir, es el equivalente a seleccionar en el menú superior File -> New -> Unit. A su derecha tenemos el siguiente botón que nos sirve para añadir un nuevo elemento a Delphi:

Es el equivalente a seleccionar File -> New -> Other en Delphi 7:

O en Delphi 2007:

Pasando ya al siguiente grupo, tenemos un botón desplegable para reabrir proyectos anteriores (File -> Reopen):

Y cerrando el grupo tenemos los botones de Guadar todo y Guardar Como:


LOS BOTONES DEL PROYECTO

En el siguiente grupo de botones tenemos que los dos primeros se utilizan para añadir archivos al proyecto o eliminarlos:

Después tenemos este otro que muestra las opciones del proyecto:

Y el último construye el proyecto (lo recompila todo):


BOTONES PARA LA EJECUCIÓN Y LA DEPURACIÓN

El siguiente grupo de compone de 6 botones que son prácticamente los mismos que tiene Delphi en sus barras de herramientas:

Son los botones de ejecutar, detener, los de depuración, etc. Los han puesto aquí por si trabajamos con el editor de código a pantalla completa.

EL BOTÓN DE LOS COMENTARIOS

Aquí es donde comienza la parte interesante. Tenemos un primer grupo con 5 botones:

El primer botón es el encargado de documentar nuestro código fuente con plantillas automáticas en las que tenemos que hacer pocos o casi ningún cambio:

Al pulsar sobre este botón se despliegan una serie de opciones donde cada una de ellas crea un comentario en cierta zona de código. La segunda opción (Pascal Unit Header) crea un comentario al inicio de nuestra unidad cuyos datos debemos introducir en esta ventana que aparece:

Al pulsar el botón Ok nos creará este comentario al principio de la unidad:

Luego tenemos la opción Pascal Procedure Header que sirve para comentar nuestros procedimientos. Antes de pulsar sobre esta opción debemos situarnos sobre la misma línea donde está la palabra procedure o function e insertará el comentario de golpe:

Después le siguen dos opciones para añadir dos bloques de comentarios. La opción Comment Block nos muestra un cuadro de diálogo donde debemos añadir el comentario:

Y mete este comentario justo donde tengamos situado el cursor:

Y la opción Comment Block 2 cambia los separadores por guiones:

También podemos crear la definición de una clase seleccionando Pascal Class Definition y en esta ventana que aparece escribimos el nombre de la clase:

Y nos insertará donde tengamos el cursor todo esto (debería estar en la sección type):

Todo lo que sea ganar tiempo esta muy bien. A la última opción (Unit inicialization) no le veo mucha utilidad ya que inserta esto:

Y eso ya lo hace Delphi cada vez que creamos una nueva unidad. Lo mejor es la primera opción (Options) donde vienen definidas las plantillas que hemos visto:

Sólo tenemos que pulsar el botón Add e insertar la plantilla que nos venga en gana:

Y aunque Delphi 2007 incorpora esto mismo de las plantillas, yo veo a cnPack mucho más fácil de usar.

EL BOTÓN DE MODIFICACIÓN DE CÓDIGO

El siguiente botón tiene también una cantidad inmensa de opciones:


La opción OpenFile se utiliza para abrir un archivo que esté situado en la misma carpeta que nuestro proyecto y volcará su contenido en una nueva pestaña de código:

La siguiente opción (Eval swap) permite intercambiar el contenido de lo que hay a la izquierda y derecha del símbolo igual. Por ejemplo, si tenemos este trozo de código:

Etiquetas[iNumEti].Parent := MarcoPieza;
Etiquetas[iNumEti].Left := x;
Etiquetas[iNumEti].Top := y;
Etiquetas[iNumEti].Caption := s;
Etiquetas[iNumEti].Font.Color := Color;

Al seleccionarlo y elegir la opción Eval Swap invertirá la igualación:

MarcoPieza := Etiquetas[iNumEti].Parent;
x := Etiquetas[iNumEti].Left;
y := Etiquetas[iNumEti].Top;
s := Etiquetas[iNumEti].Caption;
Color := Etiquetas[iNumEti].Font.Color;

Es algo muy útil para copiar datos entre tablas, registros, clases y viceversa.

La opción Editor Fullscreen Switch lo único que hace es pasar el editor a pantalla completa o viceversa, como el botón que vimos anteriormente.

La opción Convert to String lo que hace es poner entre comillas la cadena que seleccionemos:

Quedaría así:

Mediante la opción Delete Blank Lines podemos coger un trozo de código y eliminar los espacios entre líneas:

Siempre que seleccionemos en esta ventana la opción Delete All Blank Lines:

Esto le dará más vida a nuestra tecla SUPR:


Luego vienen opciones más sencillas como Comment code, Uncomment code o Toggle comment que convierten la línea donde tenemos el cursor en una línea de comentario o bien lo vuelven a quitar:

Las opciones Ident y Unident cogen el código seleccionado y lo meten dos espacios hacia dentro o hacia fuera respectivamente. Esto no tiene mucha utilidad ya que para ello tenemos las combinaciones de teclas de funciones que trae el mismo Delphi: CTRL + K + I y CTRL + K + U.

La opción ASCII Chart si viene muy bien para averiguar los números de caracteres:

Otra opción que siempre hemos echado en falta en Delphi es saber un número de color específico sin tener que ir a un programa de diseño gráfico. Pues ahora seleccionando Insert color primero nos aparecerá la típica ventana para elegir el color:

Y luego lo meterá donde tengamos puesto el cursor:

Igualmente podemos insertar un fecha y una hora con la opción Insert Date Time:

Después viene la opción Collector que es un pequeño bloc de notas donde podemos cargar o guardar cualquier información importante para que la tengamos accesible en cualquier momento:

Incluso podemos crear varias pestañas donde guardar la información clasificada. Si cerramos esta ventana y la volvemos a abrir seguirá ahí la información escrita.

También está la opción de poder seleccionar varias líneas y ordenarlas alfabéticamente mediante la opción Sort selected lines. Viene bien para ordenar todas las variables definidas de una clase cuando es muy grande y hay que volver a buscarlas.

Luego le sigue la opción Toggle uses/include que nos sitúa directamente en la línea donde se encuentra la sección uses para poder seguir añadiendo una nueva unidad. Esta opción hay que utilizarla con las combinaciones de teclas CTRL + ALT + U para que sea realmente efectiva. Aunque yo prefiero utilizar la opción de Delphi File -> Use unit.

La otra opción que le sigue (Toggle Var Field) si que viene bien porque nos sitúa en la sección de definición de variables cuando estamos situados dentro de un procedimiento o función. Su combinación de teclas es CTRL + SHIFT + V. Aunque lo mejor sería utilizar las opciones de Refactoring de Delphi 2007 para declarar variables automáticamente.

Las opciones Previous Message Line y Next Message Line se utilizan para retroceder o avanzar a través de la ventana de mensajes de Delphi. Además, salta a la línea donde está el problema:

También tienen sus teclas rápidas: ALT + . y ALT + ,

Y después están las opciones para saltar a la interfaz o a la implementación mediante Jump to Int, y Jump to Imp.

Debido a que estas barras de herramientas que estamos viendo son bastante extensas, continuaré en el siguiente artículo.

Pruebas realizadas en Delphi 7 y Delphi 2007.

Publicidad