Obligement - L'Amiga au maximum

Dimanche 25 juin 2017 - 19:12  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

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


Trucs et astuces

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


Glossaire

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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


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é)

Do "ChargerGenre"

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).

GotoCard "Principale"

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.


[Retour en haut] / [Retour aux articles] [Article précédent] / [Article suivant]