Por asterion, hace 11 años y 8 meses

Programando con APIS en Delphi cap. 01

Leido 6153 veces

Advertisements

El Archivo DPR... En el momento en que se crea una nueva aplicación en Delphi tendremos en forma visible el Form1 que es el formulario sobre el que trabajamos normalmente, y el código para este Formulario se encuentra en la llamada Unit1, si ahora abrimos el código perteneciente a todo el Proyecto ósea el project1 veremos el contenido de un fichero DPR (Delphi Project File o Archivo de proyecto Delphi), esto lo hacemos haciendo click en el menú VIEW en la opción UNITS y le damos doble click a Project1. Lo que veremos se parecerá a esto:

program Project1;

uses
Forms,
Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}

begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

Este código utiliza el objeto Application, que pertenece a la clase TApplication y esta definido por la VCL (Visual Component Library o Biblioteca de componentes visuales) en la unidad Forms. Este objeto es un componente, aunque no se pueden ver sus propiedades con el Object Inspector. Las propiedades incluyen el nombre del ejecutable (Exename), el Title de la aplicación y el Icon que aparece en la barra de tareas.
La ventana relativa al objeto Applicacion (ósea la ventana de la aplicación) sirve para mantener unidas todas las ventanas pertenecientes a la aplicación. Aunque esta ventana permanezca oculta es fundamental cuando la aplicación esta activa. De hecho, cuando las ventanas del programa se encuentran detrás de otras, al hacer click en una de las ventanas de la aplicación trae todas las ventanas de esta aplicación al frente. En otras palabras, la ventana oculta de la aplicación se emplea para conectar los diferentes Forms de la aplicación. En realidad, la ventana de la aplicación no esta oculta, ya que esto afectaría su comportamiento; simplemente tiene 0 de altura y 0 de anchura y por lo tanto no es visible.
Si queremos trabajar usando solamente las Apis de windows, creando por medio de código nuestras propias ventanas debemos eliminar el Form, para esto le hacemos click al menú Project en la opción Remove from Project... y nos saldrá un cuadro donde elegimos la Unit1 para ser eliminada y le damos OK, luego nos saldrá un cuadro preguntándonos si queremos guardar la Unit, le decimos que no y tendremos algo parecido a esto:
program Project1;

uses
Forms;

{$R *.RES}

begin
Application.Initialize;
Application.Run;
end.

Obsérvese que ya no existe la línea «Application.CreateForm(TForm1, Form1);» ya que fue eliminado el formulario. Pero aun tenemos un exceso de tamaño en el ejecutable (271 kb), esto esta ligado directamente al uso de la Unidad Forms; la única razón por la cual desearíamos adicionar la unit Forms a nuestra aplicación, sería para proporcionar acceso a la variable Application, que es una instancia del objeto TApplication. Asi que eliminaremos los usos de nuestro programa (ósea uses Forms), También podemos borrar la directiva del compilador ( {$R *.RES} ) a menos que quieran darle un icono a su aplicación :-), y quitemos las líneas Application. Tendremos algo así:
program Project1;

begin

end.
Esto aunque usted no lo crea se puede ejecutar a pesar que no tiene ningún código escrito, por solo unos milisegundos . Esto se debe a que a diferencia de las unidades Unit1.pas este fichero se ejecuta línea por línea hasta terminar, a menos que se encuentre con un loop que lo atrape. El resultado es un ejecutable que tiene solo 16 Kb (en Delphi5) en el cual no solo podremos crear ventanas para nuestra aplicación sino botones y todo lo que necesite nuestra interfaz.
Nuestro Primer programa DPR
Bien entendido todo lo anterior, vamos con una pequeña aplicación sin interfaz grafica. Empecemos agregándole la cláusula Uses que le quitamos anteriormente y le ponemos Windows para añadir en nuestro Ficherito las funciones api que necesitamos en este primer programa.
Lo que haremos será, crear una carpeta, poner un archivo de texto dentro de ella y escribir dentro del archivito de texto pondremos la información que nos de el ParamStr(0) el cual retorna el nombre de la aplicación con el camino completo desde la carpeta en que reside. Ahora echemos un vistazo a los que nos dice sobre la función createdirectoy (que es una de las cosas que queremos hacer) el Help que delphi tiene sobre el uso de las apis, para llegar a el vamos a Inicio > Programas > Borland Delphi 5 > Help > MS SDK Help Files > Win32s Programmer's References, ahi buscamos createdirectoy y encontramos esto:

BOOL CreateDirectory(LPCTSTR lpszPath, LPSECURITY_ATTRIBUTES lpsa)

Que en buen romance quiere decir que llamamos a la función createdirectoy y le damos 2 parámetros, que serian la path o dirección del nuevo directorio y sus atributos. Veremos una muestra clara en el código.
En nuestro programita incluiremos la directiva de compilador {$R *.RES} para poder ponerle un icono (entre otras cosas) a nuestro programa; Eso se hace haciendo click en el menu Project > Options > Application ahi le podemos asignar un icono como lo hariamos si programaramos con las VCL. En esta aplicación, un archivo de texto se creará y escribiremos en el usando los procedimientos AssignFile (), Rewrite () y CloseFile (). La directiva de compilador {$I -} se usa con el Rewrite ()para impedir al programa hacer una Excepción si fracasamos en este procedimiento.
program Project1;

uses
Windows;

{$R *.RES}

var
File1: TextFile; //aqui ponemos las variables

begin // aca empieza el cuerpo del programa
if CreateDirectory('C:\Folder de prueba', nil) then
{como no necesitamos darle al directorio ningún atributo especial lo ponemos en nil}
begin
AssignFile(File1, 'C:\Folder de prueba\prueba.txt');
{$I-}
Rewrite(File1);
{ponemos la directiva de compilador $I para evitar que alguna excepción que se genere nos
detenga el programa}
{$I+}
if IOResult = 0 then
Write(File1,'ParamStr 0 is '+ ParamStr(0));//escribimos en el fichero de texto
{$I-}
CloseFile(File1);//lo cerramos
{$I+}
end;

end.

Si ahora compilamos y ejecutamos el programa, habremos creado en la raíz del disco duro 'C:/' una carpeta llamada 'Fólder de prueba' y dentro de el se habrá creado un fichero de texto con la dirección completa del programa desde el disco duro hasta la carpeta donde se halla, mas el nombre del ejecutable. Como habrá notado no hubo ningún despliegue grafico; podemos hacer programas que cumplan muchas tareas y nunca muestren un entorno grafico ;-).

No hay comentarios

Sé el primero en escribir un comentario a esta entrada.

Escribir un comentario

Si quieres añadir tu comentario a esta entrada, simplemente rellena el siguiente formulario:





* Campos requeridos

Puedes usar estas etiquetas XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>.

1 trackback

Para notificar de una mención en tu blog a esta entrada, habilita la notificación automática (Opciones > Discusión en WordPress) o especifica esta url de trackback: http://​asterion.almadark.com/​2006/​11/​15/​programando-con-apis-en-delphi-cap-01/​trackback/