autorun notes techniques résumé - united statesdownload.4d.com/.../nt/2001/200104-12-autorun.pdfex...

30
Autorun Notes Techniques Par Gilles MELLOT, Responsable Notes Techniques Note technique 4D-200104-12-FR Version 0 Date 1 Avril 2001 Résumé Cet application vous permet de gérer une structure de CD_Rom périodique dont le contenu varie à chaque gravure. Cet outil est utilisé tous les trimestres, à l’occasion de la gravure du CD des Notes Techniques. Il peut facilement être adapté à vos besoins : il vous sera facile de stocker vos interfaces et vos paramétrages dans un blob stocké dans une table “Profiles”, afin de sélectionner suivant le cas de gravure, un type de fonctionnement ou d’interface. De même, vous pouvez tout gérer de manière dynamique, en appliquant aux boutons, la méthode servant à afficher les liens. Et donc de se passer définitivement de la phase "Tableau de bord". 4D Notes techniques Copyright © 1985-2003 4D SA - Tous droits réservés Tous les efforts ont été faits pour que le contenu de cette note technique présente le maximum de fiabilité possible. Néanmoins, les différents éléments composant cette note technique, et le cas échéant, le code, sont fournis sans garantie d'aucune sorte. L'auteur et 4D S.A. déclinent donc toute responsabilité quant à l'utilisation qui pourrait être faite de ces éléments, tant à l'égard de leurs utilisateurs que des tiers. Les informations contenues dans ce document peuvent faire l'objet de modifications sans préavis et ne sauraient en aucune manière engager 4D SA. La fourniture du logiciel décrit dans ce document est régie par un octroi de licence dont les termes sont précisés par ailleurs dans la licence électronique figurant sur le support du Logiciel et de la Documentation afférente. Le logiciel et sa documentation ne peuvent être utilisés, copiés ou reproduits sur quelque support que ce soit et de quelque manière que ce soit, que conformément aux termes de cette licence. Aucune partie de ce document ne peut être reproduite ou recopiée de quelque manière que ce soit, électronique ou mécanique, y compris par photocopie, enregistrement, archivage ou tout autre procédé de stockage, de traitement et de récupération d'informations, pour d'autres buts que l'usage personnel de l'acheteur, et ce exclusivement aux conditions contractuelles, sans la permission explicite de 4D SA. 4D, 4D Calc, 4D Draw, 4D Write, 4D Insider, 4ème Dimension ®, 4D Server, 4D Compiler ainsi que les logos 4e Dimension, sont des marques enregistrées de 4D SA. Windows,Windows NT,Win 32s et Microsoft sont des marques enregistrées de Microsoft Corporation. 1 / 30

Upload: others

Post on 10-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

Autorun Notes TechniquesParGilles MELLOT, Responsable Notes TechniquesNote technique 4D-200104-12-FRVersion 0

Date 1 Avril 2001

RésuméCet application vous permet de gérer une structure de CD_Rom périodique dont le contenu varie à chaquegravure.Cet outil est utilisé tous les trimestres, à l’occasion de la gravure du CD des Notes Techniques.

Il peut facilement être adapté à vos besoins : il vous sera facile de stocker vos interfaces et vos paramétragesdans un blob stocké dans une table “Profiles”, afin de sélectionner suivant le cas de gravure, un type defonctionnement ou d’interface.

De même, vous pouvez tout gérer de manière dynamique, en appliquant aux boutons, la méthode servant àafficher les liens. Et donc de se passer définitivement de la phase "Tableau de bord".

4D Notes techniquesCopyright © 1985-2003 4D SA - Tous droits réservés

Tous les efforts ont été faits pour que le contenu de cette note technique présente le maximum de fiabilité possible.Néanmoins, les différents éléments composant cette note technique, et le cas échéant, le code, sont fournis sans garantie d'aucune sorte.L'auteur et 4D S.A. déclinent donc toute responsabilité quant à l'utilisation qui pourrait être faite de ces éléments, tant à l'égard de leursutilisateurs que des tiers.

Les informations contenues dans ce document peuvent faire l'objet de modifications sans préavis et ne sauraient en aucune manièreengager 4D SA. La fourniture du logiciel décrit dans ce document est régie par un octroi de licence dont les termes sont précisés parailleurs dans la licence électronique figurant sur le support du Logiciel et de la Documentation afférente. Le logiciel et sa documentationne peuvent être utilisés, copiés ou reproduits sur quelque support que ce soit et de quelque manière que ce soit, que conformément auxtermes de cette licence.Aucune partie de ce document ne peut être reproduite ou recopiée de quelque manière que ce soit, électronique ou mécanique, y comprispar photocopie, enregistrement, archivage ou tout autre procédé de stockage, de traitement et de récupération d'informations, pourd'autres buts que l'usage personnel de l'acheteur, et ce exclusivement aux conditions contractuelles, sans la permission explicite de 4DSA.4D, 4D Calc, 4D Draw, 4D Write, 4D Insider, 4ème Dimension ®, 4D Server, 4D Compiler ainsi que les logos 4e Dimension, sont desmarques enregistrées de 4D SA.Windows,Windows NT,Win 32s et Microsoft sont des marques enregistrées de Microsoft Corporation.

1 / 30

Page 2: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

