26 febrero 2010

El experto GExperts (y 3)

Finalizamos en esta serie de tres entradas dedicadas a GExperts viendo otras opciones como los buscadores de archivos, las dependencias o la sustitución automática de componentes.

GREP RESULTS

Esta opción muestra la ventana de resultados de una búsqueda de Grep, un excelente buscador de archivos que destaca por permitir buscar trozos de texto dentro los archivos de código fuente:


Supongamos que estoy buscando donde está definida la clase TIdSocketHandle dentro de los componentes KelvinIndy que me he instalado. Entonces pulso el botón de la lupa y escribo esto:

Abajo en el campo Directories elegimos la carpeta por donde queremos que se inicie la búsqueda y pulsamos el botón Ok. Volverá a la ventana de resultados de Grep con todas las unidades donde ha encontrado dicha cadena:

Si hacemos clic sobre cualquier unidad de la lista se desplegarán todas las líneas que ha encontrado de dicha unidad, incluyendo el número de línea y las coincidencias:

Si además pulsamos sobre una de las líneas nos mostrará la zona donde está en la parte inferior de la ventana:

En esta misma ventana tenemos también las opciones de reemplazar el texto buscado o imprimirlo. Lo que más sorprende de Grep es la velocidad a la que busca, es sorprendente. Aunque si lo que estáis buscando son solo archivos (sin mirar el contenido) el buscador más rápido es Everything (gratuito).

GREP SEARCH

Es la misma ventana de búsqueda que hemos visto antes:

Es para ir directamente a buscar sin pasar por la ventana de resultados.

HIDE/SHOW NON-VISUAL

Si tenemos que organizar un formulario donde hay una pasada de componentes no visuales encima del mismo:

Podemos seleccionar esta opción para hacer invisibles los componentes no visuales hasta que recoloquemos los componentes visuales:


IDE MENU SHORTCUTS

Esta es otra gran idea añadida a este experto que permite asignar una combinación de teclas a cualquier opción del menú de Delphi en esta ventana:

Por ejemplo, la opción File -> Open no tiene ninguna combinación de teclas asignada, así que la selecciono en esta ventana:

Para asignarle una combinación antes hay que activar la opción Apply a custom shortcut to this menu item y asigno por ejemplo la combinación CTRL + O. Podemos comprobar si ha ido bien la asignación en el mismo Delphi:

De este modo, podemos acelerar nuestro trabajo sin coger el ratón.

MACRO LIBRARY

La librería de macros nos permite guardar una serie de acciones que efectuemos regularmente en Delphi para que se ejecuten de una sola vez:

No se si será mi versión de Delphi, pero cada vez que intento grabar una macro se queda completamente colgado incluso a veces se cierra todo el IDE de golpe. ¿Se supone que funciona esto o es mi versión de Delphi 2007?

MESSAGE DIALOG

Esta opción nos permite escribir rápidamente el código de un mensaje de error, pregunta, advertencia, etc. Por ejemplo:

Nos generará este código al pulsar el botón Ok:

MessageDlg('¿Desea eliminar este cliente?', mtConfirmation, [mbYes, mbNo], 0);

También permite crear mensajes utilizando Application.MessageBox:


OPEN FILE

Este es un buscador que permite encontrar cualquier tipo de archivo dentro del proyecto con solo ir escribiendo su nombre:

Según la pestaña que seleccionemos, permite buscar los archivos del proyecto, las librerías según la ruta de búsqueda, etc. También es muy rápido aunque no permite hacer búsquedas según el contenido (para eso tenemos Grep).

PE INFORMATION

Esta utilizad permite conocer la cabecera de cualquier archivo ejecutable. Si seleccionamos el Bloc de notas de Windows (NOTEPAD.EXE) nos dará esta información:

La pestaña Imports nos dice que librerías DLL utiliza al ejecutarse:

Al pulsar sobre cualquier DLL nos dice las funciones que tiene. Esta utilidad puede ser interesante por si queremos hacer nuestra aplicación portable y averiguar que archivos DLL deberían acompañar al ejecutable.

PROCEDURE LIST

Esta es la ventana de procedimientos que permite buscar todos los métodos de la unidad actual:

El filtro de búsqueda se activa nada más comenzar a escribir.

PROJECT DEPENDENCIES

La ventana de dependencias del proyecto nos muestra todas las unidades de nuestro proyecto:

Y seleccionando cualquiera de ellas podemos ver a su derecha las unidades que usa:

Incluso las dependencias externas (Indirect Dependencies):


PROJECT OPTIONS SET

En esta ventana podemos activar o desactivar todas las directivas del proyecto de una sola tajada:

También se puede declarar en la pestaña Sets la variables de entorno para que luego compilemos con condicionantes.

RENAME COMPONENTS

Con esta ventana podemos renombrar o mejor dicho, asignar un prefijo a los componentes de un formulario según su clase. Por ejemplo, si quiero que todas las etiquetas tengan el prefijo E, hago lo siguiente:

Después de pulsar Ok, cada vez que insertemos una etiqueta en un formulario se llamará E1, E2, etc., en vez de Label1, Label2, …


REPLACE COMPONENTS

Esta potente opción nos permite cambiar los componentes de una clase por otra. Supongamos que tengo un formulario con tres botones de la clase TButton:

Ahora vamos reemplazar los botones TButton por los de la clase TBitBtn:

Lo hará automáticamente y respetando los nombres anteriores:


Esto nos permitirá sustituir unos componentes por otros sin tener que hacerlo manualmente.

SET TAB ORDER

Todos sabemos la pereza que da el tener que ordenar la tabulación de los componentes de un formulario, pero con esta ventana lo podemos organizar todo:

Podemos cambiar el orden manteniendo pinchando el botón izquierdo del ratón para hacer subir o bajar posiciones. También tiene a la derecha el campo Order by Position para que lo ordene según su posición vertical.

SOURCE EXPORT

Con esta opción podemos exportar todo el código fuente de la unidad actual o el que tengamos seleccionado, exportando a los formatos HTML o RTF:

Lo mejor de todo es que conserva casi todo el formato original de nuestro editor de código:


Si queremos retocar el formato de salida podemos pulsar el botón Configure para personalizarlo:

De modo para solucionar el problema que he tenido con el color de fondo, pulso el botón HTML Background y le pongo color negro:

Lo bueno que tiene es que además lo exporta incluyendo en el mismo HTML la hoja de estilo CSS para que ocupe menos.

TO DO LIST

Esta es una lista de tareas pendientes en la que podemos apuntar todo lo que nos queda por hacer en nuestro proyecto. Para añadir un elemento a la lista debemos escribir unos comentarios especiales en el código como estos:

{#ToDo1 Revisar la validación de los campos del cliente}


//#ToDo2 No olvides adjuntar la librería Unzip.dll


Entonces abrimos la ventana TO DO LIST y pulsamos el botón de refrescar para que actualice la lista de tareas:

Aunque vemos que las tildes se las come con patatas. La idea está bien pero creo que es un poco incómodo.

MORE…

La opción More nos lleva a otras dos opciones:

Configuration: permite configurar las distintas partes de este experto como las opciones del menú, las teclas de acceso rápido, los directorios, etc.:

About: con esto podemos averiguar que versión de GExperts tenemos instalada:


CONCLUSIONES

Después de todo lo visto, debo recomendar encarecidamente este experto no solo por la calidad de sus herramientas sino también por el poco consumo de recursos que necesita y lo bien que se integra con Delphi. Con esto doy por finalizado el tema de los expertos hasta que encuentre algún otro interesante.

Pruebas realizadas en RAD Studio 2007.

Publicidad