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