11 diciembre 2009

El experto cnPack (7)

Sigamos viendo todas las posibilidades que nos ofrecen las opciones del experto cnPack.

EXPLORER WIZARD

Estas opciones permiten configurar el pequeño explorador de Windows que tiene cnPack y que podemos abrir seleccionando en el menú superior cnPack -> Explorer…

Como explorador, hay que reconocer que es bastante rudimentario, aunque es muy rápido a la hora de recorrer las carpetas del disco duro. Aunque al contrario de un explorador normal, en este explorador los archivos a buscar están filtrados según estas extensiones:

Esta ventana se abre pulsando el botón del martillo (Filter) y seleccionando la opción Customize Filter. Dentro del apartado de opciones de Explorer Wizard lo único que podemos configurar es una combinación de teclas para abrirlo rápidamente.

HISTORIAL FILES SNAPSHOT

Aparte del histórico de archivos que puedan tener las versiones superiores a Delphi 7, cnPack también conserva un histórico de los archivos que hemos manejado en el IDE. Este histórico se ve pulsando el botón Settings de este apartado:

Podemos seleccionar todos los archivos y pulsar el botón Remove para limpiar el histórico.

PROCEDURE LIST WIZARD

Mediante esta opción solo podemos asignar una tecla rápida para acceder a la ventana de búsqueda de procedimientos que vimos anteriormente:


USES UNIT CLEANER

El limpiador de unidades está dentro de la opción cnPack -> Uses Cleaner y como vimos anteriormente se utilizaba para eliminar del apartado uses aquellas unidades que ya no se utilizan, sobre todo, componentes insertados con anterioridad que han sido reemplazados por otros:

En esta opción tan solo podemos asignar una combinación de teclas.

IDE ENHACEMENTS SETTINGS

Activa las opciones avanzadas dentro del IDE. Lo he desactivado y realmente no sé lo que quita. En la ayuda tampoco viene nada sobre esta opción.

IDE CONFIG BACKUP/RESTORE BACKUP TOOL

Si asignamos una tecla rápida a esta opción podemos llamar rápidamente al asistente de creación de copias de seguridad:


SCRIPT WIZARD

En este apartado configuramos mediante el botón Settings las opciones de la librería de script:


FAST CODE IDE OPTIMIZER

Si activamos esta opción entonces optimizará el programa que compilamos para que utilice una nueva versión del motor de memoria añadiendo además la posibilidad de utilizar las nuevas instrucciones de los procesadores: MMX, SSE, SSE2, etc. Aunque según sus autores, esta característica no funciona en la versión de Delphi 5.

FORM DESIGNER ENHACEMENTS

Esta opción activa o desactiva la barra lateral de botones que vemos en Delphi 7 a la izquierda del formulario:

Al entrar en su apartado de opciones podemos configurar todo esto:


Estos son sus apartados:

Float Toolbar Settings: Mediante esta opción podemos añadir o quitar barras laterales al lado del formulario. Al pulsar el botón Add podemos crear una nueva barra de herramientas seleccionando todos los botones que queramos:

En la parte inferior izquierda de la ventana de opciones podemos hacer que la barra que hemos seleccionado en la lista de arriba sea visible o invisible además de especificar su posición y su separación respecto al formulario:

Y en la parte derecha de la misma ventana (Float Property Bar) elegimos las propiedades de la barra flotante que aparece en la parte superior del formulario:

Y al igual que con las barras de herramientas anteriores podemos elegir su posición, separación, etc.

SOURCE HIGHLIGHT ENHACEMENTS

Esta sección es la encargada de configurar el modo de iluminar con colores el código fuente del editor:

Dentro del apartado Bracket HighList configuramos la iluminación de los paréntesis:

Enable Highlight Matched Brackets: Si esta opción está activada se iluminarán los paréntesis o corchetes cuando estemos encima de ellos:
También se puede elegir el color de iluminación y el color de fondo.

