Archivos de recursos y de configuración en Delphi

Archivos de recursos y de configuración en Delphi

Autores: MsC. Marcos Antonio León Fonseca.

MsC. Noralys Muñiz Maldonado.

MsC. Juan Antonio Fonseca Hernández

Resumen:

En este artículo el autor describe como se crean y utilizan en Delphi los archivos de recursos y de configuración.

Introducción:

Toda aplicación desarrollada con Delphi parte de un proyecto que puede estar compuesto de uno o más formularios (ventanas a partir de las cuales se construyen los programas), módulos de código (cuya finalidad es almacenar código que posteriormente será usado desde otros puntos de la aplicación), archivos de recursos (ficheros que contienen otros elementos usados por la aplicación que formarán parte del ejecutable), y archivos de configuración (ficheros que contienen valores que se usan en la configuración del programa), entre otros.

En este trabajo se describe como se crean y utilizan en Delphi los archivos de recursos y de configuración.

Desarrollo:

Ficheros de configuración (Ficheros Ini).

Por ficheros Ini se entiende todo fichero que tiene extensión Ini, está en formato ASCII y tiene una estructura interior dividida en secciones.

Dentro de cada sección hay valores que se usan en la configuración del programa que gestiona ese fichero. Los nombres de las secciones se indican entre corchetes, e inmediatamente van las variables con sus valores.

Ejemplo:

[Form]

Top = 185

Left = 280

Caption = ‘Ejemplo de uso de los ficheros Ini’

Los ficheros Ini se pueden abrir con el Bloc de Notas, aunque Windows, incluye un programa visor para ver los ficheros del sistema, que se llama SysEdit; si se ejecuta este programa se puede ver el contenido de los ficheros del sistema, entre ellos los de extensión Ini.

Para trabajar con los ficheros Ini, Delphi consta de la Unit IniFiles donde están definidas todas las funciones y los procedimientos necesarios para poder leer y escribir en estos ficheros.

Create (FileName) Para acceder a un fichero

ReadSecTionValues (Sección, Tstring) Lee todas las variables.

ReadSections (Tstring) Lee todas las secciones.

ReadSection (Tstring) Lee una sección

ReadString (Sección, Variable, Defecto) Lee una variable de tipo cadena.

ReadInteger (Sección, Variable, Defecto) Lee una variable de tipo entero

ReadBool (Sección, Variable, Defecto) Lee una variable de tipo boleano

WriteString (Sección, Variable, Valor) Escribe un valor de tipo cadena en una variable.

WriteInteger (Sección, Variable, Valor) Escribe un valor de tipo entero en una variable.

WriteBool (Sección, Variable, Valor) Escribe un valor de tipo boleano en una variable.

Ejemplo:

Incluya IniFiles en la cláusula Uses del formulario.

Var

MiFicheroIni : TIniFile;

begin

