6 messages in org.openoffice.fr.progRe: [prog] Création d'un bouton par m...
FromSent OnAttachments
Arnaud GUERINMar 25, 2005 1:18 am 
Laurent GodardMar 25, 2005 2:10 am 
PhilippeMar 25, 2005 2:26 am 
Laurent GodardMar 25, 2005 2:31 am 
PhilippeMar 25, 2005 2:41 am 
JovialMar 25, 2005 3:41 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] Création d'un bouton par macroActions...
From:Jovial (o.jo@free.fr)
Date:Mar 25, 2005 3:41:31 am
List:org.openoffice.fr.prog

Arnaud GUERIN a écrit :

Bonjour à tous,

je suis en train d'effectuer un petit développement pour ma société.

Est- ce qu'il est possible de créer, dans une feuille Calc, un bouton et de lui modifier ses propriétés (par exemple les évènements)?

Merci

J'avais fait une sub qui crée un bouton pour palier à l'absence de boite de dialogue ponctuelle En voici le code pour calc

sub CreationCtrlTempo ' Affiche un controle temporisé (ici un bouton avec une image et un label) Dim MonDocument As Object Dim MaFeuille As Object Dim DrawPage As Object Dim Form As Object dim Control as object Const LargeurCtrl =9000 Const HauteurCtrl =7500 Dim aPos as new com.sun.star.awt.Point Dim aSize as new com.sun.star.awt.Size

MonDocument = ThisComponent 'Sélectionne le document en cours MaFeuille = MonDocument.CurrentController.ActiveSheet ' sélectionne la feuille activée DrawPage = MaFeuille.DrawPage 'sélectionne la partie graphique de la feuille Form = DrawPage.Forms.GetByIndex(0)'sélectionne les contrôle de formulaire

'Chemin de l'image DocAdresse = ConvertFromURL(MonDocument.Location) ' Adresse convertie au format système NomFichierDoc = dir(DocAdresse) ' Nom du fichier RepertoireDoc = Left(DocAdresse,Len(DocAdresse)- Len(NomFichierDoc)) ' Emplacement ou répertoire où se trouve le document CheminImage = RepertoireDoc & RepertoireODCF & ImageAcceuil ' chemin fichier image

oform = MonDocument.createInstance( "com.sun.star.form.component.Form" ) 'drawpage.Forms.insertByName("MyForm", oform)

'On crée la forme qui visualise le controle button_shape = MonDocument.createInstance("com.sun.star.drawing.ControlShape")

' a position X,Y

'msgbox WindowHeight & " " & WindowWidth aPos.X = 300 aPos.Y = 200 button_shape.Position = aPos

'Taille du controle aSize.Width = LargeurCtrl aSize.Height =HauteurCtrl button_shape.Size = aSize

'On crée le controle button_model = MonDocument.createInstance("com.sun.star.form.component.CommandButton") button_model.Name = "CtrlAcceuil" button_model.Label = "Bonjour et bienvenu(e) sur la version "& version ' par défaut le texte se place sous l'image button_model.ImageURL = ConvertToURL(CheminImage) button_model.FontHeight = 11 'now connect model and shape with each other ? je sais pas l'expliquer button_shape.Control = button_model

'on insère le controle dans le formulaire DrawPage.Forms.getByName("MyForm").insertByIndex(0, button_model) 'xray.xray button_model 'On affiche le controle dans la page de dessin et on le retire au bout de 3 secondes drawpage.add(button_shape) Wait 3000 drawpage.remove(button_shape) exit sub 'Calcul pour centrer le contrôle end sub Sub OuvrirBoiteApropos 'dim DialBox as object Dim CurPosSize as new com.sun.star.awt.Rectangle Dim MonDocument As Object

DialogLibraries.LoadLibrary("Standard") 'Charge explicitement les librairies DialBox = CreateUnoDialog(DialogLibraries.Standard.A_propos)' On déclare la boite Dialog1 qui fait partie du document 'Calcul pour centrer la boite FramePosSize = ThisComponent.getCurrentController().Frame.getComponentWindow.PosSize xWindowPeer = DialBox.getPeer() CurPosSize = DialBox.getPosSize() WindowHeight = FramePosSize.Height WindowWidth = FramePosSize.Width DialogWidth = CurPosSize.Width DialogHeight = CurPosSize.Height iXPos = ((WindowWidth/2) - (DialogWidth/2)) iYPos = ((WindowHeight/2) - (DialogHeight/2)) DialBox.setPosSize(iXPos, iYPos, DialogWidth, DialogHeight, com.sun.star.awt.PosSize.POS) 'Chemin de l'image MonDocument = ThisComponent ' Sélectionne le document activé DocAdresse = ConvertFromURL(MonDocument.Location) ' Adresse convertie au format système NomFichierDoc = dir(DocAdresse) ' Nom du fichier RepertoireDoc = Left(DocAdresse,Len(DocAdresse)- Len(NomFichierDoc)) ' Emplacement ou répertoire où se trouve le document CheminImage = RepertoireDoc & RepertoireODCF & ImageBienvenue ' chemin fichier image DglImage = DialBox.getControl("ImageControl1")'on séletrionne le control DglImage.Model.ImageURL = ConvertToURL(CheminImage) 'on attribut le chemin de l'image 'DialBox.setPosSize(iXPos, iYPos, DialogWidth, DialogHeight, com.sun.star.awt.PosSize.POS) DialBox.execute() 'on affiche la boite de dialogue end sub