home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 22 / CD_ASCQ_22_0695.iso / win / fr / ectbarre / papier.ect < prev    next >
Text File  |  1995-03-21  |  5KB  |  222 lines

  1.   REM PAPIER.ECT - Gestion des Papiers Peints - (C) 1995 ECTSOFT
  2.   REM Cette macro permet de creer un menu permettant la selection d'un papier peint
  3.   REM $Z = fichier PAPIER.INI  contient les parametres pour les papier peint
  4.   REM $X = fichier PAPIER.LST contient la liste des noms des papiers peints
  5.   $Z=GETDIR(!0)
  6.   $Z=CAT($Z,$MACROS\PAPIER.INI)
  7.   $X=GETDIR(!0)
  8.   $X=CAT($X,$MACROS\PAPIER.LST)
  9.   REM
  10.   REM
  11.   REM                                  Menu Principal
  12.   REM
  13.   REM
  14. :MAIN_MENU
  15.   $A=$&Selectionner papier peint|-|
  16.   $B=$&Ajouter un papier peint|
  17.   $C=$S&upprimer un papier peint|
  18.   $D=$&Modification|
  19.   $E=$&Quitter
  20.   $F=CAT($A,$B)
  21.   $F=CAT($F,$C)
  22.   $F=CAT($F,$D)
  23.   $F=CAT($F,$E)
  24.   !A=MENU($F)
  25.   !A+=!1
  26.   GOTO(!A,$:QUITTER|:AFFICHE|:AJOUTE|:SUPPRIME|:MODIFIE|:QUITTER)
  27.   REM 
  28.   REM Afficher le papier peint selectionnΘ
  29.   REM 
  30. :AFFICHE
  31.   !A = OPEN($X)
  32.   DEFINE($PaperFile,!A) 
  33.   REM
  34.   REM Creation du Menu de Selection, si plus de 10 items proposer un choix par liste
  35.   REM
  36.   !A=!0
  37.   FREE($B)
  38.   $A = READ(PaperFile)
  39.   IF[LEN($A)]==!0
  40.   GOTO($:FIN_ITEM)
  41.   $B=$A
  42.   $B=CAT($B,$|)
  43.    !A+=!1
  44. :LIT_ITEM_SUIVANT
  45.   $A = READ(PaperFile)
  46.   IF[LEN($A)]==!0
  47.   GOTO($:FIN_ITEM)
  48.   IF[!A]==!9
  49.   GOTO($:MAX_ITEM)
  50.   $B=CAT($B,$A)
  51.   $B=CAT($B,$|)
  52.   !A+=!1
  53.   GOTO($:LIT_ITEM_SUIVANT)
  54.   REM
  55.   REM  Il y a plus de 10 programmes
  56.   REM
  57. :MAX_ITEM
  58.   $B=CAT($B,$Autre ...)
  59.   REM
  60.   REM Le menu est construit
  61.   REM
  62. :FIN_ITEM
  63.   !A = MENU($B)
  64.   IF[!A]<!10
  65.   GOTO($:TRADUIT_ITEM)
  66.   $A = LISTE($Afficher ...,$X)
  67.   IF[LEN($A)]==!0
  68.   GOTO($:QUITTER)
  69.   GOTO($:AFFICHEZ_LE!)
  70.   REM
  71.   REM  Trouve le nom de l'item en fonction de son numero
  72.   REM
  73. :TRADUIT_ITEM
  74.   SSEEK(PaperFile,!0)
  75.   !B=!0
  76. :LIT_POUR_COMPARER
  77.   $B=READ(PaperFile)
  78.   IF[LEN($B)]==!0
  79.   GOTO($:QUITTER)
  80.   !B+=!1
  81.   IF[!B]==!A
  82.   GOTO($:FIN_POUR_COMPARER)
  83.   GOTO($:LIT_POUR_COMPARER)
  84. :FIN_POUR_COMPARER
  85.   $A=CAT($,$B) 
  86.   REM
  87.   REM  On l'affiche
  88.   REM
  89. :AFFICHEZ_LE!
  90.   $F = READINI($Z,$A,$FILE.BMP,$ ,!80)
  91.   $C = READINI($Z,$A,$MOSAIQUE,$ ,!80)
  92.   !A = !0
  93.   IF[CMP($C,$OUI)]==!0
  94.   !A = !1
  95.   DESKTOP($F,!A)
  96.   CLOSE(PaperFile)
  97.   GOTO($:QUITTER)
  98.   REM
  99.   REM
  100.   REM                          Ajout d'un papier peint
  101.   REM
  102.   REM
  103.  :AJOUTE
  104.   $A=$ 
  105.   $B=$ 
  106.   $C=$ 
  107.   GOSUB($:NOM)
  108.   IF[LEN($A)]==FALSE
  109.   GOTO($:AUTRE_BMP)
  110.   GOSUB($:BMP)
  111.   IF[LEN($B)]==FALSE
  112.   GOTO($:AUTRE_BMP)
  113.   GOSUB($:MOSAIQUE)
  114. :MISE_A_JOUR
  115.   REM $A = Nom du papier peint tel qu'il apparaitra dans la liste
  116.   REM $B = Nom du fichier BMP a afficher
  117.   REM $C =  NON s'il faut centrer l'image 
  118.   REM Ecrire le nom du papier peint dans PAPIER.LST
  119.   REM Ecrire les parametres dans PAPIER.INI
  120.    !B=OPEN($X)
  121. :NEXT_LINE
  122.   $T=READ(!B)
  123.   IF[LEN($T)]==FALSE
  124.   GOTO($:END_FILE)
  125.   IF[CMP($A,$T)]==!0
  126.   GOTO($:PRESENT)
  127.   GOTO($:NEXT_LINE)
  128. :END_FILE
  129.   WRITE(!B,$A)
  130. :PRESENT
  131.   CLOSE(!B)
  132.   WRITEINI($Z,$A,$FILE.BMP,$B)
  133.   WRITEINI($Z,$A,$MOSAIQUE,$C)
  134.   REM
  135.   REM
  136.   REM                                     Continuer ou Quitter 
  137.   REM
  138.   REM
  139. :AUTRE_BMP
  140.   !A=OUINON($Gestion des Papiers Peints ,$Editer un autre Papier ?,QUESTION)
  141.   IF[!A]==TRUE
  142.   GOTO($:MAIN_MENU)
  143. :QUITTER
  144.   END()
  145.   REM
  146.   REM
  147.   REM                                           Suppression d'un papier peint
  148.   REM
  149.   REM
  150. :SUPPRIME
  151.   $A=LISTE($Suppression          ,$X)
  152.   IF[LEN($A)]==!0
  153.   GOTO($:MAIN_MENU)
  154.   GOSUB($:EFFACER_$A)
  155.   GOTO($:MAIN_MENU)
  156.   REM
  157.   REM
  158.   REM                         Modification des parametres 
  159.   REM
  160.   REM
  161. :MODIFIE
  162.   $A=LISTE($Modifier       ,$X)
  163.   IF[LEN($A)]==!0
  164.   GOTO($:MAIN_MENU)
  165.   $C=READINI($Z,$A,$MOSAIQUE,$ ,!80)  
  166.   $B=READINI($Z,$A,$FILE.BMP,$ ,!80)
  167.   !A=MENU($&1 - Modifier le Nom du Papier|&2 - Modifier le nom du fichier BMP|&3 - Modifier son Style d'Affichage)
  168.   IF[!A]==!0
  169.   GOTO($:MAIN_MENU)
  170.   GOSUB(!A,$:NOM|:BMP|:MOSAIQUE)
  171.   GOTO($:MISE_A_JOUR)
  172.   REM
  173.   REM
  174.   REM                                           Saisi du Nom
  175.   REM
  176.   REM
  177. :NOM
  178.   GOSUB($:EFFACER_$A)
  179.   $A=INPUT($Gestion des Papiers Peints,$Nom du Papier Peint,$A,FALSE,!30)
  180.   RETURN(!0)
  181.   REM
  182.   REM
  183.   REM                                              Saisi du fichier BMP
  184.   REM
  185.   REM
  186. :BMP
  187.   $B=OPENFILEDLG($Nom du Fichier BMP,$Bitmap|*.BMP|,FALSE)
  188.   RETURN(!0)
  189.   REM
  190.   REM
  191.   REM                                            Style d'affichage
  192.   REM
  193.   REM
  194. :MOSAIQUE
  195.   !A=OUINON($A,$Voulez-vous l'afficher en Mosaique ?,QUESTION)
  196.   $C=$NON
  197.   IF[!A]==IDOK
  198.   $C=$OUI
  199.   RETURN(!0)
  200.   REM
  201.   REM  Effacer le papier $A
  202.   REM
  203. :EFFACER_$A
  204.   !B=OPEN($X)
  205.   $E=GETDIR(!0)
  206.   $E=CAT($E,$a.b)
  207.   !C=CREAT($E,!1)
  208. :LIT_FILE_X
  209.   $F=READ(!B)
  210.   IF[LEN($F)]==!0
  211.   GOTO($:FIN_FILE_X)
  212.   IF[CMP($F,$A)]!=!0
  213.   WRITE(!C,$F)
  214.   GOTO($:LIT_FILE_X)
  215. :FIN_FILE_X
  216.   CLOSE(!B)
  217.   CLOSE(!C)
  218.   WRITEINI($Z,$A,$NULL,$A)
  219.   DEL($X)
  220.   RENAME($E,$X)
  221.   RETURN(!0)
  222.