[Impress] Exécution de type quiz ou questionnaire

Vos meilleures macros et portions de code sont publiées dans cette section.
Aucun support sur une question de programmation ici !

Modérateur : Vilains modOOs

Règles du forum
Aucune question dans cette section !
Celle-ci rassemble les meilleures macros et portions de code. Vous pouvez en revanche commenter ou argumenter le code exposé. Vous pouvez même remercier l'auteur (cela fait toujours plaisir) en indiquant par exemple dans quel cadre ou contexte vous en avez eu l'utilité.
Si vous avez à poster quelque chose, faites-le depuis la section Macros et API et demandez à un modérateur de l'y déplacer.
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25775
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

[Impress] Exécution de type quiz ou questionnaire

Message par Dude »

Ce diaporama contient une macro "Jouer" permettant de l'exécuter en mode interactif.
Sauf à cliquer sur les hyperliens proposés, la progression ne peut plus se faire linéairement.

La macro lance une écoute (listener) sur les différents événements du mode diaporama.

Code : Tout sélectionner

Global oCtrl as object, nIndex%, bJoue as boolean

Sub Jouer
	sEcoute = "com.sun.star.presentation.XSlideShowListener"
	oDoc = ThisComponent
	oPresent = oDoc.getPresentation()
	oEcoute = createUnoListener("Show_",sEcoute)
	oPresent.Start
	oCtrl = oPresent.getController()
	oCtrl.addSlideShowListener(oEcoute)	
End Sub

Sub Show_slideTransitionStarted
	if bJoue then
		bJoue = false
		exit sub
	endif	
	i = oCtrl.GetCurrentSlideIndex()
	if i = nIndex then exit sub
	oCtrl.gotoSlideIndex(nIndex)
End Sub

Sub Show_slideTransitionEnded
End Sub

Sub Show_slideEnded()
	's'affiche à la fin de chaque diapo
	nIndex = oCtrl.GetCurrentSlideIndex()
	if nIndex+1 = oCtrl.Count then exit sub
	msgbox "Action interdite, choisissez un hyperlien !" 			
End Sub

Sub Show_disposing
End Sub

Sub Show_Paused
End Sub

Sub Show_Resumed
End Sub

Sub Show_slideAnimationsEnded
End Sub

Sub Show_hyperLinkClicked
	bJoue = true
End Sub
_quiz.odp


Vous en profiterez pour voter sur la demande d'amélioration 97349 qui réclame un mode kiosque (4 voix à ce jour) afin de restreindre l'usage des boutons de navigation.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Gryfforgues
NOOuvel adepte
NOOuvel adepte
Messages : 17
Inscription : 15 avr. 2023 20:49

Re: [Impress] Exécution de type quiz ou questionnaire

Message par Gryfforgues »

Bonjour!
Merci pour cette macro que j'utiliserai pour créer de petits jeux pour ma classe.
J'ai voté pour la demande d'amélioration. Nous en sommes désormais à 7 votes :super:

Je me permets de rajouter quelques infos pour pourraient être utiles pour ceux qui utiliseront cette macro. Elles ont été apportées par Jurassic Pork, dans cette discussion :
Pour tester le document proposé par Dude, il faut utiliser LibreOffice avec une interface en français.
Pour utiliser la macro sous Raspbian il faut rajouter une temporisation après le Start :

Code : Tout sélectionner

	oPresent.Start
       Wait(1000)
	oCtrl = oPresent.getController()
Bonne utilisation!
LibreOffice 7.5 sous Windows 11 et Windows 10.
Libreoffice sous Ubuntu
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25775
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Impress] Exécution de type quiz ou questionnaire

Message par Dude »

Gryfforgues a écrit : 12 mai 2024 19:18 Pour utiliser la macro sous Raspbian il faut rajouter une temporisation après le Start
La macro est fonctionnelle avec les versions officielles. Sur les distros, 99 % des problèmes viennent de la version des dépôts.
Comme toujours, il faut détailler ce genre de configuration :
  • version exacte de Raspbian
  • environnement graphique utilisé
  • mémoire paramétrée