Bracket Bold: Utilizará la fuente en negrita al dibujar el paréntesis.

Hightlight when Cursor is Between Brackets: Se iluminarán los paréntesis cuando el cursor está dentro de los mismos, aunque no esté encima del paréntesis de apertura o de cierre.

Dentro del apartado Code Structure Highlight configuramos la iluminación de las estructuras de código con estas opciones:

Enable Background Highlight Keyword Structure at Cursor: esta opción activa la iluminación de las palabras reservadas que engloban un bloque de código al situarnos en la misma línea:

Enable Background Highlight Current Identifier at Cursor: si activamos esta opción entonces también iluminará cualquier identificador (variables, procedimientos, etc.):

Enable Background Highlight Current Line: ilumina toda la línea donde estamos situados (sólo en Delphi 7 porque en las versiones superiores ya lo hace el propio IDE):

Enable Highlight Keyword Structure: ilumina de un color distinto a las palabras reservadas encargadas de las estructuras de datos. Por ejemplo, en la definición de una clase:

Enable Lines: las líneas verticales que dibuja permiten de un solo vistazo saber si la identación de código es correcta:

A la derecha tenemos el botón Line Settings donde seleccionamos el tipo de líneas a dibujar:

Highlight Range: aquí se elige si queremos que la iluminación de colores sea en toda la unidad, en el procedimiento o función donde estamos situados, en el bloque de código actual, etc.

Colors by Level: se pueden elegir los colores en cada nivel de identación.

Highlight Delay: por defecto viene seleccionado para que se ilumine el código inmediatamente, pero también se puede configurar para que lo haga cada x milisegundos o si queremos hacerlo pulsando una combinación de teclas.

Disable Hightlight when Unit Lines exceeds: viene configurado para que si la unidad de código donde estamos situados supera las 40.000 líneas entonces desactive la iluminación para evitar que Delphi se ralentice (para máquinas antiguas con poca potencia).

En el próximo artículo terminaré de hablar de las opciones que nos quedan.

Pruebas realizadas en Delphi 7 y Delphi 2007.

04 diciembre 2009

El experto cnPack (6)

Vamos a continuar viendo las opciones de cnPack comenzando con la ayuda que nos brinda Microsoft a través de su portal MSDN.

MSDN HELP WIZARD

Esta opción es por si queremos acceder a la ayuda de Microsoft por su portal MSDN. Esta pensada sobre todo para consultar las librerías estándar de la plataforma .NET y la API de Windows. Para consultar MSDN desde Delphi hay que seleccionar en el menú superior cnPack -> MSDN Help Wizard:

Según elijamos la opción Help o Search se irá a una página web u otra:

En su apartado de opciones podemos cambiar la página de inicio:


SOURCE FORMAT CONVERTED WIZARD

Estas opciones determinan como va a exportarse el código fuente a los formatos HTML o RTF. Su ventana de opciones nos permite asignar una combinación de teclas a cada tipo de exportación:

Supongamos por ejemplo que quiero exportar la unidad actual donde estoy a HTML. Entonces asigno la combinación de teclas CTRL + H y al pulsarla estando en el editor de código mostrará esta ventana:

Entonces elegimos por ejemplo HTML y nos pedirá donde guardar la página web. Al abrirla veremos que la conversión ha sido perfecta:

Como podemos observar en la imagen, vemos que ha mantenido correctamente la identación de código. Lo mismo podemos hacer para exportanlo a RTF para crear documentación. Estas dos opciones son muy útiles para compartir código o crear manuales para el resto de usuarios de Internet.

En la segunda pestaña de opciones tenemos la posibilidad de cambiar la fuente para adaptarla a nuestras necesidades:


BATCH FILE REPLACE

Esta opción pertenece a la búsqueda y sustitución de texto en todos los archivos del proyecto. Lo único que podemos hacer aquí es asignar una combinación de teclas a la búsqueda especial que tiene cnPack y que es muy parecida a la de Delphi:

