Exemple
MACRO "param.mac"
!
! Entrée du nom de la pièce paramétrée
File: INPUT FILE "Nom de la pièce paramétrée ?";F$
TEXT CMP F$,"";Err
IF NOT Err THEN STOP
! Lecture de la pièce paramétrée
PARAM OPEN F$;Err
IF Err THEN
ERROR "PIECE PARAMETREE PAS TROUVEE"
GOTO File
END IF
! Lecture du nombre de variables de la pièce paramétrée
PARAM REQUEST VAR Nb
! Création du masque d'entrée des variables
Start: WCREATE 300,300+340,200,202+21*(Nb+3)
WSCALE 0,340,2+21*(Nb+3),0
WFONT "10x20b"
WPRINT Nb+2,1,"[SELECT] : Edit part"
WPRINT Nb+3,1,"[ESC] : Exit"
WCOLOR 7
WPRINT 1,1,"PART :"
WPRINT 1,9,F$
WCOLOR 2
WMOVE 0,21
WDRAW 340,21
WMOVE 0,21*(Nb+1)+2
WDRAW 340,21*(Nb+1)+2
WCOLOR 6
! Lecture et affichage des variables
FOR I=1 TO Nb
PARAM REQUEST TYPE I;Type
SELECT Type
CASE 0
PARAM REQUEST I;Val$,X
WPRINT I+1,1,Val$
WPRINT I+1,16,X
CASE 1
PARAM REQUEST I;Val$,X$
WPRINT I+1,1,Val$
WPRINT I+1,16,X$
END SELECT
NEXT I
! Modification des variables
I=1
Inp: PARAM REQUEST TYPE I;Type
SELECT Type
! Variable de type numérique
CASE 0
PARAM REQUEST I;Val$,X
WINPUT NUMBER I+1,16,16;X,Sortie
PARAM MODIFY I,X
! Variable de type alphanumérique
CASE 1
PARAM REQUEST I;Val$,X$
WINPUT I+1,16,50;X$,Sortie
PARAM MODIFY I,X$
END SELECT
SELECT Sortie
CASE 2
I=(I-1) MOD Nb
IF I=0 THEN I=Nb
CASE 4
GOTO Exec
CASE 5
GOTO Fin
CASE ELSE
I=(I MOD Nb)+1
END SELECT
GOTO Inp
! Génération de la pièce paramétrée à la position désirée
Exec: WDELETE
DISP "Position de la pièce ?"
DIGITIZE X,Y
PARAM EXEC X,Y,0
GOTO Start
! Fin de la macro
Fin: PARAM CLOSE
END
END MACRO

|