Apple, Macintosh, Power Macintosh, LaserWriter, ImageWriter, QuickTime sont des marques enregistrées ou des noms commerciaux deApple Computer,Inc.Mac2Win Software Copyright © 1990-2002 est un produit de Altura Software,Inc.4D Write contient des éléments de "MacLink Plus file translation", un produit de DataViz, Inc,55 Corporate drive,Trumbull,CT,USA.XTND Copyright 1992-2002 © 4D SA. Tous droits réservés.XTND Technology Copyright 1989-2002 © Claris Corporation.. Tous droits réservés ACROBAT © Copyright 1987-2002, SecretCommercial Adobe Systems Inc.Tous droits réservés. ACROBAT est une marque enregistrée d'Adobe Systems Inc.

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétairesrespectifs.

2 / 30

Page 3: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

Introduction

Comme vous avez pu le remarquer, depuis le1er trimestre 2000, le CD des notes techniques possède sonpropre autorun. Cette première version était “hard codée” pour les spécificités du trimestre et les impératifsde dates :-)

Ayant été nombreux à demander cet application en note technique, nous exauçons vos souhaits :-)

Au fil des trimestres, les méthodes sont devenues génériques, et à l’occasion de cette note techniquel’interface le devient aussi.

Important : cette note ne remplace pas un installeur, mais vous propose de livrer vos produits, démos, ouactualités d’une manière originale. Il n’est effectué aucun test de destination, de remplacement ou autres ...

But du jeu

Gérer les ouvertures ou le déplacement de fichiers uniquement en paramétrant le data de la base, et enalimentant des dossiers spécifiés, ceci sans retoucher aux sources (qui nous forcerait à chaque publication derecompiler notre structure sur les deux plates-formes).

Exemple typique d’utilisation :pour une structure de CD Rom récurrente et périodique (sans que le contenusoit identique) nous générons le CD-Rom des notes techniques sans toucher aux sources.

Nous aurons donc à gérer la construction de boutons graphiques génériques (non obligatoires mais tellement“fun”) et le type d’action devant être exécuté lors de l’activation de ces boutons.

Ces boutons seront actifs dès que (suivant leur action associée) :

- le contenu de leur dossier associé existe et contient au moins un fichier visible.- le document existe- le bouton est paramétré actif dans le tableau de bord de l’Autorun.

Pour chaque bouton, nous pourrons paramétrer un type d’action :

- URL à lancer avec un navigateurEx. : www.4D.comDans ce cas, nous n’aurons qu’à transmettre l’URL au navigateur par défaut de la machine.

- Fichier HTML local (site web en local sur CD)Ex. : Nouveautés:websupport:index.htmlCe second cas de lien HTML, se résout de lui-même en sélectionnant le fichier cible :il sera transformé en :File:///VolumeCD/Nouveautés/websupport/index.html

3 / 30

Page 4: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

- Document à ouvrirEx : Nouveautés:Sommaire.pdfIci, nous ouvrirons le document reconnu avec l’application associée au type du document.

- dossier à explorer sans classificationEx : Notes_Techniques:Le bouton paramétré avec ce type, nous présentera le contenu du dossier cible (documents et dossiersinclus). Suivant la sélection de l’utilisateur, les fichiers/dossiers pourront soit être ouverts ou installés.

- dossier à explorer avec classificationEx : Archives :Ce paramétrage, indispensable pour le CD des notes techniques, permet d’activer un popup menu alimentépar les dossiers contenus au premier niveau du dossier spécifié. Dans notre exemple, nous alimentons lebouton Archives avec des années (1997-2001).

Le comportement est le même que le mode d’action précédent : nous y avons juste ajouté un niveau dehiérarchie.

- dossier de liensEx : Liens :Ce type d’action associée à un bouton construira au vol le nombre de boutons adéquats en page 3. Un clic surces boutons lancera le navigateur par défaut de la machine, avec le lien spécifié par le fichier.

- méthode propriétaire

Nous aurons toujours des besoins spécifiques. De ce fait, vous disposez de 9 méthodes propriétaires(nombre lié aux boutons disponibles, la 10ème étant réservée à l’application : Actualités).

Ex : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des notes techniques. Ellevous permet de chercher dans le contenu des zones 4D_Write, stockées dans la table [Notes].

Ex : Autorun_2, lance un applescript sous MacOS ou l’explorer sous windows (bouton “Explorer le CD”)

Important : cette application ne gère que deux niveaux de hiérarchie à l’intérieur du dossier cible, sauf dans lecas d’un bouton avec action “popup” qui ajoute un niveau supérieur.

Ex : Notes_Techniques:Le_Mois:La_Note:Le contenu de la noteProduits:Gamme_Produit:Un_Produit:Contenu du dossierNotes_Techniques\Le_Mois\La_Note\Le contenu de la noteProduits\Gamme_Produit\Un_Produit\Contenu du dossier

Ex 2 : Archives:1997:NFR1997_Janvier:La_Note:Le_contenu_du_dossierArchives\1997\NFR1997_Janvier\La_Note\Le_contenu_du_dossier

Utilisation

4 / 30

Page 5: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

L’application travaille en deux Modes :

Nous avons un test “sur ouverture”qui nous permet de savoir si nous travaillons sur un CD réel ou sur unprojet : Méthode DIR_F_Islock.Si nous ne sommes pas en mode verrouillé (CD), nous aurons accès à la barre de menus et à l’item “Tableaude bord” : mode “Génération”. Sinon nous sommes sur un CD en mode “Client”.

En mode “Client”, nous ne pouvons exécuter que ce qui a été défini dans le mode “Génération”.

Mode “Génération”

Sélectionnez l’item “Tableau de bord” dans le menu Fichier :

Ce formulaire est piloté par un onglet qui vous proposera trois pages de réglages.