Esta herramienta es muy parecida a la opción Search -> Find in Files que ya trae Delphi.

SOURCE COMPARE WIZARD

Aquí sólo podemos activar o desactivar la herramienta que nos permite comparar dos ficheros de código en busca de diferencias:


SOURCE STATISTICS WIZARD

cnPack incorpora una herramienta estadística que cuenta el número de líneas de código de todo el proyecto así como cada una de las unidades que incorpora. Esta información está disponible seleccionando cnPack -> Source Statistics. Aparecerá una ventana para elegir que es lo que queremos analizar:

Lo mejor es seleccionar Files in Project para tener una visión global del proyecto:

Además nos viene en la parte izquierda (entre paréntesis) el número de líneas global y el de cada unidad. En su apartado de opciones solo podemos activar o desactivar esta utilidad.

COMPONENT PREFIX WIZARD

Como vimos anteriormente, cnPack permite asignar un prefijo a cada componente que se inserta en su formulario según su clase:

Al pulsar el botón Settings de esta opción muestra todas estas posibilidades:

Y esto es lo que activan y desactivan:

Enable Modify Prefix Automatically: Esta es la opción general que activa o desactiva el asignar prefijos a los componentes.

Show Dialog when Add new Component o Rename: si desactivamos esta opción, no aparecerá la ventana de prefijos pero si lo asignará al componente insertado. Si por ejemplo insertamos tres botones a un formulario los llamará btn1, btn2 y btn3.

Prompt for Undefined Prefix: Se desactivamos la opción anterior y encuentra un componente del que no sabe el prefijo entonces mostrará el cuadro de diálogo para que se lo asignemos:

Pero si desactivamos ambas opciones entonces no volverá a preguntar el prefijo nunca.

Ignore Component Naming after Class Name: Ignora el nombre del componente para clases que no comienzan por T.

Replace the Prefix when Auto-Rename: Volver a reemplazar el prefijo al cambiarle el nombre.

Add Underscore after Prefix when Renaming: Si activamos esta opción añadirá un guión bajo entre el prefijo y el nombre que le damos al componente:

Prefix Case sensitive: Si esta opción esta activada entonces nos obliga a que el prefijo tenga las minúsculas o mayúsculas como corresponde.

Use Action Name as New Name if Connected to an Action: Si el componente que estamos nombrando tiene asignada una acción (propiedad Action asignada a una acción del componente ActionManager) entonces el nombre del componente será el prefijo más el nombre de la acción asignada.

Auto Rename when Action Changed: Si además de la opción anterior esta activada esta opción, cuando renombremos el nombre de la acción se renombrará automáticamente el nombre de nuestro componente asignado a la misma. Aunque por las pruebas que he realizado, no se entera hasta que intentamos modificar la propiedad Name del componente asociado a la acción.

Use DataField as New Name if This Proterty Exists: Al insertar un componente asociado a un campo de una base de datos como por ejemplo el componente TDBEdit entonces al modificar su propiedad DataField le cambiará el nombre al componente con el prefijo de su clase mas el nombre del campo. De ese modo nos ahorramos de asociar el campo APELLIDOS a dicho componente y luego tener que ir a su propiedad Name y poner dbedtAPELLIDOS. Lo hace sólo.

Auto Rename when DataField Changed: Si además de la opción anterior está activada esta otra entonces cuando se modifique la propiedad DataField cambiará también el nombre del componente. Aunque me ha pasado igual que antes, no se entera hasta que intento cambiar la propiedad Name.

Luego tenemos en la parte inferior de la ventana todas las clases de los componentes de Delphi y su prefijo asignado. Podemos ver que hay muchos sin definir:


Si queremos asignar nuestros propios prefijos entonces tenemos que seleccionar una clase, escribir el nuevo prefijo en el campo Prefix y pulsar el botón Modify.

PROPERTY CORRECTOR

