' * MENU APPLICATION * MENUQB.BAS OPTION BASE 1: DEFSTR A-Z: SCREEN 12: WINDOW SCREEN (1, 1)-(640, 480) DIM Ec(30) AS STRING * 36 LINE (10, 10)-(631, 471), 11, B: PAINT (5, 5), 1, 11 ' ***** Definition des traits doubles H = CHR$(205): V = CHR$(186): Chg = CHR$(201): Chd = CHR$(187) Cbg = CHR$(200): Cbd = CHR$(188 ): Vd = CHR$(204) ' ***** COULEURS Cfd% = 0 ' COUL DE FOND ECRAN Ccv% = 14 ' COUL CADRE VIDE Cct% = 11: Cte% = 14 ' COUL CADRE/TITRE Cr% = 4 ' Couleur de remplissage du titre Titre = " - - > BANQUE/RECETTES/DEPENSES < - - " L% = 3: GOSUB E06D: GOSUB E06.REMPLI Titre = " * * DUPONT & DUPOND * * " L% = 3: GOSUB E06G: GOSUB E06.REMPLI Cct% = 11: Cte% = 15 Titre = " *** MENU GENERAL *** " L% = 6: GOSUB E06C: Cr% = 1: GOSUB E06.REMPLI Ccv% = 11 Lchg% = 8: Cchg% = 3: Lcbd% = 24: Ccbd% = 40: GOSUB E08.CVIDE Cchg% = 41: Ccbd% = 78: GOSUB E08.CVIDE Ec(1) = " 1 RESTAURATION de A vers C " Ec(2) = " 2 INDICATION du NOM " Ec(3) = " 3 DATE de DEMARRAGE APPLICATION " Ec(4) = " 4 CREAT/MODIF TITRES COLONNES " Ec(5) = " 5 CREAT/MODIF Libellés CONSTANTS " Ec(6) = " 6 SAISIE des ECRITURES " Ec(7) = " 7 MODIF/ANNULATION des ECRITURES " Ec(8) = " 8 MODIFICATION de LIGNE/COLONNE " Ec(9) = " 9 CONSTITUTION des TOTAUX MENSUELS " Ec(10) = "10 EDITION des ECRITURES " Ec(11) = "11 EVOLUTION des SOLDES des COMPTES " Ec(12) = "12 EVOLUTION des SOLDES d'UN COMPTE " Ec(13) = "13 EDITION avec SELECTION " Ec(14) = "14 EDITION des TOTAUX MENSUELS " Ec(15) = "15 SELECTION & GRAPHIQUE sur ECRAN " Ec(16) = "16 RECONSTITUTION du FICHIER INDEX " Ec(17) = "17 TRI/EPURATION des ECRITURES " Ec(18) = "18 10 DERNIERES EXRITURES SAISIES " Ec(19) = "19 TETRIS " Ec(20) = "20 MODIFICATION de LIBELLE " Ec(21) = "21 LA BOURSE " Ec(22) = "22 En Attente " Ec(23) = "23 En attente " Ec(24) = "24 En Attente " Ec(25) = "25 En Attente " Ec(26) = "26 CONSULTATION ECRITURES sur ECRAN " Ec(27) = "27 SAUVEGARDE FICHIERS de C sur A " Ec(28) = "28 CREATION des FICHIERS à BLANC " Ec(29) = "29 NOTICE d'UTILISATION " Ec(30) = "30 FIN de TRAVAIL " E51: COLOR 15: E% = 0 FOR L% = 9 TO 23: E% = E% + 1: LOCATE L%, 4: PRINT Ec(E%): NEXT L% FOR L% = 9 TO 23: E% = E% + 1: LOCATE L%, 42: PRINT Ec(E%): NEXT L% Cct% = 13: Cte% = 15 Titre = " Recherchez l'OPTION désirée (" Titre = Titre + CHR$(24) + " ou " + CHR$(25) + ") et 'ENTREE' " Cct% = 11: Cte% = 15: L% = 26: GOSUB E06C: GOSUB E06.REMPLI LOCATE 26, 45: COLOR 10: PRINT CHR$(24) Lc% = 26: Cc% = 45: Nc% = 1: GOSUB E07.ENCADRE LOCATE 26, 50: COLOR 10: PRINT CHR$(25) Cc% = 50: GOSUB E07.ENCADRE LOCATE 26, 57: COLOR 10: PRINT "ENTREE" Cc% = 57: Nc% = 6: GOSUB E07.ENCADRE Dalle = CHR$(1) + CHR$(4) + CHR$(16) + CHR$(64) PAINT (25, 33), Dalle, 11 E52: ' ** CHOIX de l'OPTION ** Choix% = 1: Choix.Pr% = 1: L% = 9: L.Pr% = 9: C% = 4: C.Pr% = 4 COLOR 10: LOCATE L%, C%: PRINT Ec(Choix%); Xg% = (C% - 1) * 8 - 0: Xd% = Xg% + 290 ' = C% * 8 + 282 Yg% = (L% - 1) * 16 - 1: Yd% = L% * 16 + 1 E53: K = INKEY$: LINE (Xg%, Yg%)-(Xd%, Yd%), 13, B, &H3333 LINE (Xg%, Yg%)-(Xd%, Yd%), 15, B, &HCCCC FOR XX& = 1 TO 200000: NEXT LINE (Xg%, Yg%)-(Xd%, Yd%), 0, B, &HFFFF IF K = "" GOTO E53 SELECT CASE K CASE CHR$(27): CLS : COLOR 15: END CASE CHR$(0) + "H", "8": ' Au-dessus IF L% = 9 THEN IF C% = 4 THEN L% = 23: C% = 42: Choix% = 30: GOTO E54 ELSEIF C% = 42 THEN L% = 23: C% = 4: Choix% = 15: GOTO E54 END IF END IF L% = L.Pr% - 1: Choix% = Choix% - 1: GOTO E54 CASE CHR$(0) + "P", "2": ' Au-dessous IF L% = 23 THEN IF C% = 42 THEN L% = 9: C% = 4: Choix% = 1: GOTO E54 ELSEIF C% = 4 THEN L% = 9: C% = 42: Choix% = 16: GOTO E54 END IF END IF L% = L.Pr% + 1: Choix% = Choix% + 1: GOTO E54 CASE CHR$(13): GOTO E55 CASE ELSE: GOSUB E01.BIP: GOTO E54 END SELECT E54: COLOR 15: LOCATE L.Pr%, C.Pr%: PRINT Ec(Choix.Pr%); Xg% = (C.Pr% - 1) * 8: Xd% = Xg% + 290 Yg% = (L.Pr% - 1) * 16 - 1: Yd% = L.Pr% * 16 + 1 LINE (Xg%, Yg%)-(Xd%, Yd%), Cfd%, B COLOR 10: LOCATE L%, C%: PRINT Ec(Choix%); Xg% = (C% - 1) * 8: Xd% = Xg% + 290 Yg% = (L% - 1) * 16 - 1: Yd% = L% * 16 + 1 LINE (Xg%, Yg%)-(Xd%, Yd%), 12, B, &H3333 LINE (Xg%, Yg%)-(Xd%, Yd%), 15, B, &HCCCC L.Pr% = L%: C.Pr% = C%: Choix.Pr% = Choix%: GOTO E53 E55: COLOR 14: LOCATE L%, C%: PRINT Ec(Choix%); Xg% = (C% - 1) * 8: Xd% = Xg% + 290 'LOCATE 28, 10: PRINT Xg%; Xd%; Yg% = (L% - 1) * 16 - 1: Yd% = L% * 16 + 1 LINE (Xg%, Yg%)-(Xd%, Yd%), 10, B, &H3333 Xg1% = Xg%: Titre = " - - - > Recherchez l'OPTION désirée (B ou H) et 'ENTREE' " Titre = " *** 0 si OK, 1 si Erreur *** " L% = 26: GOSUB E06C: GOSUB E06.REMPLI E56: S = INKEY$: IF S = "" GOTO E56 SELECT CASE S CASE CHR$(3), CHR$(27): CLS : COLOR 15: END CASE "0": GOTO E57 CASE "1": LINE (Xg1%, Yg%)-(Xg1% + 290, Yd%), Cfd%, B: GOTO E51 CASE ELSE: GOSUB E01.BIP: GOTO E56 END SELECT E57: SELECT CASE Choix% CASE 1: ' RUN "C:\BRDG\P\RECUPER.BAS" CASE 2: ' GOTO E58 CASE 3: ' GOTO P01 CASE 4: ' GOTO R01 CASE 5: ' GOTO S01 CASE 6: ' RUN "C:\BRDG\P\SAISIE.BAS" CASE 7: ' RUN "C:\BRDG\P\MODIFECR.BAS" CASE 8: ' RUN "C:\BRDG\P\TRANSFER.BAS" CASE 9: ' RUN "C:\BRDG\P\TOTMENS.BAS" CASE 10: 'RUN "C:\BRDG\P\EDITION.BAS" CASE 11: 'RUN "C:\BRDG\P\SOLDES.BAS" CASE 12: 'RUN "C:\BRDG\P\SOLDCPTE.BAS" CASE 13: 'RUN "C:\BRDG\P\EDISELEC.BAS" CASE 14: 'RUN "C:\BRDG\P\TTM.BAS" CASE 15: 'RUN "C:\BRDG\P\GRAPHIC.BAS" CASE 16: 'RUN "C:\BRDG\P\RECUPIND.BAS" CASE 17: 'RUN "C:\BRDG\P\TRIMVTS.BAS" CASE 18: 'RUN "C:\BRDG\P\CH10DERN.BAS" CASE 19: SHELL "C:\JEUX\TETRIS" CASE 20 TO 25: GOTO E100.PAS.FAIT CASE 26: 'RUN "C:\BRDG\P\CONSECRA.BAS" CASE 27: 'RUN "C:\BRDG\P\SAUVEG.BAS" CASE 28: 'RUN "C:\BRDG\P\CREAFICH.BAS" CASE 29: 'GOTO E100.PAS.FAIT CASE 30: CLS : COLOR 15: SYSTEM END SELECT GOTO E51 E01.BIP: PLAY "T150 O2 L16CEG>C": RETURN E01.SIRENE: FOR Z% = 500 TO 100 STEP -5: SOUND Z%, Z% / 5000: NEXT Z%: RETURN ' ***** TITRE ENTOURE d'un CADRE ********** E06G: L% = L% - 1: C% = 4: GOTO E06.TITRE E06C: L% = L% - 1: C% = 39 - LEN(Titre) / 2: GOTO E06.TITRE E06D: L% = L% - 1: C% = 76 - LEN(Titre) E06.TITRE: Lg% = LEN(Titre): COLOR Cct% LOCATE L%, C%: PRINT Chg; STRING$((Lg%), H); Chd; LOCATE L% + 1, C%: PRINT V; : LOCATE L% + 1, C% + Lg% + 1: PRINT V; LOCATE L% + 2, C%: PRINT Cbg; STRING$((Lg%), H); Cbd; LOCATE L% + 1, C% + 1: COLOR Cte%: PRINT Titre; : RETURN E06.REMPLI: Xg% = C% * 8 + 1: Xd% = (C% + Lg%) * 8 + 1 Yh% = (L%) * 16 - 6: Yb% = Yh% + 26 FOR X% = Xg% TO Xd%: FOR Y% = Yh% TO Yb% IF POINT(X%, Y%) = 0 THEN PSET (X%, Y%), Cr% NEXT Y%, X% RETURN E07.ENCADRE: Xchg% = (Cc% - 1) * 8 + 1: Ychg% = (Lc% - 1) * 16 + 1 Xcbd% = (Cc% + Nc% - 1) * 8: Ycbd% = Ychg% + 14: Kc% = 15 LINE (Xchg%, Ychg%)-(Xcbd%, Ycbd%), Kc%, B, &H3333 LINE (Xchg%, Ychg%)-(Xcbd%, Ycbd%), 12, B, &HCCCC RETURN E08.CVIDE: COLOR Ccv% LOCATE Lchg%, Cchg%: PRINT Chg; STRING$((Ccbd% - Cchg% - 1), H); Chd; LOCATE Lcbd%, Cchg%: PRINT Cbg; STRING$((Ccbd% - Cchg% - 1), H); Cbd; FOR L% = Lchg% + 1 TO Lcbd% - 1 LOCATE L%, Cchg%: PRINT V; : LOCATE L%, Ccbd%: PRINT V; : NEXT L% RETURN E100.PAS.FAIT: FOR A% = 1 TO 5 FOR L% = 25 TO 27: LOCATE L%, 15: PRINT SPACE$(54); : NEXT L% Titre = " - - * DESOLE, PROGRAMME NON TERMINE .... " Cct% = 12: Cte% = 15: L% = 26: GOSUB E06C: BEEP NEXT A% SLEEP 2: GOTO E51