|
unit costanti;
{**************} INTERFACE {*************}
type
campo_colori_principale=(TC,TB,TC_iter,TB_iter,TC_bordo,TB_bordo);
(*colori della finestra principale: TC=colore testo, TB=colore sfondo,
TC_iter=colore testo opzione scelta, TB_iter=colore sfondo opzione scelta,
TC_bordo=colore testo bordo(cornice), TB_bordo=colore sfondo bordo*)
campo_colori_finestra=(TC2,TB2,TC2_iter,TB2_iter,TC2_bordo,TB2_bordo,
TB2_ombra);
(*Stessa cosa applicata per• alle finestrelle, ossia quelle
usate per scegliere gli eseguibili *)
eseguibili_esterni=record
posX,posY:byte;
prog:string[40];
param:string[25];
end;
const
colori_principali:array[1..3,TC..TB_bordo] of byte=
((15,1,15,8,15,1),
(7,6,15,1,5,7),
(0,7,15,7,0,7));
colori_finestre:array[1..3,TC2..TB2_ombra] of byte=
((15,4,15,0,15,0,0),
(0,7,15,0,15,4,0),
(0,7,15,0,15,0,0));
(*Array di 3 combinazioni di colori globale*)
num_finestre=5;
(*numero finestrelle*)
dim_max=3;
(*numero massimo di scelte per le finestrelle*)
dim_finestre:array[1..num_finestre] of byte=(3,2,2,3,3);
(*numero di scelte per ciascuna finestrella*)
posX_finestre:array[1..num_finestre] of byte=(1,16,31,46,61);
(*indica dove posizionare le finestrelle nella finestra principale nella
parte alta*)
fin_princ:array[1..num_finestre] of string[13]=('FILE','ARCHIVIO',
'STAMPA','GIOCHI','VIDEO');
(*Sono i nomi delle finestrelle visualizzati nella finestra principale*)
finestra_stringhe:array[1..num_finestre,1..dim_max] of
string[15]=
(('ESCI','SUONA','INFORMAZIONI'),
('FATTURE','RICERCA',''),
('VIDEATA','DEL MESE',''),
('MASTERMIND','ASTROBAL','FINESTRE'),
('COLORE','MONOCROMATICO','LCD'));
(*nomi degli eseguibili all'interno delle finestrelle*)
num_exe=3;
exe_ext:array[1..num_exe] of eseguibili_esterni=
((posX:4;posY:1;prog:'a:\mind.exe';param:''),
(posX:4;posY:2;prog:'a:\astrobal.exe';param:'300'),
(posX:4;posY:3;prog:'m:\finestre.exe';param:''));
{programmi da eseguire con posizione indici nelle finestre. exe
di esempio non disponibili}
procedure inizializza_stringhe;
procedure scelta_colori(i:byte);
(*memorizza la scelta dei colori globale nelle variabili utilizzate*)
var
lunghezza_stringhe:array[1..num_finestre] of byte;
{lunghezza massima delle stringhe per ciascuna finestrella}
colori_principale:array[TC..TB_bordo] of byte;
(*colori finestra principale per singola scelta*)
colori_finestra:array[TC2..TB2_ombra] of byte;
(*colori finestrelle per singola scelta*)
campo_p:campo_colori_principale;
campo_f:campo_colori_finestra;
{***************} IMPLEMENTATION {*******************}
procedure inizializza_stringhe;
var i,j,k,max,l:byte;
begin
for i:=1 to num_finestre do
begin
max:=0;
for j:=1 to dim_finestre[i] do
begin
l:=length(finestra_stringhe[i,j]);
if l > max
then max:=l;
end;
lunghezza_stringhe[i]:=max;
end;
for i:=1 to num_finestre do
for j:=1 to dim_finestre[i] do
for k:=length(finestra_stringhe[i,j]) to lunghezza_stringhe[i]-1 do
finestra_stringhe[i,j]:=finestra_stringhe[i,j]+' ';
end;
procedure scelta_colori(i:byte);
begin
for campo_p:=TC to TB_bordo
do colori_principale[campo_p]:=colori_principali[i,campo_p];
for campo_f:=TC2 to TB2_ombra
do colori_finestra[campo_f]:=colori_finestre[i,campo_f];
end;
begin
inizializza_stringhe;
end.
|
|