El corrector de propiedades lo vimos anteriormente cuando tratábamos de que todos los componentes visuales tuviesen el mismo tamaño según su clase. Este corrector también puede abrirse llamando al menú superior cnPack -> Property Corrector:

En su apartado de opciones podemos definir nuestras preferencias en ciertos componentes como puede ser la fuente, el tamaño, la posición, etc.:


PROJECT EXTENSION WIZARD

Si seleccionamos la opción cnPack -> Project Enhacements podemos ver que aparece un nuevo menú para mejorar las opciones del proyecto con posibilidades como ejecutar el programa fuera de Delphi, ver los archivos del proyecto, etc:

Todas estas herramientas ya las vimos anteriormente en la barra de botones. Pues el apartado Settings de esta opción permite asignar una combinación de teclas a todo este menú:


COMMENT CROPPER

cnPack incorpora un asistente para eliminar comentarios tanto de la unidad actual como de todo el proyecto. Esta herramienta puede llamarse desde el menú cnPack -> Comments Cropper:


Al pulsar el botón Process eliminará todos los comentarios del código. En su apartado de opciones lo único que podemos hacer es asignarle una combinación de teclas o desactivarlo.

REPOSITORY LIST

En las opciones de Delphi para crear un nuevo proyecto u objeto, si seleccionamos File -> New - > Other podemos ver que cnPack a añadido su propia pestaña al repositorio:


Tiene tres plantillas para crear unidades para maninupar archivos INI o para crear test unitarios utilizando DUnit.

En el próximo artículo continuaré con las infinitas opciones de cnPack. Algún día se tienen que acabar.

Pruebas realizadas en Delphi 7 y Delphi 2007.

27 noviembre 2009

El experto cnPack (5)

Después de ver toda la interfaz de trabajo que aporta el experto cnPack vamos a pasar a ver como podemos configurarlo mediante su botón de Opciones:

También podemos acceder a las mismas seleccionando en el menú superior cnPack -> Options, donde veremos esta ventana:

Vamos a ir viendo cada una de las opciones por el orden de la lista.

FORM DESIGN WIZARD

Mediante esta opción podemos asignar atajos de teclado a los botones de la barra de herramientas de cnPack encargados de la alineación y tamaño de los componentes seleccionados:

Al pulsar el botón Settings nos aparecerá la lista de botones con su tecla de acceso rápido a la derecha:

Para asignar un atajo de teclado solo tenemos que seleccionar un botón de la lista, pinchamos con el ratón en el campo Shortcut y pulsamos aquella tecla que queremos asociar a dicho botón.

MESSAGE BOX VISUAL DESIGNER

Si estamos hartos de escribir la función de Application.MessageBox entonces podemos hacer que cnPack inserte el código de la misma automáticamente. Pero para que sea efectiva debemos asignar un atajo de teclado en el campo Shortcut, por ejemplo CTRL + 9:

Entonces al pulsar dicha combinación de teclas estando en el editor de código aparecerá este asistente:

Como podéis ver la imagen, solo tenemos que teclear el título, el contenido del mensaje y configurar el tipo de mensaje (información, pregunta, advertencia, error, etc.). Nos insertará este código:

Si volvemos a las opciones y pulsamos el botón Settings veremos esta configuración:

Estos son sus apartados:

Carriage Return: podemos definir tanto para Object Pascal como para C++ los caracteres de retorno de carro.

Delphi Code Settings: En este apartado configuramos en ancho de la identación de código mediante el campo Ident Witdh y el ancho de la línea mediante Wordwrap Width. Esto afecta a la hora de crear el código de la función MessageBox así como la identación y ancho de sus parámetros. Si activamos la opción Cast string to PChar introduce la cadena de texto del mensaje dentro de una función PChar:

C++ Builder Setting: Lo mismo que lo anterior para el código C/C++.

