home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 17
/
CD_ASCQ_17_101194.iso
/
dos
/
prg
/
mos
/
exemples
/
txt_src
/
menus.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1994-05-18
|
10KB
|
248 lines
{╔══════════════════════════════════════════════════════════════════════════╗
║ PROGRAMME CREATION D'UNE FENETRE DE BASE ║
╠══════════════════════════════════════════════════════════════════════════╣
║ Commencé le 14.12.93, Terminé le 15.12.93. ║
║ Programmé à l'IUT de Montpellier sur Turbo Pascal V6.00 ║
║ Auteur: Cheveau Frédéric alias Zuul alias BouFFtou. ║
╚══════════════════════════════════════════════════════════════════════════╝}
Program Make_Base_Window;
Uses ZUUL_MEN,
ZUUL_COL,
ZUUL_TOO,
ZUUL_SWA,
ZUUL_MSE,
ZUUL_TXT,
ZUUL_DIR,
ZUUL_REQ,
Crt;
Var Qtt_Men :Integer; {*Nombre de Menus*}
DirSel,FilSel :String; {*Directory et Nom Fichier*}
X0,Y0 :Word; {*Save Pos Curseur for Resto*}
Si :Longint; {*Size du Fihcier Chargé*}
{$M $9000,0,0} {*Stack 9000 for Tools*}
{╔══════════════════════════════════════════════════════════════════════════╗
║ INITIALISATION DES MENUS ║
╚══════════════════════════════════════════════════════════════════════════╝}
Procedure MENU_INIT;
Begin
Qtt_Men:=9; {*Nombre de Menus*}
TbMen[1,1]:='Main'; {*Barre des Menus*}
TbMen[2,1]:='List';
TbMen[3,1]:='Prefs';
TbMen[4,1]:='Boots';
TbMen[5,1]:='Files';
TbMen[6,1]:='Memory';
TbMen[7,1]:='Scan';
TbMen[8,1]:='Help';
TbMen[9,1]:='Register';
TbMen[1,2]:='About'; {*Labels Menu "Main"*}
TbMen[1,3]:='Info';
TbMen[1,4]:='Refresh Window';
TbMen[1,5]:='Stay Resident';
TbMen[1,6]:='Exit';
TbMen[2,2]:='Performances'; {*Labels Menu "List"*}
TbMen[2,3]:='Bootblocks';
TbMen[2,4]:='Bootvirus';
TbMen[2,5]:='Filesvirus';
TbMen[2,6]:='Residents';
TbMen[3,2]:='Load Config'; {*Labels Menu "Prefs"*}
TbMen[3,3]:='Save Config';
TbMen[3,4]:='Select Colors';
TbMen[3,5]:='*';
TbMen[3,6]:='X Show ASCII';
TbMen[3,7]:='X Auto Save Config';
TbMen[3,8]:='X Show Requesters';
TbMen[3,9]:='X Skip Bootloader';
TbMen[3,10]:='X Play Samples';
TbMen[3,11]:='X Speed Display';
TbMen[4,2]:='Install DOS Boot'; {*Labels Menu "Boots"*}
TbMen[4,3]:='Install Cleared Boot';
TbMen[4,4]:='Install Unistalled Boot';
TbMen[4,5]:='';
TbMen[5,2]:='Check Files'; {*Labels Menu "Files"*}
TbMen[5,3]:='*';
TbMen[5,4]:='X Subdirectory';
TbMen[5,5]:='X All Files';
TbMen[5,6]:='X All Attributes';
TbMen[5,6]:='X Del Infected Files';
TbMen[5,7]:='X Ren Infected Files';
TbMen[5,8]:='X No Requesters';
TbMen[6,2]:='Scan Mem'; {*Labels Menu "Memory"*}
TbMen[6,3]:='Clear Mem';
TbMen[6,4]:='Reset';
TbMen[7,2]:='Scan All Entries'; {*Labels Menu "Sacn"*}
TbMen[8,2]:='Info Help'; {*Labels Menu "Help"*}
TbMen[8,3]:=' Help';
TbMen[9,2]:='How to be...'; {*Labels Menu "Register"*}
TbMen[9,3]:='Registered Guys';
TbHlp[9,2]:='Test de Menu Help';
End;
{╔══════════════════════════════════════════════════════════════════════════╗
║ CREATION DE LA FENETRE DE BASE ║
╠══════════════════════════════════════════════════════════════════════════╣
║ IN: / OUT: / MODIFIABLE SELON BESOINS. ║
╚══════════════════════════════════════════════════════════════════════════╝}
Procedure MAKE_WINDOW;
Var A:Integer;
Begin
BGC(15); Clrscr; {*Aff Trame Ecran*}
TC(1); Gotoxy(1,2);
Box(1,2,80,24,False,False,True);
Gotoxy(2,25); {*Aff Ligne du Bas*}
TC(6); Write('T'); TC(0); Write('he ');
TC(6); Write('V'); TC(0); Write('irus ');
TC(6); Write('B'); TC(0); Write('oot ');
TC(6); Write('D'); TC(0); Write('etector v2.5 ');
TC(6); Write('(C)'); TC(0); Write(' 1993 ');
TC(6); Write('F'); TC(0); Write('.Cheveau - ');
TC(6); Write('T'); TC(0); Write('el: 68.50.77.15 - ');
TC(6); Write('S'); TC(0); Write('HAREWARE');
End;
{╔══════════════════════════════════════════════════════════════════════════╗
║ ABOUT ║
╚══════════════════════════════════════════════════════════════════════════╝}
Procedure ABOUT;
Var SveX:SaveWin;
Begin
SwapHide(18,4,64,17,SveX);
BGC(7); TC(15); Box(18,4,62,16,True,True,False);
BOX(19,5,61,7,False,False,True);
TC(0); Gotoxy(25,6); Write(' The Virus Boot Detector V2.5 ');
TC(14); Gotoxy(20,9); Write('C'); TC(0); Write('ode by F.Cheveau.');
TC(14); Gotoxy(20,10); Write('V'); TC(0); Write('ersion 2.5 - Release Date 06.11.93');
TC(14); Gotoxy(20,11); Write('S'); TC(0); Write('hareware Version 8$ US (40 FF)');
TC(14); Gotoxy(20,13); Write('C'); TC(0); Write('ontact me at:');
Gotoxy(20,14); Write('Cheveau Frédéric, 8 Passage des Grillons');
Gotoxy(20,15); Write('66000 Perpignan - Tel: 68.50.77.15');
Wait; SwapShow(18,4,SveX);
End;
{╔══════════════════════════════════════════════════════════════════════════╗
║ INFO ║
╚══════════════════════════════════════════════════════════════════════════╝}
Procedure INFO;
Var SveX,SveY,SveZ:SaveWin;
Begin
BGC(1); TC(15);
SwapHide(2,3,79,13,SveX);
Box(2,3,77,12,True,True,False);
Gotoxy(31,3); Write(' Selector Window '); Wait;
SwapHide(15,6,36,20,SveY);
BGC(7); Box(15,6,34,19,True,True,False);
Gotoxy(21,6); Write(' Coding '); Wait;
SwapHide(30,9,58,25,SveZ);
BGC(3); Box(30,9,56,24,True,True,False);
Gotoxy(36,9); Write(' Output Window '); Wait;
SwapShow(30,9,SveZ); Wait;
SwapShow(15,6,SveY); Wait;
SwapShow(2,3,SveX);
End;
{╔══════════════════════════════════════════════════════════════════════════╗
║ RAFRAICHIT L'ECRAN ET REINITIALISE ║
╚══════════════════════════════════════════════════════════════════════════╝}
Procedure FRESH_WIND;
Begin
MAKE_WINDOW; {*Affiche la Fenetre principale*}
MENU_INIT; {*Definit les Labels des Menus*}
MENU_BAR_DISP(TbMen); {*Affiche Barre de Menu*}
End;
{╔══════════════════════════════════════════════════════════════════════════╗
║ SORTIE DEFINITIVE DU PROGRAMME ║
╚══════════════════════════════════════════════════════════════════════════╝}
Procedure SORTIE;
Begin
CopyPage(3,0); {*Restitue écran de Début*}
CursOn;
Gotoxy(X0,Y0); {*Restore Pos de Base du Curseur*}
Halt(0);
End;
{╔══════════════════════════════════════════════════════════════════════════╗
║ BOUCLE PRINCIPALE DE TEST DES TOUCHES ║
╠══════════════════════════════════════════════════════════════════════════╣
║ IN: / OUT: / MODIFIABLE SELON BESOINS. ║
╚══════════════════════════════════════════════════════════════════════════╝}
Procedure TESTG;
Var Ent:Char;
V:Integer; {* = Ord(Ent)) *}
MS,IS,M0,I0 :Integer; {*Menu et Item Selectionné*}
Begin
MS:=1; IS:=1; {*1er Menu Sélectionné*}
MENU_BAR_DISP(TbMen); {*Affiche Barre de Menu*}
TC(15); Gotoxy(1,25); {*Hide Cursor*}
Repeat
Ent:=Readkey;
If Ord(Ent)=27 Then SORTIE; {*Sortie Définitive du Prog*}
If Ord(Ent)=0 Then Begin
Ent:=Readkey;
V:=Ord(Ent);
M0:=MS; I0:=IS; {*Save Old Positions*}
If V=68 Then GIVEMENU(True,True,True,MS,IS);
End;
{********* Analyse le Résultat du Menu ! *********}
If (MS=0) And (IS=0) Then Else Begin
If MS=1 Then Begin
If IS=1 Then ABOUT; {*About*}
If IS=2 Then INFO; {*Info*}
If IS=3 Then FRESH_WIND; {*ReFresh Window*}
If IS=5 Then SORTIE; {*Sortie Définitive du Prog*}
End;
If MS=3 Then Begin
If IS=1 Then Givedir(10,3,Si,DirSel,FilSel); {*Loading Config*}
End;
End;
If (MS=0) And (IS=0) Then {*Restore Good Positions*}
Begin MS:=M0; IS:=I0; End;
TC(15); Gotoxy(1,25);
Until False; {*Hide Cursor*}
End;
{╔══════════════════════════════════════════════════════════════════════════╗
║ PROGRAMME PRINCIPAL ║
╠══════════════════════════════════════════════════════════════════════════╣
║ IN: / OUT: / MODIFIABLE SELON BESOINS. ║
╚══════════════════════════════════════════════════════════════════════════╝}
Begin
X0:=WhereX; Y0:=WhereY;
CopyPage(0,3); {*Capture l'écran --> Restitution*}
CursOff; {*Cache le Curseur*}
MAKE_WINDOW; {*Affiche la Fenetre principale*}
MENU_INIT; {*Definit les Labels des Menus*}
TESTG; {*Teste les Touches et Menus*}
End.