Un último comentario: si alguien usa Turbo Pascal, pero no le gusta eso de que estén los ficheros con extensión .BGI por ahí siempre y depender de ellos, puede incluirlos en el fichero EXE. Demos un repasito rápido a la forma de hacerlo:
Primero debemos convertir el BGI en OBJ, que es algo que ya sí se podrá incluir dentro del EXE. Para conseguirlo, tecleamos:
binobj egavga.bgi egavga EgaVgaDriver
(BINOBJ es una utilidad que se incluye con las últimas versiones de Turbo Pascal). El formato en general es
BINOBJ NombreBgi NombreObj NombrePúblico
Y para incluir este OBJ en el EXE, un programa sencillo sería:
{--------------------------}
{ Ejemplo en Pascal: }
{ }
{ Incluye BGI en el EXE }
{ (antes se debe usar }
{ Binobj) }
{ BGIEXE.PAS }
{ }
{ Este fuente procede de }
{ CUPAS, curso de Pascal }
{ por Nacho Cabanes }
{ }
{ Comprobado con: }
{ - Turbo Pascal 7.0 }
{--------------------------}
program BGIEXE; { Introducir los BGI en el .EXE }
uses Graph; { Las funciones gráficas, claro }
var
GraphDriver, GraphMode, Error : integer;
procedure EgaVgaDriver; external; { El driver, en el EXE }
{$L EGAVGA.OBJ }
begin
{ Compruebo que el BGI está bien }
if RegisterBGIdriver(@EgaVgaDriver) < 0 then
begin
writeln('No se pudo inicializar el modo VGA');
halt(1);
end;
GraphDriver := VGA; { Paso a VGA }
GraphMode := VGAHi; { Modo 640x480x16 }
InitGraph(GraphDriver, GraphMode, '');
if GraphResult <> grOk then { Si hay error, paro }
begin
writeln('No se pudo pasar a modo gr fico');
halt(1);
end;
Line(0, 0, 639, 479);
Readln;
CloseGraph;
end.
Y si quereis ver cómo hacer gráficos desde Turbo Pascal sin necesidad de usar los BGI, mirad la "Ampliación 2" del curso, orientada principalmente al modo MCGA/VGA 320x200, 256 colores.
Por cierto, que también tenemos la posibilidad de usar otros
BGI distintos de los que proporciona Borland. Por ejemplo, es fácil
encontrar en alguna BBS o en CdRoms de shareware algún BGI para
modos de 256 colores, o de mayor resolución en una SuperVGA.
Si os llega a interesar, mirad la ayuda sobre la orden "InstallUserDriver".