Wordwrap Mode: Si activamos la opción Wordwrap by Line Width separará los parámetros en línea según el ancho que hemos especificado (80 por defecto) o por el contrario si queremos hacerlo por contenido. En ninguna de las dos opciones me ha respetado al máximo de 80 caracteres cuando he puesto mensajes largos:

Other settings: podemos exportar o importar en un archivo INI la plantilla que utiliza para crear el código:

[Auto Saved]
MsgBoxCaption=Probando
MsgBoxCaptionIsVar=0
MsgBoxText=Este es un mensaje de prueba para probar si me respecta el ancho de texto al límite.
MsgBoxTextIsVar=0
MsgBoxIcon=1
MsgBoxButton=0
MsgBoxDefaultButton=0
MsgBoxResult=0
MsgBoxCodeKind=1
MsgBoxTopMost=0

COMPONENT SELECTOR

Aquí podemos activar o desactivar la opción de selección múltiple de componentes que vimos anteriormente:


TABS ORDER CONFIGURATOR

Este apartado controla las opciones que afectan al orden de tabulación de los componentes visuales de un formulario:

La ventana de opciones es esta:

Los apartados que contiene son estos:

Sort Mode: podemos hacer que el orden de tabulación sea de arriba abajo (Vertical First) o de izquierda a derecha (Horizontal First).

Add-on Process: Si está activada la opción Inverse Sort entonces el orden de tabulación irá al revés. Al activar la opción By Groups entonces considerará a los componentes con la misma anchura y altura como del mismo grupo, por lo que su tabulación será continua entre ellos (por lo menos es lo que dice la ayuda, pero por más pruebas que he realizado no he notado la diferencia).

Tab Order Label: Aquí configuramos como queremos ver el número de orden de tabulación en cada componente. Por defecto esta configurado para que se dibuje en la esquina superior izquierda del componente y con un color rojizo con borde negro. Pero si nos estorban podemos ponerlos a la derecha (Top Right) y en otro color:

Other Settings: Tenemos tres opciones donde la primera nos permite corregir el orden de tabulación cuando se mueven los componentes (Auto Update Tab Orders…). La segunda opción ya viene activada y posibilita el orden de tabulación de unos componentes que están dentro de otros (como Frames, GroupBox, etc.). Y con la opción Process All Sub-components podemos hacer que calcule el orden de tabulación a partir de las coordenadas centrales de cada componente, en vez de esquina superior izquierda (Calculate Using Component’s Center).

BOOKMARK BROWSER

En este apartado podemos configurar el navegador de marcadores de línea (BookMark) que incorpora cnPack y que solemos poner en nuestro código fuente:

Este navegador puede verse seleccionando las opciones del menú superior cnPack -> Bookmark Browser. Mostrará esta ventana:

Esta es una lista de los marcadores que hemos colocado en la unidad actual que estamos editando y si hacemos doble clic sobre alguna o pulsamos el botón del rayo, irá directamente a la línea donde está.

También vemos que con solo seleccionar un marcador nos mostrará en la parte inferior las primeras 4 líneas de código que rodean a nuestra línea marcada. En su ventana de opciones podemos cambiar el campo Show nearby para decirle cuantas líneas queremos mostrar alrededor (por defecto 2):

También está activada la opción de auto-refrescar la lista cada segundo y que se guarden en disco automáticamente. Yo creo que aquí les ha faltado la opción de poder dejar abierta la ventana de bookmarks aunque hagamos doble clic sobre uno. Es muy incómodo tener que volver a la lista cada vez que queremos saltar a otro marcador.

Las otras opciones que lleva son para cambiar la fuente y el color de la previsualización de las líneas.

SOURCE TEMPLATES

Esta opción abre la ventana que vimos anteriormente para crear, editar o eliminar las plantillas de código que tiene predeterminadas:

Contiene dos botones para importar y exportar plantillas que utilizan la extensión .cdt y se guardan en formato XML.

CODE EDITOR WIZARD