Structure du CD

Nous disposons de 9 boutons de pilotage paramétrables. Pour chaque bouton, nous aurons la possibilité de :

- le rendre visible ou non (boîte à cocher). - définir son libellé- localiser le dossier ou fichier associé. Les deux options sont gérées par un popup se situant sur l’icône :

5 / 30

Page 6: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

- son type d’action : voir le paragraphe précédent.- la longueur de racine à supprimer pour l’affichage

Exemple : les notes techniques pour une visualisation chronologique, sont préfixées de cette manière“NFR2001_Janvier“ ou “2001_12_TheNote“.À l’affichage dans les listes hiérarchiques, avouez que cela ferait désordre. D’où ce paramètre qui supprimerales “n” caractères en début du nom du fichier ou dossier.

Actualités

Ici nous réglerons le fonctionnement de la page 1 (page d’accueil). À noter que ce bouton (10) est toujoursprésent dans l’autorun.

- Boîte à cocher “Actualités” : si cette option est décochée, les boutons définis ne seront pas gérés, maisremplacés par une image (si vous en avez décidé ainsi).

- Le titre du bouton (as you like)

- Le nombre de boutons. Ici nous travaillons dans une table dans un but didactique (nous aurions pu tout

6 / 30

Page 7: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

enregistrer dans le blob de préférences). Nous allons gérer l’activation/inactivation d’une liste hiérarchiquesuivant la sélection ou non d’un enregistrement inclus.Cet entier long ajoute ou supprime les enregistrements de la table [Actualités].

- Liste Hiérarchique déroulante pour fixer le type d’action (les mêmes que précédemment).

L’astuce que nous utilisons depuis toujours : associer par le même nom de variable, un bouton avec actionpré-définie du type “Supprimer sous_enregistrement “avec un autre objet (ceci nous permettantd’activer/inactiver automatiquement ces objets suivant la sélection de l’utilisateur).Une petite nuance : ce bouton devra OBLIGATOIREMENT être en dehors du formulaire. En effet, dans lecas d’une association avec une liste hiérarchique, le fait de cliquer sur ce bouton détruira évidemment la listehiérarchique, car nous ne nous adressons pas au même type d’objet.

- deux boutons pour définir le dossier ou fichier associé.

Interface :

Dans cette page, nous allons définir toute l’interface de l’autorun :

- le fond global 710 x 480 pixels- le fond des dialogues 350 x 175 pixels- l’image de remplacement si nous n’avons pas d’actualité en page 1- le bandeau 370 x 40 (déplacer fenêtre)- le logo 120 x 120- les 4 états des boutons de la page de navigation 150 x 30

7 / 30

Page 8: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

- les 4 états des boutons des dialogues 120 x 30- les 3 états des boutons “Liens” 215 x 30- les 3 états des boutons “Actualités” 320 x 40- les offsets de décalage du texte par rapport au dessin du bouton (ils peuvent être négatifs)- la couleur des textes statiques- la couleur de référence 4D Chart pour Windows- la couleur de référence 4D Chart pour Mac.( les meilleurs résultats ont été obtenus avec les valeurs 4 pour Windows et 255 pour Mac).

