home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 17
/
CD_ASCQ_17_101194.iso
/
dos
/
prg
/
mos
/
exemples
/
gfx_src
/
flag_win.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1994-09-11
|
10KB
|
290 lines
{╔══════════════════════════════════════════════════════════════════════════╗
║ EXEMPLE D'UTILISATION DES FONCTIONS DE L'INTERFACE GRAPHIQUE ║
╠══════════════════════════════════════════════════════════════════════════╣
║ GESTION DES BOUTONS RADIOS ║
╠══════════════════════════════════════════════════════════════════════════╣
║ Coded by Zuul as BouFFtou as Cheveau Frédéric. ║
║ Programmé à l'IUT de Montpellier sur Turbo Pascal V7.00. ║
║ Contact us on 36.14 RTEL1 - Bal "BouFFtou" or Bal "ICF". ║
╚══════════════════════════════════════════════════════════════════════════╝}
{$M 64000,0,365520} {*Stack And Heap*}
Program FLAG_WIN; {*Nom du Programme*}
Uses Graph,
ZUUL_MSE, {*Gestion de la Souris*}
ZUUL_BAS, {*Gestion des Variables*}
ZUUL_TXT, {*Gestion du Texte*}
ZUUL_ASM, {*Gestion de l'ASM*}
ZUUL_COL, {*Gestion des Couleurs*}
ZUUL_TOO, {*Gestion des Tools et Box*}
ZUUL_GAD,
ZUUL_WIN;
{╔══════════════════════════════════════════════════════════════════════════╗
║ PROCEDURE PRINCIPALE ║
╚══════════════════════════════════════════════════════════════════════════╝}
Procedure MAIN;
Var But1 :ButG; {*Type pour Gadgets Prédéfinit*}
Rad1,Rad2,Rad3,Rad4 :Rad; {*Type pour Boutons Radios*}
Rad5,Rad6,Rad7,Rad8 :Rad; {*Type pour Boutons Radios*}
Rad9,RadA,RadB,RadC :Rad; {*Type pour Boutons Radios*}
RadD,RadE,RadF,RadG :Rad; {*Type pour Boutons Radios*}
RadH,RadI :Rad; {*Type pour Boutons Radios*}
W0,W :Win; {*Structure Window*}
ExitFlg :Boolean; {*Flag Sortie Programme*}
ES,ES1,ES2 :String; {*String Tout Usages*}
Declick,OneTime :Boolean; {*Bouton Souris Appuyé ou pas*}
IDCMP :Word; {*IDCMP Fenêtre*}
IDRES :Word; {*IDRES Fenêtre*}
NUM :Word; {*Numéro Gadets Cliqué*}
Even :Byte; {*Evenements pour Fenêtres*}
{*************************** PROCEDURES INTERNE *****************************}
Procedure DISP_IDCMP;
Begin
ES:=WORD_TO_STRING(W.IDCMP);
SetColor(Col0);
DispG(130,334,Col7,'$'+ES);
End;
Procedure CALC_IDCMP;
Begin
If OneTime=False Then
Begin
If IDCMP And NUM=NUM
Then IDCMP:=IDCMP And ($FFFF-NUM)
Else IDCMP:=IDCMP Or NUM;
IDCMP_WINDOW(IDCMP,W);
DISP_IDCMP;
CLEAR_WINDOW(W);
OneTime:=True;
End;
End;
Procedure DISP_IDRES;
Begin
ES:=WORD_TO_STRING(W.IDRES);
SetColor(Col0);
DispG(340,82,Col7,'$'+ES);
End;
Procedure CALC_IDRES;
Begin
If OneTime=False Then
Begin
If IDRES And NUM=NUM
Then IDRES:=IDRES And ($FFFF-NUM)
Else IDRES:=IDRES Or NUM;
IDRES_WINDOW(IDRES,W);
DISP_IDRES;
CLEAR_WINDOW(W);
OneTime:=True;
End;
End;
{********************* INITIALISATION WINDOW DE BASE ************************}
Procedure INIT_WINDOW0;
Begin
INIT_WINDOW(0,0,GetMaxX,GetMaxY,$0021,'',W0);
SUP_WINDOW(0,0,0,0,39,50,400,250,0,Col7,$0000,W0);
ButtonG(520,9,59,False,But1,'E_XIT'); {*Initialise les Boutons*}
Radio_Box(180,040,1,True,Rad1); {*Initialise les Boutons Radio*}
Radio_Box(180,058,1,True,Rad2);
Radio_Box(180,076,1,True,Rad3);
Radio_Box(180,094,1,True,Rad4);
Radio_Box(180,112,1,True,Rad5);
Radio_Box(180,130,1,False,Rad6);
Radio_Box(180,148,1,False,Rad7);
Radio_Box(180,166,1,True,Rad8);
Radio_Box(180,184,1,True,Rad9);
Radio_Box(180,202,1,True,RadA);
Radio_Box(180,220,1,False,RadB);
Radio_Box(180,238,1,False,RadC);
Radio_Box(180,256,1,False,RadD);
Radio_Box(180,274,1,False,RadE);
Radio_Box(180,292,1,True,RadF);
Radio_Box(180,310,1,False,RadG);
Radio_Box(390,040,1,True,RadH);
Radio_Box(390,058,1,False,RadI);
Declick:=False; OneTime:=False;
End;
{******************************* DRAW WINDOW0 *******************************}
Procedure REDRAW_WINDOW0;
Var A,T,I :Integer; {*Boucle & Aff*}
But2:ButG;
Begin
HideMouse;
Bevel(180,8,455,23,1,7,True,True); {*Affiche la Boite*}
DispG(220,10,7,'UTILISATION DES FLAGS D''UNE FENETRE'); {*Titre*}
Bevel(10,35,210,330,1,7,True,False); {*Affiche la Boite*}
Bevel(220,35,420,78,1,7,True,False); {*Affiche la Boite*}
Draw_ButtonG(But1);
ButtonG(30,333,150,False,But2,'FLAGS IDCMP = ');
ButtonG(240,81,150,False,But2,'FLAGS IDRES = ');
T:=1; I:=0; {*Affichage IDCMP Numéros*}
ES2:='0000';
For A:=1 to 16 do Begin
ES:='$0000';
Str(T,ES1);
ES:=Copy(ES,1,5-I-Length(ES1))+ES1+Copy(ES2,1,I);
DispG(140,A*18+22,Col7,ES);
T:=T*2;
If T>8 Then Begin T:=1; I:=I+1; End;
End;
T:=1; I:=0; {*Affichage IDRES Numéros*}
ES2:='0000';
For A:=1 to 2 do Begin
ES:='$0000';
Str(T,ES1);
ES:=Copy(ES,1,5-I-Length(ES1))+ES1+Copy(ES2,1,I);
DispG(350,A*18+22,Col7,ES);
T:=T*2;
If T>8 Then Begin T:=1; I:=I+1; End;
End;
DispG(20,040,Col7,'WINDOW ACTIVATE'); {*Affiche le Texte*}
DispG(20,058,Col7,'GADGET EXTEND');
DispG(20,076,Col7,'GADGET SIZE');
DispG(20,094,Col7,'GADGET SWAP');
DispG(20,112,Col7,'GADGET CLOSE');
DispG(20,130,Col7,'WINDOW BACKDROP');
DispG(20,148,Col7,'LIMIT BLOCK');
DispG(20,166,Col7,'SHOW TITLE');
DispG(20,184,Col7,'SHOW BORDER');
DispG(20,202,Col7,'INCLUDE CURSOR');
DispG(20,220,Col7,'WINDOW LOCKED');
DispG(20,238,Col7,'WINDOW MODE CON');
DispG(20,256,Col7,'WINDOW REFRESH');
DispG(20,274,Col7,'WINDOW BACKTRANS');
DispG(20,292,Col7,'WINDOW MOVE');
DispG(20,310,Col7,'RELIEF BORDERS');
DispG(230,040,Col7,'ZOOM WINDOW');
DispG(230,058,Col7,'WHOLE MOVE WINDOW');
Draw_Radio_Box(Rad1);
Draw_Radio_Box(Rad2);
Draw_Radio_Box(Rad3);
Draw_Radio_Box(Rad4);
Draw_Radio_Box(Rad5);
Draw_Radio_Box(Rad6);
Draw_Radio_Box(Rad7);
Draw_Radio_Box(Rad8);
Draw_Radio_Box(Rad9);
Draw_Radio_Box(RadA);
Draw_Radio_Box(RadB);
Draw_Radio_Box(RadC);
Draw_Radio_Box(RadD);
Draw_Radio_Box(RadE);
Draw_Radio_Box(RadF);
Draw_Radio_Box(RadG);
Draw_Radio_Box(RadH);
Draw_Radio_Box(RadI);
SetColor(Col0);
DISP_IDCMP;
DISP_IDRES;
ShowMouse;
End;
{****************************** MAIN PROCEDURE ******************************}
Begin
INIT_WINDOW0; {*Initialisation Window de Base*}
REDRAW_WINDOW0; {*Affiche Fenêtre 0*}
INIT_WINDOW(250,130,600,230,$539F,'FENETRE DE TEST',W);
SUP_WINDOW(0,0,GetMaxX,GetMaxY,39,50,GetMaxX,GetMaxY,0,Col5,$0001,W);
DRAW_WINDOW(W);
IDCMP:=W.IDCMP;
IDRES:=W.IDRES;
DISP_IDCMP;
DISP_IDRES;
ExitFlg:=False; {*Don't Forget !!!*}
Repeat
If GETMSG_BUT(But1,1)=True Then ExitFlg:=True;{*Sortie du Programme*}
If Rad1.Fl1=True Then Begin NUM:=$0001; CALC_IDCMP; End;
If Rad2.Fl1=True Then Begin NUM:=$0002; CALC_IDCMP; End;
If Rad3.Fl1=True Then Begin NUM:=$0004; CALC_IDCMP; End;
If Rad4.Fl1=True Then Begin NUM:=$0008; CALC_IDCMP; End;
If Rad5.Fl1=True Then Begin NUM:=$0010; CALC_IDCMP; End;
If Rad6.Fl1=True Then Begin NUM:=$0020; CALC_IDCMP; End;
If Rad7.Fl1=True Then Begin NUM:=$0040; CALC_IDCMP; End;
If Rad8.Fl1=True Then Begin NUM:=$0080; CALC_IDCMP; End;
If Rad9.Fl1=True Then Begin NUM:=$0100; CALC_IDCMP; End;
If RadA.Fl1=True Then Begin NUM:=$0200; CALC_IDCMP; End;
If RadB.Fl1=True Then Begin NUM:=$0400; CALC_IDCMP; End;
If RadC.Fl1=True Then Begin NUM:=$0800; CALC_IDCMP; End;
If RadD.Fl1=True Then Begin NUM:=$1000; CALC_IDCMP; End;
If RadE.Fl1=True Then Begin NUM:=$2000; CALC_IDCMP; End;
If RadF.Fl1=True Then Begin NUM:=$4000; CALC_IDCMP; End;
If RadG.Fl1=True Then Begin NUM:=$8000; CALC_IDCMP; End;
If RadH.Fl1=True Then Begin NUM:=$0001; CALC_IDRES; End;
If RadI.Fl1=True Then Begin NUM:=$0002; CALC_IDRES; End;
If Click_Mouse(1)=False Then OneTime:=False;
GETMSG_RADIO(Rad1,1); {*Active et Teste Boutons*}
GETMSG_RADIO(Rad2,1);
GETMSG_RADIO(Rad3,1); {*Active et Teste Boutons*}
GETMSG_RADIO(Rad4,1);
GETMSG_RADIO(Rad5,1);
GETMSG_RADIO(Rad6,1);
GETMSG_RADIO(Rad7,1);
GETMSG_RADIO(Rad8,1);
GETMSG_RADIO(Rad9,1);
GETMSG_RADIO(RadA,1);
GETMSG_RADIO(RadB,1);
GETMSG_RADIO(RadC,1);
GETMSG_RADIO(RadD,1);
GETMSG_RADIO(RadE,1);
GETMSG_RADIO(RadF,1);
GETMSG_RADIO(RadG,1);
GETMSG_RADIO(RadH,1);
GETMSG_RADIO(RadI,1);
Even:=ACTIVE_WINDOW(W0); If Even=8 Then REDRAW_WINDOW0;
Even:=ACTIVE_WINDOW(W);
Until ExitFlg=True; {*Sortie du Programme*}
If W.Destroyed=False Then KILL_WINDOW(W);
If W0.Destroyed=False Then KILL_WINDOW(W0);
End;
{╔══════════════════════════════════════════════════════════════════════════╗
║ PROGRAMME PRINCIPAL ║
╚══════════════════════════════════════════════════════════════════════════╝}
Begin
INIT_ASM; {*Initialise All for Asm*}
INIT_SCREEN; {*Initialise All for Screen*}
INIT_MOUSE; {*Initialise All for Mouse*}
MAIN; {*Execute le Programme Principal*}
DONE_MOUSE; {*Restore All for Mouse*}
DONE_SCREEN; {*Restore All for Screen*}
DONE_ASM; {*Restore All for Asm*}
End.