Suivez-nous sur X

|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
En pratique : CanDo - création d'une application multimédia (troisième partie)
(Article écrit par Guy Beteille et extrait d'Amiga News - janvier 1993)
|
|
Voici l'ensemble des scripts et routines de l'application. Les commentaires devraient vous permettre de
vous y retrouver, reportez-vous aussi aux deux articles précédents si besoin.
Cartes et objets
Carte "Principale"
Script BeforeAttachment (exécuté avant que ne s'affiche la carte).
If Passage = 0 ; cette variable autorise une seule exécution du script
Dos "Assign Discothèque: "||Char(34)||TheCurrenDirectory||Chart(34)
EndIf
|
Script AfterAttachment (exécuté dès que s'affiche la carte).
ScreenTitleBar ON ; barre titre de l'écran visible
SetScreenTitle "Discothèque" ; titre de l'écran
SetPrintFont "topaz".8
SetPrintStyle PLAIN ,2,3
SetPen 7,0
SetDrawMode JAM1
PrintText "GENRES",10,12 ; afficher du texte
PrintText "TITRES",12,105
If Passage = 0 ; cette variable permet d'exécuter qu'une seule fois
; certaines instructions qui ne doivent pas être prises en
; compte lorsque le script est exécuté suite à un retour
; de la carte de visualisation
Let Passage = 1 ; Passage change de valeur
Do "ChargerGenre" ; l'application démarre, le premier titre
; premier genre est sélectionné
Else ; sinon, c'est n'est pas la première
; exécution du script
Do "AfficherTitre" ; réafficher le titre sélectionné
Endlf
|
Objet liste "Document.1" (qui affiche le document "Discothèque:GENRES.Txt")
Script OnClick (exécuté)
Script OnDrag (exécuté lorsqu'on déplace la souris, bouton de gauche enfoncé)
FastFeedBack on ; pour accélérer le suivi de la souris
Do "ChargerGenre"
|
Bouton "VoirBtn"
Script OnRelease (exécuté lorsqu'on relâche le bouton de la souris).
Let Son = Off ; mettre variable Son sur "Off" pour
; interdire l'écoute du son lors de
; l'affichage de l'image
GotoCard "Visualisation" ; changer de carte pour voir l'image
|
Bouton "EcouterBtn"
Script OnRelease (exécuté lorsqu'on relâche le bouton de la souris).
Do "Ecouter" ; jouer le son
|
Bouton "Voir.Ecouter"
Script OnRelease (exécuté lorsqu'on lâche le bouton de la souris).
Let Son = On ; mettre la variable Son sur "On" pour
; autoriser l'écoute du son lors de
; l'affichage de l'image
GotoCard "Visualisation" ; changer de carte pour voir l'image
|
Objet liste "Document.2" (qui affiche le document "TITRES")
Script OnClick
Do "AfficherTitre" ; afficher le titre cliquer dans la liste
|
Script OnDrag (exécuté)
Do "AfficherTitre" ; afficher le titre de la liste qui se trouve
; sous le pointeur de la souris
|
Bouton "Suivant.Btn" (pour passer au titre suivant).
Script OnRelease (exécuté lorsqu'on relâche le bouton de la souris).
WorkWithDocument "TITRES" ; on utilise le document "Titres"
If TheLineNumber < LinesInDocument ; on n'est pas sur la dernière ligne
MoveCursor DOWN ; descendre d'une ligne
Else ; on est sur la dernière ligne
MoveCursorTo STARTOF DOCUMENT ; aller sur la première ligne
EndIf
Do "AfficherTitre"
|
Bouton "Précédent.Btn" (pour passer au titre précédent).
Script OnRelease (exécuté lorsqu'on relâche le bouton de la souris).
WorkWithDocument "TITRES" ; on utilise le document "Titres"
If TheLineNumber = 1 ; on est sur première ligne
MoveCursorTo ENDOF DOCUMENT ; aller sur la dernière ligne
Else
MoveCursor UP ; remonter d'une ligne
EndIf
Do "AfficherTitre"
|
Carte "Visualisation"
Script AfterAttachmentCarte (exécuté dès que s'affiche la carte).
Do "Voir" ; afficher l'image
If Son ; l'état de cette variable détermine
; si le son est joué ou non
Do "Ecouter" ; jouer le son, si Son est sur "On"
EndIf
|
Bouton "Retour" (bouton invisible qui recouvre l'écran et permet de cesser la visualisation).
Script OnRelease (exécuté lorsqu'on relâche le bouton de la souris).
Objet Bouton de droite de la souris.
Script OnRelease (exécuté lorsqu'on relâche le bouton de droite).
Do "Ecouter" ; rejouer le son
|
Les routines
Routine "ChargerGenre"
SetAutoFileRequester Off
WorkWithDocument "TITRES" ; on utilise le document "Titres"
Clear DOCUMENT ; il est effacé
WorkWithDocument "Caché" ; on utilise le document "Caché"
Clear DOCUMENT ; il est effacé
WorkWithDocument "Discothèque:GENRES.txt" ; on utilise le document "Discothèque:GENRES.txt"
LoadDocument TheLine||",liste","Caché" ; charger le fichier
; "genre.liste" dans le document "Caché", le
; genre correspond à la ligne cliquée dans la
; liste des genres, on y ajoute ".liste"
IfError ; il y a eu un problème, donc on considère qu'il
; n'y a aucun titre pour ce genre
Do "AfficherTitre" ; affichage (Aucun titre!)
ExitScript ; la routine est interrompue
Endlf
WorkWithDocument "Caché" ; retour au document "Caché"
MoveCursorTo STARTOF DOCUMENT ; curseur au début du document
; mettre une ligne vide pour éviter que
SplitLine ; SearchFor n'ignore la première ligne
MoveCursorTo STARTOF DOCUMENT ; curseur au début du document
SearchFor "DEBBUT*",NOCASE ; on recherche toutes les lignes ayant "DEBUT*"
White SearchFound ; tant qu'on trouve on boucle
Let T = GetWord(TheLine,2,"*") ; mettre le titre dans la variable T,
; soit le deuxième mot de la ligne,
; * séparant les mots
WorkWithDocument "TITRES ; on utilise le document "Titres"
Type T,NEWLINE ; insérer le titre dans la liste
WorkWithDocument "Caché" ; retour au document "Cache"
SearchFor "DEBUT*".NOCASE ; chercher encore
EndLoop ; fin de boucle
WorkWithDocument "TITRES" ; retour au document "Titres"
If TheLine = "" ; effacer dernière ligne si elle est vide
Delete CHARACTER ,-1
EndIf
MoveCursorTo STARTOF DOCUMENT
RefreshObject "Document.2" ; rafraîchir l'affichage de l'objet
Do "AfficherTitre"
|
Routine "AfficherTitre"
WorkWithDocument "Titres" ; on utilise le document "Titres"
Let TitreCherché = TheLine ; mettre le titre (la ligne entière)
; dans la variable TitreCherché
WorkWithDocument "Comment" ; on utilise le document "Comment"
Clear DOCUMENT ; pour effacer les commentaires
WorkWithDocument "Caché" ; retour au document Caché
MoveCursorTo STARTOF DOCUMENT ; curseur au début du document
Nop ; chercher la marque du début du
; titre (soit DEBUT*TitreCherché)
SearchFor "DEBUT*" ||TitreCherché,NOCASE
If SearchFound ; trouvé !
Let TitreActuel = TitreCherché ; on met à jour la variable "TitreActuel"
MoveCursor DOWN ; descendre d'une ligne dans le
; document pour mettre le nom
Let Image = TheLine ; de l'image (la ligne entière)
; dans la variable "Image"
MoveCursor DOWN ; descendre d'une ligne dans
; le document pour mettre le nom
Let LeSon = TheLine ; du son (la ligne entière) dans
; la variable "LeSon" descendre
MoveCursor DOWN ; d'une ligne dans le document
; le nombre pour saisir de ligne
; qui compose le commentaire
Let LigneDébut = TheLineNumber ; mettre le numéro de ligne dans
; la variable "LigneDébut"
Nop ; chercher la fin du titre
SearchFor "FIN*",NOCASE
If SearchFound ; fin du titre trouvée !
Let LigneFin = TheLineNumber ; mettre le numéro de ligne dans
; la variable "LigneFin"
WorkWithDocument "Comment" ; on utilise le document "Comment"
; pour y insérer le texte de commentaire
; contenu dans le document "Caché" et dont
; les variables "LigneDebut", "LigneFin"
; nous donnent le nombre de lignes à insérer
InsertDocument "Caché",LigneDébut,LigneFin-LigneDébut
EndIf
Else ; le titre n'existe pas ! (erreur dans le fichier ?)
Let TitreActuel = "Aucun titre!"
EndIf
SetPen 7,0
SetDrawMode JAM2
PrintText "Titre:",279,24
SetPen 3,0
PrintText LeftJustify(TitreActuel,60),343,24
|
Routine "Ecouter"
PlaySound LeSon.QUEUEPREVIOUS ; jouer le son en attendant la fin du précédent
IfError ; continuer si une erreur empêche de jouer le son
EndIf
|
Routine "Voir"
LoadPicture Image,"ImageBuffer" ; charger l'image dans "ImageBuffer"
IfError ; si c'est impossible on affiche un message
PrintText "Impossible de visualiser",10,30
PrintText image,10,60
PrintText "Cliquez SVP...",10,90
Else ; sinon tout s'est bien passé
; on montre l'image
ShowPicture "ImageBuffer"
EndIf
ScreenTo FRONT ; remettre l'écran au premier plan
|
Le mois prochain nous verrons comment transformer cette application
pour qu'elle s'occupe aussi de l'édition.
|