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


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Répondre à