/* Création d'un cadre avec effet de relief autour d'un texte ou plusieurs textes */
/* © R.Florac, Samedi 28 Mars 1998, version 1.00 */
/* Seuls les textes "normaux" sont utilisables, les textes ayant été tournés ne sont pas gérés */

options results     /* indispensable pour récupérer le résultat des macros */

signal on error     /* pour l'interception des erreurs */
signal on syntax

'FIRSTSEL'; objet=result
if objet=0 then do
    'MESSAGE("Sélectionnez d''abord"+CHR(10)+"les textes à encadrer")'
    exit
end

xg=100000; xd = 0; yh = 10000; yb = 0
do while objet>0
    'TYPE('objet')'
    if result ~= 4 then do
	'BLINK('objet')'
	'MESSAGE("Objet de type incorrect"+CHR(10)+"Ne sélectionnez que"+CHR(10)+"des textes S.V.P.")'
	exit
    end
    'COORDS('objet')'; coord=result
    PARSE VAR coord x0 ',' y0
    if x0<xg then xg=x0
    if y0>yb then yb=y0
    'WIDTH('objet')'; x0=x0+result
    if x0>xd then xd=x0
    'HEIGHT('objet')'; y0=y0-result
    if y0<yh then yh=y0
    'NEXTSEL('objet')'; objet=result
end
xg=xg-4; xd=xd+6; yh=yh; yb=yb+3
'DRAWMODE(1):MARK(DRAW('xg','yh','xd','yh')):MARK(DRAW('xg','yh','xg','yb')):DRAWMODE(2):MARK(DRAW('xd','yh'+1,'xd','yb')):MARK(DRAW('xg'+1,'yb','xd','yb')):MENU("Group")'
exit

/* Traitement des erreurs, interruption du programme */
syntax:
erreur=RC
'MESSAGE("Script CadrerTexte"+"Erreur de syntaxe"+CHR(10)+"en ligne 'SIGL'"+CHR(10)+"'errortext(erreur)'")'
exit

error:
'MESSAGE("Script CadrerTexte"+"Erreur en ligne 'SIGL'")'
exit
