| La procedura è scritta
in Pascal:
| Essa organizza i parametri al fine
di stampare un'area ci spazi colorati con bordo scelto con tecnica
di tipo CASE .. OF |
| Si pụ osservare che, per risolvere i noti
problemi legati alla eventuale stampa in posizione [80,25] al fine di
scongiurare lo scrolling verso l’alto di una riga di tutta l’immagine,
l'ultimo carattere viene comunque stampato
a basso livello con la
STAchr. |
Codice Sorgente |
|
|
|
|
PROCEDURE
Cornice1 (rig,col,lar,alt,txt,sfo,tipo,modo:integer);
VAR
n,m,w:integer;
chr:array[1..6] of char;
BEGIN
CASE tipo OF
1: chr:=('');
2: chr:=('');
3: chr:=('');
4: chr:=('');
5: chr:=('');
6: chr:=('');
end;
textcolor(txt);textbackground(sfo);
gotoxy(col,rig);
IF modo=1 THEN
{*************************}
begin write(' ');w:=4; end {Stampa il
tratto superio-}
ELSE w:=2;
{re della cornice
}
write(chr[1]);
{
}
FOR n:=1 to lar-w do
{(se "lar"=4 non esegue il}
IF (tipo=5) THEN
{ loop)
}
write ('')
{
}
ELSE
{
}
write(chr[5]);
{
}
write(chr[2]);
{*************************}
IF modo=1 THEN write(' '); {*************************}
FOR m:=1 to alt-2 do
{ }
begin
{Stampa il tratto centrale}
gotoxy(col,rig+m);
{della cornice
}
IF modo=1 THEN
{ }
write(' ');
{(se "alt"=2 non esegue }
write(chr[6]);
{questo loop)
}
FOR n:=1 to lar-w do
{
}
write(' ');
{ }
write(chr[6]);
{ }
IF modo=1 THEN
{ }
write(' ');
{ }
end;
{*************************}
gotoxy(col,rig+alt-1);
{*************************}
IF modo=1 THEN write(' ');
{Stampa il tratto inferio-}
write(chr[3]);
{re della cornice
}
FOR n:=1 to (lar-w) do
{
}
IF (tipo=5) THEN
{(se "lar"=4
non esegue }
write ('')
{il loop)
}
ELSE
{
}
write(chr[5]);
{*************************}
IF modo=1 THEN
{*************************}
begin
{Queste
istruzioni comple-}
write(chr[4]); {tano
la stampa della cor-}
STAchr(rig+alt-1,col+lar-1,txt,sfo,' '); {ce evitando}
end
{scrolling se "lar"=80
e}
ELSE
{"alt"=25
}
STAchr(rig+alt-1,col+lar-1,txt,sfo,chr[4]); {
}
gotoxy(1,1);
{*************************}
END;
|
|