Archivo := ExtracFileDir (Paramstr (0) + ‘\Fichero.Ini’;

MiFicheroIni := TIniFile, Create (Archivo);

Form1.Left := MiFicheroIni.ReadInteger (‘Form’, ‘Left’, 0);

Form1.Top := MiFicheroIni.ReadInteger (‘Form’, ‘Top’, 0);

Form1.Caption := MiFicheroIni.ReadStribg (‘Form’, ‘Caption’, ‘Sin Título’);

MiFicheroIni.Free;

end;

En el procedimiento genérico anterior (se puede poner dentro de cualquier procedimiento), se crea una variable de tipo IniFile (MiFicheroIni) que se inicializa en la segunda línea indicando que el fichero con el que se va a trabajar se llama Fichero.Ini y que se encuentra en el mismo directorio en que se encuentra la aplicación.

En la primera línea se indica el nombre del fichero con la ruta completa ya que de no hacerlo se asume que este está en el directorio de Windows, y no donde se está ejecutando el programa.

En la tercera y cuarta línea se le asigna a las propiedades Left y Top del primer formulario los valores de las variables del mismo nombre que se encuentran en la sección Form del fichero Ini.

En la línea final se libera la variable creada, para que no ocupe memoria.

Nota: Cuando el fichero no se encuentra, este es creado.

Ficheros de recursos (Ficheros Res).

Los archivos de recursos tienen extensión Res y contienen elementos de la aplicación que no son ni controles, ni código (imágenes de mapas de bits, sonidos, cursores, iconos, etc).

En un archivo de recursos cada uno de los recursos existentes tiene asignado un identificador único que servirá posteriormente para referirnos a él en tiempo de ejecución.

Para crear un archivo de recursos se necesita un editor de recursos que permita editar los recursos en formato ASCII, siendo necesario posteriormente realizar una compilación para obtener los mismos en formato Res.

Para crear un archivo de recursos, se deben dar los siguientes pasos:

.

1. Se crea un fichero en un editor de textos (Bloc de Notas), por ejemplo:

Imagen Bitmap Dibujo.bmp

Sonido Wave Musica.wav

Puntero Cursor Lápiz.cur

Icono Icon Bandera.ico

Nota: Separe una columna de la otra utilizando la tecla TAB.

2. Se grava con extensión RC, por ejemplo Recursos.rc

3. Se compila el fichero creado, siguiendo los siguientes pasos:

    • Se ponen en el mismo directorio tanto las imágenes (Dibujo.bmp), sonidos (Musica.wav), cursores (Lápiz.cur) e iconos (Bandera.ico), como el fichero creado (recursos.rc).
    • Se activa el compilador BRC32 que se encuentra dentro del subdirectorio BIN del directorio de Delphi pasándole como parámetro el fichero creado (Recursos.rc).

BRC32.exe Recursos.rc

con lo que se generará el archivo de recurso Recursos.res

Para usar los recursos se que utilizan una serie de funciones especiales de Delphi.

Ejemplo:

Incluya MMSystem en la cláusula Uses del formulario y agregue la directiva {$R Recursos.res}

Coloque el siguiente código en el evento OnActivate del formulario

Conts

MiCursor = 5;

begin

PlaySound (PChar (‘Sonido’), Hinstance, SND_Resource Or SND_ASYNC);

Image1.Picture.Bitmap.Handle := LoadBitmap (Hinstance, ‘Imagen’);

Screen.Cursors [MiCursor] := LoadCursor (Hinstance, ‘Puntero’);

Screen.Cursor := MiCursor;

Application.Icon.Handle := LoadIcon (Hinstance, ‘Icono’);end;

En el procedimiento anterior, con la instrucción de la primera línea se escuchará el sonido y sin esperar a que este termine se le asignará, en la segunda línea, la imagen al control Image1.

En la tercera y cuarta línea se le asigna al puntero del mouse el cursor y en la quinta línea se le asigna el icono a la aplicación.

Si se desea que se espere a que termine el sonido para cargar la imagen entonces se deberá cambiar la primera línea por:

PlaySound (PChar (‘Sonido’), Hinstance, SND_Resource Or SND_SYNC);

Conclusiones:

  1. La utilización de archivos de recursos, en el desarrollo de aplicaciones, permite generar ficheros ejecutables que contienen todos los recursos necesarios para su correcto funcionamiento sin necesidad de utilizar ficheros adicionales para suministrar los mismos en tiempo de ejecución evitando, al mismo tiempo, que usuarios indeseados puedan manipularlos.
  2. La utilización de archivos de configuración, en el desarrollo de aplicaciones, permite que cada usuario pueda configurar el programa de acuerdo a sus intereses y necesidades.

Bibliografía:

Díaz Iglesias, Jack y Pérez González, Franklin. Delphi 5 Básico.– Ciudad de la Habana : Editorial Pueblo y Educación, 2001

Charte Ojeda, Francisco. Visual Basic 6– Madrid: Ediciones Anaya Multimedia, 2002

Curso por correo electrónico sobre Borland Delphi.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.