Obligement - L'Amiga au maximum

Vendredi 06 juin 2025 - 12:18  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

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

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des 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,
ALL


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


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


En pratique : CanDo - AppEvents et impression graphique
(Article écrit par Randy Finch et extrait du Randy Finch's Web Site - avril 1994)


En essayant de décider quel type de programme écrire pour le sujet de ce mois-ci, j'ai réalisé qu'il existe un programme dont j'ai besoin depuis un certain temps et qui serait parfait. Je peux utiliser ce programme chaque fois que j'écris un article pour cette série CanDo.

Je crée les figures pour mes articles en utilisant Deluxe Paint. Une fois que j'ai toutes les figures sur le disque, j'aime les regarder en mode diaporama pour vérifier les erreurs avant de les imprimer. Il s'agit d'un programme utilitaire Workbench personnalisé, et CanDo est à la hauteur de la tâche. Le programme s'intitule PrintPics.

La conception du programme

L'interface utilisateur de PrintPics est illustrée dans le coin supérieur gauche de la figure 1. Le programme permet de sélectionner plusieurs icônes représentant des fichiers graphiques IFF, comme ceux de la fenêtre CDoVHelm dans le coin inférieur droit de la figure 1, et de les faire glisser vers la fenêtre de l'interface.

CanDo
Figure 1 - Interface utilisateur pour le deck PrintPics

Les noms des fichiers sélectionnés sont alors affichés dans l'objet Liste. Le bouton "View" (vue) permet d'activer un diaporama des images. Le bouton "Print" (imprimer) permet d'imprimer les images sur l'imprimante sélectionnée dans les Préférences. Le bouton "Quit" (quitter) permet à l'utilisateur de quitter le programme. Enfin, le bouton long situé en bas de la fenêtre de l'interface exécute le programme PrinterGfx dans le répertoire Prefs (Figure 2). Cela permet à l'utilisateur de modifier rapidement les paramètres graphiques de l'imprimante avant d'imprimer les fichiers.

CanDo
Figure 2 - Après l'appel de PrinterGfx

PrintPics se compose de deux cartes. L'une est nommée "WBInterface". Il s'agit de l'interface utilisateur décrite ci-dessus. L'autre carte s'appelle "Picture" et est utilisée pour afficher les fichiers image lors de la visualisation ou de l'impression.

La carte d'interface utilisateur

La première chose à faire lors de la création du deck "PrintPics" est de changer le nom de la carte vide par défaut de CanDo en "WBInterface". Le type de fenêtre de cette carte doit ensuite être changé en Workbench. Pour ce faire, il suffit de faire apparaître la requête Fenêtre/Éditeur dans le panneau de configuration principal, comme le montre la figure 3.

CanDo
Figure 3 - La requête d'édition de fenêtres pour WBInterface

Il y a plusieurs choses à faire dans cette requête.
  1. Changez le titre en "View/Print Pictures".
  2. Dans la section intitulée "Ouvrir la fenêtre sur...", sélectionnez "l'écran du Workbench".
  3. Sélectionnez le bouton "Objet" dans la section "Attributs" et assurez-vous que les cinq objets sont cochés. Il s'agit du bouton de fermeture, du bouton de profondeur, de la barre coulissante, du bouton de taille et des bordures visibles.
  4. Sélectionnez le bouton "Available Modes" dans la section "Normal Window" et assurez-vous que le nombre de couleurs est défini sur un nombre inférieur ou égal au nombre de couleurs de votre écran Workbench. J'utilise un Workbench à quatre couleurs, c'est donc ce que j'ai sélectionné. Si le nombre de couleurs sélectionnées est supérieur à ce qui est disponible sur le Workbench, la fenêtre n'apparaîtra pas sur le Workbench, mais restera sur son propre écran personnalisé. La taille et la position de la fenêtre peuvent également être définies à ce stade ; toutefois, comme la fenêtre dispose d'une barre de déplacement et d'un bouton de dimensionnement, ces paramètres peuvent être définis en déplaçant et en dimensionnant la fenêtre sur le Workbench (la position peut être modifiée en mode "Conception", tandis que la taille ne peut être modifiée qu'en mode "Utilisation". Attention, pour une raison étrange, si vous ouvrez la requête Fenêtre/Editeur et que vous sélectionnez ensuite le bouton "Annuler", CanDo ne permettra pas de modifier la taille de la fenêtre, même en mode Utilisation. Pour corriger le problème, ouvrez à nouveau la requête Fenêtre/Editeur et sélectionnez le bouton "Ok". La fenêtre peut alors être redimensionnée en mode "Browse").
  5. Cliquez sur le bouton "AppEvent" dans la section "Scripts" et ajoutez le script présenté dans le listing 1 pour l'événement OnAppEvent de la carte WBInterface. OnAppEvent est activé lorsque l'utilisateur fait glisser des icônes d'une autre fenêtre du Workbench vers la carte WBInterface.
Le script OnAppEvent ajouté dans la dernière étape crée simplement un document nommé "AppEventList" et y place le contenu d'Arg1. Lorsqu'un AppEvent se produit dans un programme CanDo, la liste des noms de fichiers associés aux icônes qui ont été déplacées dans la fenêtre est affectée à la variable système Arg1. Chaque nom de fichier est séparé par un caractère de saut de ligne (ASCII 10). En tapant "Arg1" dans le document, ce dernier contiendra tous les noms de fichiers sélectionnés, un par ligne. Le document AppEventList est associé à l'objet Liste de la carte WBInterface. Ainsi, chaque fois que le document est mis à jour, les noms de fichiers dans l'objet Liste sont également mis à jour.

Les objets de l'interface utilisateur

La carte WBInterface contient cinq objets : un objet Liste et quatre objets TextButton. L'objet Liste, nommé "AppEvents", est simplement utilisé pour afficher les noms des fichiers à visualiser et/ou à imprimer. Il n'est donc pas associé à des scripts. Comme mentionné précédemment, le document associé à cet objet est nommé "AppEventList".

Le premier bouton TextButton s'appelle "View" et est utilisé pour activer un diaporama des fichiers répertoriés dans l'objet AppEvents. Le deuxième TextButton s'appelle "Print" et est utilisé pour imprimer les fichiers énumérés dans l'objet AppEvents. Le troisième TextButton s'appelle Quit et est utilisé pour quitter le programme. Le quatrième TextButton s'appelle PrintSettings et sert à modifier les préférences graphiques de l'imprimante. Chacun de ces quatre boutons possède un script d'événement OnRelease qui s'exécute lorsque le bouton est sélectionné.

Le script OnRelease du bouton View attribue la chaîne "View" à la variable nommée "Command", déplace le curseur au début du document actuel (AppEventList), puis va à la carte "Picture". Le script OnRelease pour le bouton Print est exactement le même, sauf que la variable "Command" est assimilée à la chaîne "Print". Le script du bouton Quit exécute simplement la commande "Quit". Le script pour le bouton PrintSettings exécute la commande DOS de CanDo avec la chaîne "SYS:Prefs/PrinterGfx" comme argument. Ceci indique à CanDo d'exécuter le programme nommé "PrinterGfx" dans le répertoire SYS:Prefs. Ce programme est inclus dans AmigaOS. Il permet à l'utilisateur de modifier divers paramètres graphiques pour l'imprimante sélectionnée.

La carte Picture

La carte Picture peut être initialisée au moment de la conception à n'importe quelle résolution, car elle sera modifiée en fonction de la résolution des images affichées. La fenêtre/éditeur doit être utilisée pour désactiver tous les objets disponibles via le bouton "Objets" de la section "Attributs". Ces objets peuvent interférer avec l'affichage des fichiers image.

Lorsque vous appuyez sur le bouton "View" ou "Print" de la carte WBInterface, son script d'événement OnRelease s'active. Chaque script active la carte Picture après avoir attribué une valeur à la variable "Command" et déplacé le curseur en haut du document "AppEventList". Lorsque la carte Picture est activée, son script AfterAttachment s'exécute après l'affichage de la carte.

En suivant le script AfterAttachment du listing 1, la première chose qui se produit est que la variable "TheLine" est comparée à une chaîne nulle. TheLine est la chaîne de caractères de la ligne actuelle du document en cours. Si cette chaîne n'est pas nulle, ce qui signifie qu'au moins un fichier a été glissé sur la carte WBInterface, la commande "ShowPicture" est exécutée avec "TheLine" comme argument. La commande "ShowPicture" charge le fichier spécifié par son argument et l'associe à la carte courante, Picture. Peu importe que le fichier contienne une image d'une résolution ou d'une profondeur différente de celle de la carte Picture, CanDo modifiera automatiquement la résolution de la carte pour l'adapter au fichier. La commande "ScreenTo FRONT" affiche alors l'image.

Ensuite, le script détermine sur quel bouton l'utilisateur a appuyé en regardant le contenu de la variable "Command". Si cette variable est égale à "View", le script marque une pause de cinq secondes, sinon (la seule alternative est "Print") la commande PrintWindow est exécutée. Cette commande imprime la fenêtre actuelle sur l'imprimante sélectionnée par les Préférences en utilisant les paramètres graphiques en cours. Après la pause ou l'impression, le curseur du document actuel est déplacé d'une ligne vers le bas, ce qui le place sur le nom de fichier suivant dans la liste, et le script est quitté.

Une fois que le script AfterAttachment a terminé son exécution, le seul et unique objet de la carte Picture est activé. Cet objet est un minuteur réglé pour se déclencher au bout de zéro seconde. Par conséquent, son script "Occurred" s'exécute immédiatement. Ce script vérifie si TheLine est nulle. Si c'est le cas, il n'y a plus de fichiers dans la liste à afficher ou à imprimer, et le programme passe à la carte WBInterface pour attendre d'autres entrées de l'utilisateur. Si TheLine n'est pas nulle, la carte Picture est à nouveau activée, ce qui entraîne la ré-exécution de son script AfterAttachment. L'objet Timer, nommé "Timer_1", doit être utilisé car la commande "GotoCard" ne peut pas être lancée à partir d'un script AfterAttachment.

Certains d'entre vous se demandent peut-être pourquoi je n'ai pas simplement transmis la liste des noms de fichiers du script OnAppEvent à la carte Picture en utilisant "Arg1" comme argument, puis en créant une boucle dans le script AfterAttachment pour afficher chaque image tour à tour. Bonne idée ! J'ai essayé. Cela ne fonctionne pas. La première image s'affiche bien, mais lorsqu'une image qui n'a pas la même résolution que la première est rencontrée, elle ne s'affiche pas correctement. Elle s'affiche en utilisant la résolution de la première image. Ainsi, si la première image est à haute résolution et entrelacée, une image suivante à haute résolution et non entrelacée sera écrasée verticalement. Ce bogue a été vérifié par une personne du service technique d'INOVAtronics. Ils prévoient de corriger ce problème dans une prochaine version du logiciel. Comme solution provisoire, la carte Picture doit être activée entre chaque image. Cette réinitialisation permet de modifier la résolution de la carte via la commande "ShowPicture".

La dernière ligne droite

Eh bien, c'était court et agréable. J'aime les programmes qui sont utiles mais dont le développement ne demande pas trop d'efforts.


[Retour en haut] / [Retour aux articles]