En este apartado podemos personalizar las teclas de acceso rápido que queremos para los asistentes del editor de código que tiene cnPack, así como habilitar o deshabilitar estos asistentes:

Veamos cada opción y lo que hace:

Open File Tool: abre un archivo cualquiera dentro del editor como si en Delphi hubiésemos elegido File -> Open pero con otra ventana:

Esta opción tiene predeterminado el atajo de teclado CTRL + ALT + O.

Eval Swap Tools: Este asistente lo utilizamos anteriormente para intercambiar lo que hay a la derecha o a la izquierda del operador de igualación, por ejemplo:

Clientes.FieldByName(‘NOMBRE’).AsString := sNombre;

Después de utilizar esta opción quedaría así:

sNombre := Clientes.FieldByName(‘NOMBRE’).AsString;

Lo que nos interesa aquí es asignarle una tecla rápida para no perdernos en las decenas de botones que tiene cnPack.

Editor Fullscreen Switch: esta opción es la que conmuta entre poner el editor de código a pantalla completa o dejarlo normal. Aquí le he asignado yo las teclas CTRL + ALT + F ya que es muy útil. Si pulsamos el botón Settings podemos configurar que se maximice el editor nada más arrancar Delphi y ocultar el formulario principal o restaurarlo a modo normal cuando volvamos de pantalla completa:

Delete Blank Lines Tools: lo único que podemos hacer con esta opción es asignar un atajo de teclado para eliminar las líneas vacías de código.

Comment Code Tool: este asistente lo utilizábamos para convertir las líneas de código seleccionadas en comentario.

Uncomment Code Tools: al contrario del anterior, quita los comentarios.

Toggle Comment Code Tools: pone o quita los comentarios. Yo he asignado a esta opción las teclas CTRL + ALT + C porque podemos anular muchas líneas de código rápidamente, ya que al convertir la línea en comentario pasa a la siguiente línea. Esta última característica la podemos desactivar si pulsamos sobre el botón Settings:


Ident Code Tool: Con esta opción movíamos dos espacios a la derecha el código fuente seleccionado. Aquí podemos asignar la tecla que queramos aunque yo prefiero seguir utilizando las de Delphi (CTRL + K + I).

Unident Code Tool: Mueve a la izquierda el código fuente y en Delphi sus teclas son CTRL + K + U.

ASCII Chart: esta es la opción que activa o desactiva la tabla de caracteres ASCII para ver su código en decimal o hexadecimal.

Insert Color Tool: aquí no vendría tampoco mal asignar un atajo de teclado al asistente que permite elegir un color y devuelve el número hexadecimal del mismo.

Insert Date Time Tool: esta opción pertenece al asistente que escribe en varios formatos la fecha y hora actual del sistema.

Collector: si vais a utilizar el pequeño bloc de notas que mostré anteriormente deberíais asignar una tecla rápida al mismo.

Sort Selected Lines Tool: Si asignaís un atajo de teclado a esta opción podéis ordenar las líneas de código alfabéticamente y a la velocidad del rayo.

Toggle Use/Include Tool: esta opción nos permite saltar directamente a la línea donde se encuentra la sección uses.

Toggle Var Field Tool: con esta otra opción saltamos a la sección var del procedimiento donde estamos situados.

Previous Message Line Tool y Next Message Line Tool: con las teclas rápidas ALT + , y ALT + . podemos recorrer la ventana de mensajes de Delphi por si no nos apetece coger el ratón.

Jump to Interface Tool: Salta a la línea donde declaramos la interfaz (interface).

Jump to Implementation Tool: Salta a la línea de la implementación (implementation).

Jump to Matched Keyword Tool: Salta a la siguiente palabra que estamos buscando.

Espero que no asignéis a todas un atajo de teclado porque si no vais a necesitar una tabla periódica como la de los químicos para acordaros de todas. En el próximo artículo seguiremos exprimiendo las opciones.

Pruebas realizadas en Delphi 7 y Delphi 2007.

Publicidad