Note : les images collées seront retaillées suivant les dimensions indiquées (Fonction Pict_F_Scale, car ici lacommande 4D, CREER IMAGETTE n'est pas adaptée).

`Fonction Pict_F_Scale

`$1 expression image `$2 largeur désirée `$3 hauteur désirée `renvoi une image des dimensions passées en paramètres

C _ I M A G E($0;$1;$pict)C_ENTIER LONG($2;$3)C_REEL($coef)$0:=$1

`Vérification dimensions imageS i (Pict_DefSize ($1)) `echelle verticale Au cas ou : (◊Haut>$3) $coef:=$3/◊Haut ` : (◊Haut<$3) `$coef:=$3/◊Haut S i non $coef:=1 Fin de cas $pict:=$1*/($coef) $pict:=$pict*+($coef) `échelle horizontale Au cas ou : (◊Large>$2) $coef:=$2/◊Large `: (◊Large<$2) ` $coef:=$2/◊Large S i non $coef:=1 Fin de cas $pict:=$pict*+($coef) $pict:=$pict*/($coef) $0:=$pictFin de si

8 / 30

Page 9: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

`Pict_DefSize `calcule les dimensions de l'image `affectation dans large et haut `passée en $1 et renvoie vrai si non vide

C _ I M A G E($1)C_BOOLEEN($0)C_ENT IER($xx2;$xx;$xx1;◊Haut;◊Large)PROPRIETES IMAGE($1;◊Large;◊Haut;$xx;$xx1;$xx2)

$0:=(◊Haut+◊Large>0)

Dès les champs images renseignés, vous pouvez construire vos boutons, définis par les onglets précédents.Seuls les boutons “structurels“ seront construits. Les boutons de liens seront construits dynamiquement àl’utilisation.

Précision : pour optimiser la vitesse de chargement, et connaissant à l’avance la structure de notre CD, nousallons construire tous les boutons en mode “Génération“et les stocker dans la bibliothèque d’images.Dans le cas d’un dossier “Liens”, nous aurons l’obligation de construire nos boutons au vol, et de formaterceux -ci en utilisant une variable image calculée (nous ne pouvons écrire sur un CD).

Votre Autorun est prêt à graver : il ne vous reste qu’à alimenter les dossiers en supprimant ou ajoutant deséléments. Le seul cas à gérer à chaque publication en mode “génération“ sera la page “Actualités”.

Note : les boutons sont générés à loisir, mais vous pouvez, comme dans l’Autorun des notes techniques,décider de coller spécifiquement les vôtres, et de ne demander qu'à générer les boutons actualités (que vouspouvez aussi “Hard coder” en alimentant directement la bibliothèque d’images).

Fonctionnement interne

Tous nos paramètres (hormis les actualités) sont stockés dans un blob.

Nous les récupérons par la méthode AR_Blob2AR qui va renseigner principalement 5 tableaux :

AR_enable : bouton visible/invisibleAR_name : nom du boutonAR_path : dossier ou fichier associéAR_action : type de fonctionnementAR_Lenght : longueur de préfixe à supprimer

Nous récupérons au passage la couleur des textes statiques.

Méthode AR_Blob2Var :

9 / 30

Page 10: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

S i (Taille BLOB([Interface]Prefs)>0) $offset:=0 ◊NbActu:=BLOB vers entier long([Interface]Prefs;Ordre octets Macintosh ;$offset) BLOB VERS VARIABLE([Interface]Prefs;AR_enable;$offset) BLOB VERS VARIABLE([Interface]Prefs;AR_name;$offset) BLOB VERS VARIABLE([Interface]Prefs;AR_path;$offset) BLOB VERS VARIABLE([Interface]Prefs;AR_action;$offset) BLOB VERS VARIABLE([Interface]Prefs;AR_Lenght;$offset) S i ($1) popActu:=Charger l iste("Actions") ENUMERATION VERS TABLEAU("Open";$popOpen) Bouc le ($i;1;10) $ptr:=Pointeur vers("action"+Cha ine($i)) $ptr->:=Copier l iste(popActu) $ptr:=Pointeur vers("aPop"+Cha ine($i)) COPIER TABLEAU($popOpen;$Ptr->) $ptr:=Pointeur vers("enable"+Cha ine($i)) $ptr->:=AR_enable{$i} $ptr:=Pointeur vers("Title"+Cha ine($i)) $ptr->:=AR_Name{$i} $ptr:=Pointeur vers("Path"+Cha ine($i)) $ptr->:=AR_path{$i} $ptr:=Pointeur vers("Action"+Cha ine($i)) SELECTIONNER ELEMENT PAR REFERENCE($ptr->;AR_action{$i}) $ptr:=Pointeur vers("lenght"+Cha ine($i)) $ptr->:=AR_Lenght{$i} Fin de boucle Fin de si ◊TxtColor:=BLOB vers entier long([Interface]Prefs;Ordre octets Macintosh ;$offset) Offset1:=BLOB vers entier long([Interface]Prefs;Ordre octets Macintosh ;$offset) Offset2:=BLOB vers entier long([Interface]Prefs;Ordre octets Macintosh ;$offset) Offset3:=BLOB vers entier long([Interface]Prefs;Ordre octets Macintosh ;$offset) Offset4:=BLOB vers entier long([Interface]Prefs;Ordre octets Macintosh ;$offset) WinColor:=BLOB vers entier long([Interface]Prefs;Ordre octets Macintosh ;$offset) MacColor:=BLOB vers entier long([Interface]Prefs;Ordre octets Macintosh ;$offset) S i non ◊NbActu:=0

Fin de si

A l’intérieur d’une boucle, nous allons définir (si le bouton est paramétré visible) s’il doit être activé ou nonsuivant que son dossier associé contienne au moins un élément ou que son fichier associé existe : méthodeAR_InitPaths.

Méthode AR_InitPaths :

◊DisquePrincipal:=DIR_F_VolName (Dossier systeme)◊InstallPath:=◊DisquePrincipal+"4D NT"+◊Separateur

Au cas ou

10 / 30

Page 11: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

: (Type application=4D Engine ) $Fichier:=Fichier applicationS i non $Fichier:=Fichier structureFin de cas

◊VolumeCd:=DIR_F_VolName ($Fichier)

Bouc le ($i;1;9) $folder:=◊VolumeCd+AR_Path{$i} ptrButton:=Pointeur vers("Button"+Cha ine($i)) S i (AR_enable{$i}=1) CHOIX VISIBLE(ptrButton->;V r a i) Au cas ou : (AR_Action{$i}>3) & (AR_Action{$i}<10) DIR_FolderAsContent ($folder;ptrButton) : (AR_Action{$i}=1) `on fait confiance pour l'URL : (AR_Action{$i}=2) | (AR_Action{$i}=3) `document ou page HTML DIR_F_FileExist ($folder;ptrButton) S i non `méthodes propriétaires `les boutons sont actifs Fin de cas S i non CHOIX VISIBLE(ptrButton->;F a u x) Fin de si Fin de boucle

`spécificité AP_SubLaunch Windows◊Reader:=◊VolumeCd+"\Outils\Acrobat\Reader\AcroRd32.exe"◊Word:="WINWORD.EXE"

`ActualitésCHOIX VISIBLE(*;"Pict_Actu";F a u x)S i (AR_enable{10}=1) & (◊NbActu>0) AR_ActuScan S i non CHOIX VISIBLE(*;"bActu@";F a u x) C _ I M A G E($pict) LIRE IMAGE DANS BIBLIOTHEQUE(22;$pict) S i (Taille image($pict)>0) CHOIX VISIBLE(*;"Pict_Actu";V r a i) Fin de si

Fin de si

Nous ferons de même pour les boutons actualités (s’ils doivent exister) avec la méthode AR_ActuScan.

Méthode AR_ActuScan :

LECTURE SEULEMENT([Actualités])TOUT SELECTIONNER([Actualités])$nf:=Enregistrements trouves([Actualités])

11 / 30

Page 12: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

SELECTION VERS TABLEAU([Actualités]ACTU_Type;◊ActuType;[Actualités]ACTU_Commande;◊ActuCommande;[Actualités]ACTU_Name;◊ActuName)TRIER TABLEAU(◊ActuType;◊ActuName;◊ActuCommande;>)

S i (◊Win) $color:=4S i non $color:=255Fin de si

Bouc le ($i;1;$nf) S i (◊Win) ◊ActuCommande{$i}:=Remplacer chaine(◊ActuCommande{$i};":";"\") S i non ◊ActuCommande{$i}:=Remplacer chaine(◊ActuCommande{$i};"\";":") Fin de si CHOIX VISIBLE(*;"bActu"+Cha ine($i);V r a i)Fin de boucle

`boutons actualités$nf:=Taille tableau(◊ActuName)S i ($nf>0) ACTIVER BOUTON(Button10)S i non INACTIVER BOUTON(Button10)Fin de si

`inactivation des boutons inutilesBouc le ($i;$nf+1;5) CHOIX VISIBLE(*;"bActu"+Cha ine($i);F a u x)

Fin de boucle

Attention : ne paramétrez pas un bouton sans lui associer un chemin d’accès de dossier ou fichier, car lescommandes LISTE DES DOSSIERS et LISTE DES DOCUMENTS utilisées avec un chemin d’accès vide(“”) remplissent quand même leurs fonctions en prenant comme chemin d’accès le dernier chemin utilisé par4D ou le système !

Les boutons de navigation sont gérés par la méthode AR_ButtonMgr.Cette méthode nous aiguillera vers te type d’action prédéfinie : en résolvant le pointeur passé en paramètre :

Méthode AR_ButtonMgr :

`AR_ButtonMgr `gestion des boutons de navigation

C_PO INTEUR($1)RESOUDRE POINTEUR($1;$But;$Tab l e;$Field)$indice:=Num($but)$action:=AR_action{$indice}

`mise à jour états boutonsACTIVER BOUTON(oldPtr->)

12 / 30

Page 13: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

olpPtr->:=0

oldPtr:=$1

CHOIX VISIBLE(◊Classe;F a u x)CHOIX VISIBLE(*;"Logo@";V r a i)

Au cas ou : ($Action=1) `URL AR_Web (AR_Path{$indice};F a u x) : ($Action=2) `page HTML à ouvrir AR_Web (AR_Path{$indice};V r a i) : ($Action=3) `Document S i (F a u x) `(◊Win) `ancienne méthode $sufx:=DIR_F_GetSuffix (AR_Path{$indice}) S i ($sufx="pdf") AR_LaunchOld (◊Reader+" "+Ca r a c t e r e(Guillemets)+◊VolumeCd+AR_Path{$indice}+Ca r a c t e r e(Guillemets )+" ") S i non AR_LaunchOld (◊Word+" "+Ca r a c t e r e(Guillemets)+◊VolumeCd+AR_Path{$indice}+Ca r a c t e r e(Guillemets )+" ") Fin de si `fin ancienne méthode S i non AR_Launch (◊VolumeCd+AR_Path{$indice}) Fin de si : ($Action=4) `Dossier à consulter/installer AR_InitVars aLenght:=AR_Lenght{$indice} AR_Init_Folder (◊VolumeCd+AR_Path{$Indice};aLenght;AR_Name{$indice}) INACTIVER BOUTON($1->) ALLER A PAGE(2) : ($Action=5) `dossiers avec Popup "Classes" AR_InitVars CHOIX VISIBLE(◊Classe;V r a i) ◊FolderPop:=◊VolumeCd+AR_Path{$indice} LISTE DES DOSSIERS(◊FolderPop;◊Classe) TRIER TABLEAU(◊Classe;<) ◊Classe:=1 aLenght:=AR_Lenght{$indice} AR_Init_Folder (◊FolderPop+◊Classe{◊Classe}+◊Separateur;aLenght;◊Classe{◊Classe}) INACTIVER BOUTON($1->) ALLER A PAGE(2) : ($Action=6) `dossier de liens AR_LinkScan (◊VolumeCd+AR_Path{$Indice};$Indice)

13 / 30

Page 14: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

INACTIVER BOUTON($1->) ALLER A PAGE(3) S i non `méthodes propriétaires Au cas ou : ($Action=11) Autorun_1 `search Write : ($Action=12) Autorun_2 `explore CD

`...............etc

Fin de cas

Fin de cas

Nous allons détailler les cas de figure et leurs spécificités :

Action 1 AR_WEB (1) :Nous passons simplement l’URL à la commande OUVRIR URL WEB

Action 2 AR_WEB(2) : Ici nous travaillons avec des fichiers HTML locaux et nous passerons une chaîne de ce type: File:///Volume/Dossier/Fichier.htm

Méthode AR_WEB :

C_TEXTE($1)C_BOOLEEN($2) `local ou URL

S i ($2) $1:="File:///"+Sous chaine(◊VolumeCd;1;Longueur(◊VolumeCd)-1)+$1 S i (◊Win) $1:=Remplacer chaine($1;"/";"\") $1:=Sous chaine($1;2) Fin de si Fin de si

OUVRIR URL WEB($1;*)

Action 3 AR_Launch :

Deux cas de figure suivant la plate-forme (voir à ce sujet les notes 2001_ 12 et 2001_16)

Sous MacOS :Nous utiliserons la commande du 4D-Pack : AP Sublaunch, en passant le nom du document en paramètre.Le système se charge du reste.

Sous Windows :

14 / 30

Page 15: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

Avant cette note l’autorun utilisait aussi le 4D-PACK et l'AP Sublaunch. Avec cette différence qu’il nousfallait obligatoirement connaître le chemin de l’application ayant servi à générer le document à ouvrir.Dans le meilleur des cas (si le chemin d’accès à l’application ne comporte aucun espace, nous obtiendrons lerésultat escompté).

Maintenant nous utilisons LaunchFic qui résout à partir du registry manager l'application à lancer suivant letype du document.

Méthode AR_LaunchOld :

`ouverture d'un documentC_TEXTE($1)C_ENTIER LONG($Error)

$Error:=AP_SubLaunch ($1;1)S i ($Error#0) $question:="Impossible de trouver l'application pouvant ouvrir ce document."+Ca r a c t e r e(13)+"Cliquezsur OK pour localiser : "+◊Word S i (F_Confirmer ($question;F a u x)) ASSOCIER TYPES FICHIER("APPL";"EXE";"Fichier éxécutable") $refdoc:=Ouvrir document("";"APPL";Lire chemin accès ) S i (OK#0) $1:=Remplacer chaine($1;◊Word;Document) $Error:=AP_SubLaunch ($1;1) ◊Word:=Document Fin de si Fin de si

Fin de si

Méthode AR_Launch :

`ouverture d'un documentC_TEXTE($1)C_ENTIER LONG($Error)

S i (◊Win) $Error:=LaunchFic ($1;2)S i non $Error:=AP_Sublaunch ($1;1)

Fin de si

Actions 4 et 5 AR_Init_Folder :

Ces deux modes auxquels est associée une méthode AR_Init_Folder fonctionnent de la même manière. Laméthode se charge d'analyser le contenu d'un dossier et de renvoyer le résultat dans une liste hiérarchique. Lesdossiers/fichiers pourront à loisir être installés ou consultés.

- Pour la consultation, nous ferons encore appel à la méthode AR-Launch.

15 / 30

Page 16: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

- Pour l’installation, la méthode AR_Install sera utilisée.

Méthode AR_Init_Folder :

C_TEXTE($1) `chemin dossierC_ENTIER LONG($2) `préfixe à supprimerC_TEXTE($3)vFirstTitle:=$3LocalPath:=$1AR_Scan_Folder ($1;$2;->FirstPaths;->tFirstListe)AR_Scan_Docs ($1;$2;->FirstPaths;->tFirstListe)◊H_Year:=F_FillList (->tFirstListe;16000)

◊Target:=->◊H_Year

Méthode AR_Install :

$p:=Element selectionne($1->) `whereAu cas ou : ($1=(->◊H_Year)) $source:=LocalPath+FirstPaths{YearSelect} $target:=◊InstallPath+FirstPaths{$p} $name:=tFirstListe{$p} : ($1=(->◊H_Mois)) $source:=LocalPath+FirstPaths{YearSelect}+◊Separateur+SecondPaths{MonthSelect} $target:=◊InstallPath+SecondPaths{$p} $name:=tSecondListe{$p} : ($1=(->◊H_NT))

$source:=LocalPath+FirstPaths{YearSelect}+◊Separateur+SecondPaths{MonthSelect}+◊separateur+ThirdPaths{$p} $target:=◊InstallPath+ThirdPaths{$p} $name:=tThirdListe{$p}Fin de cas

S i (Pos i t i on(".";$source)>0) `document S i (F_Confirmer ("Désirez-vous installer l'élément “"+$name+"” dans "+◊InstallPath+" ?";F a u x)) S i (DIR_F_FolderExist (◊InstallPath;V r a i)) COPIER DOCUMENT($source;$target;*) Fin de si Fin de si S i non S i (F_Confirmer ("Désirez-vous installer le contenu du dossier “"+$name+"” dans "+◊InstallPath+"

?" ;F a u x)) S i (DIR_F_FolderExist (◊InstallPath;V r a i)) DIR_MoveFolder ($Source;$target) Fin de si Fin de si

Fin de si

16 / 30

Page 17: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

Action 6 AR_LinkScan :

Ici, nous allons analyser le répertoire contenant les URL, et pour chacun de ces liens, construiredynamiquement un bouton à 3 états (l'inactivation n'étant pas de mise). Pour ceci, nous utiliserons 4D_Chartdans la fonction F_SetButton.

C _ I M A G E($pict)

C_TEXTE($1)C_ENTIER LONG($2)PrefParam:=$2

TABLEAU TEXTE(◊LinkNames;0)

S i (DIR_F_FolderExist ($1;F a u x)) LISTE DES DOCUMENTS($1;◊LinkNames) $p:=Chercher dans tableau(◊LinkNames;"@icon@") S i ($p>0) SUPPRIMER LIGNES(◊LinkNames;$p;1) Fin de si Fin de si

S i (◊Win) $color:=WinColorS i non $color:=MacColorFin de si

$nf:=Taille tableau(◊LinkNames)

Bouc le ($i;1;$nf) $Ptr:=Pointeur vers("pLink"+Cha ine($i)) $pict:=F_Set_Button (◊LinkNames{$i};30;3;$color;18;Offset3) $ptr->: =$pictFin de boucle

S i (F a u x) Bouc le ($i;1;$nf) $format:="1;3;pLink"+Cha ine($i)+";48" CHOIX FORMATAGE(*;"link"+Cha ine($i);$format) Fin de boucle Fin de si

`inactivation des boutons inutilesBouc le ($i;$nf+1;10) CHOIX VISIBLE(*;"Link"+Cha ine($i);F a u x)

Fin de boucle

Méthode F_SetButton

C_TEXTE($1) `libellé boutonC_ENTIER LONG($2) `image bibliotheque

17 / 30

Page 18: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

C_ENTIER LONG($3) `nombreC_ENTIER LONG($4) `couleurC_ENTIER LONG($5) `tailleC_ENTIER LONG($6) `offset du texteC _ I M A G E($0)

LIRE IMAGE DANS BIBLIOTHEQUE($2;$Button1)$ok:=Pict_DefSize ($Button1)$haut:=◊Haut$Large:=◊Large

$Ref_Zone:=ch_Hors ecran

S i (◊Win) $Police:=ch_Numero de police ("Arial")S i non $Police:=ch_Numero de police ("Helvetica")Fin de si

`texte bouton $Element_Tx:=ch_Creer texte ($Ref_Zone;1;1;$Large-20;$haut;$1)ch_FIXER TEXTE ($Ref_Zone;$Element_Tx;$Police;$5;1;ch_Index vers couleur ($4);1)$Image_Tx:=ch_Zone vers image ($Ref_Zone;$Element_Tx)$color:=ch_Index vers couleur (0)ch_FIXER TEXTE ($Ref_Zone;$Element_Tx;$Police;$5;1;$color;1)$Image_Tx2:=ch_Zone vers image ($Ref_Zone;$Element_Tx)C _ I M A G E($Button2;$Button3;$Button1;$0)ch_DETRUIRE HORS ECRAN ($Ref_Zone)

`taille texte$ok:=Pict_DefSize ($Image_Tx)

`centrage horizontal$OffsetLarge:=(($Large-◊Large)\2)+$6$Image_Tx:=$Image_Tx+$offsetLarge$Image_Tx2:=$Image_Tx2+$offsetLarge `centrage vertical$OffsetHaut:=($Haut-◊Haut)\2$Image_Tx:=$Image_Tx/$offsetHaut$Image_Tx2:=$Image_Tx2/$offsetHaut

`calcul du bouton actif$Button1:=$Button1 | $Image_Tx2$Button1:=$Button1 & $Image_Tx `calcul du bouton cliquéLIRE IMAGE DANS BIBLIOTHEQUE($2+1;$Button2)$Button2:=$Button2 | $Image_Tx2 `calcul du bouton rollOverLIRE IMAGE DANS BIBLIOTHEQUE($2+2;$Button3)$Button3:=$Button3 | $Image_Tx2$Button3:=$Button3 & $Image_Tx

$0:=$Button1/$Button2$0:=$0/$Button3

S i ($3=4) `calcul du bouton inactivé LIRE IMAGE DANS BIBLIOTHEQUE($2+3;$Button4)

18 / 30

Page 19: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

$Button4:=$Button4 | $Image_Tx2 $Button4:=$Button4 & $Image_Tx $0:=$0/$Button4

Fin de si

19 / 30

Page 20: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

Méthodes propriétaires :

Autorun_1 :

Cette méthode nous permet d'exécuter une recherche dans le contenu des Champs 4D_Write, et de nousprésenter les notes techniques correspondant au critère demandé.

`chercher dans les notes

SUPPRIMER MESSAGESLECTURE SEULEMENT([Notes])TOUT SELECTIONNER([Notes])$nf:=Enregistrements trouves([Notes])

ENSEMBLE VIDE([Notes];"ToUse")CHOIX VISIBLE(*;"notes";F a u x)◊ToFind:=""◊Fiches:=$nf◊Search:=-1◊Scan:=Nouveau process("WR_Search";128000;"Search")

Repete r ENDORMIR PROCESS(Numero du process courant;5)Jusque (◊Search>=0)

S i (◊ToFind#"") & (◊Search=1) DEBUT SELECTION([Notes]) Bouc le ($i;1;$nf) S i (◊Search=1) `Stopped ◊Thermo:=$i APPELER PROCESS(-1) S i (WR Chercher direct ([Notes]NT_WR_Note_;◊ToFind;◊Wording;◊Capitals)>0) ADJOINDRE ELEMENT([Notes];"ToUse") Fin de si ENREGISTREMENT SUIVANT([Notes]) S i non `user break $i:=$nf vResult:="" Fin de si Fin de boucle $nf:=Enregistrements dans ensemble("ToUse") S i ($nf>0) vResult:="Résultat de la recherche : "+Cha ine($nf)+" Note(s) Technique(s)" S i non vResult:="La recherche avec la Cha ine “"+◊ToFind+"” n'a pas aboutie... " Fin de si S i non vResult:=""Fin de si

◊ M E S S A G E:="Quit"APPELER PROCESS(◊Scan)

20 / 30

Page 21: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

S i (◊Search=1) $nf:=Enregistrements dans ensemble("ToUse") S i ($nf>0) UTILISER ENSEMBLE("ToUse") EFFACER ENSEMBLE("ToUse") S i non TOUT SELECTIONNER([Notes]) Fin de si T R I E R([Notes];[Notes]NT_Year;[Notes]NT_Number;>) CHOIX VISIBLE(*;"notes";V r a i) ACTIVER BOUTON(bWrite) CHOIX VISIBLE(*;"Logo@";F a u x) ALLER A PAGE(4)S i non INACTIVER BOUTON(bWrite)

Fin de si

Autorun_2 :

Cette méthodeest chargée de lancer un AppleScript sous MacOS et l'Explorateur sous Windows. Nousutilisons encore AR_Launch :

`explorer le CD

S i (◊Win) AR_Launch ("Explorer "+◊VolumeCd)S i non AR_Launch (◊VolumeCd+"Outils:OpenCD")

Fin de si

Code de l'AppleScript :

tell application "Finder"activateselect disk "4D_DevNet_2001_T2"open selection

end tell

Mode "Client"

Autorun avec le paramètre “Actualités” décoché :

21 / 30

Page 22: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

Autorun avec le paramètre “Actualités” coché et champs renseignés :

22 / 30

Page 23: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

Dossier de liens :

23 / 30

Page 24: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

Dossier à installer/consulter :

24 / 30

Page 25: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

Dossier avec Popup :

25 / 30

Page 26: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

Résultat d'une recherche :

26 / 30

Page 27: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

27 / 30

Page 28: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

Annexe Méthodes

Méthode DIR_MoveFolder

`$1 source folder sans séparateur de fin `$2 target folder sans séparateur de finC_TEXTE($1;$2)C_BOOLEEN($0)$0:=FauxSi (DIR_F_FolderExist ($2;Vrai)) DIR_MoveDoc ($1;$2;Faux) LISTE DES DOSSIERS($1;$folder) Si (DIR_F_FolderExist ($2;Vrai)) Boucle ($j;1;Taille tableau($folder)) $path:=$1+◊Separateur+$folder{$j} $target:=$2+◊Separateur+$folder{$j} DIR_MoveFolder ($path;$target) Fin de boucle Fin de si S inon ◊STOP :=Vra iFin de si

Méthode DIR_MoveDoc

C_TEXTE($1;$2)C_BOOLEEN($3)LISTE DES DOCUMENTS($1;$array)Si (DIR_F_FolderExist ($2;Vrai)) Si (Taille tableau($Array)>0) Boucle ($j;1;Taille tableau($Array)) $path:=$1+◊Separateur+$array{$j} $target:=$2+◊Separateur+$array{$j} ◊NomElement:=$array{$j} APPELER PROCESS(-1) Si ($3) DEPLACER DOCUMENT($path;$target) Sinon COPIER DOCUMENT($path;$target;*) Fin de si Fin de boucle Fin de si

Fin de si

Méthode AR_ScanFolder

C_TEXTE($1) `full pathC_ENTIER LONG($2) `prefixe à supprimer

TABLEAU TEXTE($Folders;0)

28 / 30

Page 29: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

LISTE DES DOSSIERS($1;$3->)

$t:=Taille tableau($3->)COPIER TABLEAU($3->;$4->)

Si ($2>0) `suppression indications notes tech `en entete de fichier / dossier Boucle ($i;1;$t) $4->{$i}:=Sous chaine($4->{$i};$2+1) Fin de boucle

Fin de si

Méthode AR_ScanDocs

C_TEXTE($1) `pathC_ENTIER LONG($2) `prefixe à supprimerC_POINTEUR($3;$4) `tableaux

LISTE DES DOCUMENTS($1;$docs)

$t:=Taille tableau($docs)

INSERER LIGNES($3->;0;$t)INSERER LIGNES($4->;0;$t)

Boucle ($i;1;$t) Si ($2>0) `suppression prefixe $4->{$i}:=Sous chaine($docs{$i};$2+1) Sinon $4->{$i}:=$docs{$i} Fin de si $3->{$i}:=$docs{$i}Fin de boucle `suppression fichiers "icon" sousMacOS

DIR_KillIcon ($3;$4)

Graver un CD_Rom se lançant à l’introduction de celui-ci

Sous Windows :

Nous devons créer et paramétrer un fichier obligatoire pour l’autoExec.

Ce fichier devra se nommer AUTORUN.INF et se situer au premier niveau de la hiérarchie du projet deCD_Rom.

29 / 30

Page 30: Autorun Notes Techniques Résumé - United Statesdownload.4d.com/.../NT/2001/200104-12-Autorun.pdfEx : Autorun_1, cette méthode est associée au bouton “Chercher” dans le CD des

Nous devrons définir les paramètres suivants :

Une section -> [autorun]

Et un ou deux paramètres (dans notre exemple).

l’action -> OPENOPEN = MonBelApplicatif.exe où “MonBelApplicatif.exe” `définit le chemin d’accès de l’exécutable à lancer.

définition d’une icône pour le CD -> ICON

ICON= MonBelIcone.ico où “MonBelIcone.ico” `définit le chemin d’accès du fichier contenantl’icône à afficher sur le bureau de l’utilisateur.

Ce qui nous donnera pour le CD des notes techniques :[autorun]OPEN=AUTORUN.EXEICON=AUTORUN.ICO

Nous pourrions avoir ce type de paramétrage :

[autorun]OPEN=MONDOSSIER\AUTORUN.EXEICON=MONDOSSIER_2\AUTORUN.ICO

Note : se référer à la documentation Microsoft® sur les commandes et syntaxes du fichier “Autorun.inf”.

Sous MacOS :

Presque aucun problème : vous n’avez qu’à définir par un dialogue d’ouverture de fichier, l’application àlancer au démarrage.

L’icône du CD sera celle de votre volume ou du dossier source.

Note : le nom du fichier ne pourra excéder un nombre de caractères (suivant les logiciels de gravure).

30 / 30