[Résolu][Calc]Modifier image de fond d'une boite de dialogue

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Bastos
Fraîchement OOthentifié
Messages : 5
Inscription : 09 avr. 2018 14:07

[Résolu][Calc]Modifier image de fond d'une boite de dialogue

Message par Bastos »

Bonjour
Est-il possible de modifier l'image de fond d'une boite de dialogue en mode exécution (via un bouton par exemple) ?
Dernière modification par Bastos le 10 avr. 2018 07:58, modifié 2 fois.
OpenOffice 3.3.0 (pas de possibilite de mettre a jour = politique de securite de mon Service Informatique)
LibreOffice 5.2.7.2 (idem)
Windows 7 Professionel (idem)
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Modifier l'image de fond d'une boite de dialogue

Message par Dude »

Salut,

Il faut remonter sur la propriété .model.imageURL de ton objet dialogue pour régler ça.
On rappelle que l'abus d'images est dangereux pour la santé du document
Bastos
Fraîchement OOthentifié
Messages : 5
Inscription : 09 avr. 2018 14:07

Re: [Calc] Modifier l'image de fond d'une boite de dialogue

Message par Bastos »

Bonsoir

J'ai essayé ça (voir document joint) sans grand succès :

Code : Tout sélectionner

Public Ma_boite_de_dialogue
'----------------------------------------------
Sub Ouvre_boite_de_dialogue()
DialogLibraries.LoadLibrary("Standard")
Ma_boite_de_dialogue=CreateUnodialog(DialogLibraries.Standard.Dialog1)
Ma_boite_de_dialogue.Execute()
End Sub 
'----------------------------------------------
Sub Modifier_Image_de_fond()
Ma_boite_de_dialogue.Model.ImageURL = ConvertToUrl("C:\Temp\Test.jpg")
End Sub
Pas de message d'erreur, mais pas d'apparition d'image de fond non plus (j'ai essayé avec plusieurs fichiers Test.jpg de tailles différentes, ça ne change rien).

Après je ne suis pas certain de ma bonne utilisation du ConvertToUrl (j'ai également essayé ConvertToUrl("file:///C:/Temp/Test.jpg"), même conséquence)
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 3.3.0 (pas de possibilite de mettre a jour = politique de securite de mon Service Informatique)
LibreOffice 5.2.7.2 (idem)
Windows 7 Professionel (idem)
Avatar de l’utilisateur
luky-luke
InconditiOOnnel
InconditiOOnnel
Messages : 936
Inscription : 27 nov. 2010 00:17
Localisation : gâtine deux-sèvrienne

Re: [Calc] Modifier l'image de fond d'une boite de dialogue

Message par luky-luke »

Bonjour
Voir ce fil qui donne une solution Image de fond de dialogue ne s'affiche pas
gerardmarquer a écrit :Contourner le problème, en créant un contrôle Image qui couvre toute la boîte de dialogue
un exemple qui utilise également des images présente dans le fichier mais
Dude a écrit :On rappelle que l'abus d'images est dangereux pour la santé du document

Code : Tout sélectionner

Public Dlg As Object
Public Index as integer  
Sub Image_Dans_Dialogue	
	DialogLibraries.LoadLibrary("Standard")
	Dlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
	boite = Dlg.getControl("ImageControl1").Model
	Dlg.getControl("ImageControl1").Model.ImageUrl = converttourl("C:\Temp\Test.jpg")
	Index = 0
	Dlg.Execute   
End Sub 

Sub Change_Images
	If Index = 0 Then
		Dlg.getControl("ImageControl1").Model.Graphic = ThisComponent.Sheets.getByName("Images").Drawpage.GetByIndex("1").Graphic
		Index = 1
	Else
		Dlg.getControl("ImageControl1").Model.Graphic = ThisComponent.Sheets.getByName("Images").Drawpage.GetByIndex("0").Graphic
		Index = 0
	End if	
End Sub
Et le fichier
ImageDans Boite.ods
Cordialement
Luke
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
AOO 4.1.3 et LibO 5.3.7.2 Ubuntu 16.04 LTS et Debian 9
Xray ne tient pas lieu de tout, mais une pratique sans Xray ne vaut pas grand chose
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: [Calc] Modifier l'image de fond d'une boite de dialogue

Message par Piaf »

Bonsoir
A priori l'image doit être chargée avant l'exécution du dialogue.
J'en déduis que si tu veux changer l'image, tu dois fermer et ré-ouvrir le dialogue avec la nouvelle image.
Une solution éventuelle

Code : Tout sélectionner

Sub Ouvre_boite_de_dialogue()
Dim Chemin as String
	DialogLibraries.LoadLibrary("Standard")
	oDlg=CreateUnodialog(DialogLibraries.Standard.Dialog1)
	Chemin = getDirectory(thisComponent.URL)
	images = Array(Chemin &"Roura.jpg",Chemin & "guyane2.jpg")
	oDlg.Model.ImageURL = ConvertToUrl(images(0))
	valeur = 0
	oDlg.Execute()
End Sub 
'----------------------------------------------
Sub Modifier_Image_de_fond()
	oDlg.endExecute
	DialogLibraries.LoadLibrary("Standard")
	oDlg=CreateUnodialog(DialogLibraries.Standard.Dialog1)
	If valeur = 0 Then
		oDlg.Model.ImageURL = ConvertToUrl(images(1))
		Valeur = 1
	Else	
		oDlg.Model.ImageURL = ConvertToUrl(images(0))
		Valeur = 0
	End If	
	oDlg.Execute
end sub

Function getDirectory(URLPath As String) As String
Dim parts As Variant
parts = split(URLPath, "/")
parts(UBound(parts())) = ""
getDirectory = join(parts, "/")
End Function
Mais
Dude a écrit :On rappelle que l'abus d'images est dangereux pour la santé du document
J'ai peut-être été un peu lourd sur les images :lol:
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Bastos
Fraîchement OOthentifié
Messages : 5
Inscription : 09 avr. 2018 14:07

Re: [Calc] Modifier l'image de fond d'une boite de dialogue

Message par Bastos »

Bonjour

La solution de Piaf me convient parfaitement car si on ajoute des contrôles dans notre boite de dialogue, ils sont directement visibles et utilisables : Super !

(Le problème, de mon point de vue, de l'option proposée par luky-luke (Contrôle Picto adapté à la taille de la boite de dialogue) est qu'elle semble nécessiter d'autres lignes de code pour pouvoir voir et utiliser les autres contrôles de la boite de dialogue : l'abus de code est également dangereux pour la santé d'un document ;o))

En tout cas merci beaucoup pour toutes ces réponses.

Bonne journée.
OpenOffice 3.3.0 (pas de possibilite de mettre a jour = politique de securite de mon Service Informatique)
LibreOffice 5.2.7.2 (idem)
Windows 7 Professionel (idem)