[Résolu][Basic] La fenêtre ne ferme pas

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 !
Avatar de l’utilisateur
hamilton
Membre OOrganisé
Membre OOrganisé
Messages : 70
Inscription : 17 août 2016 17:41

[Résolu][Basic] La fenêtre ne ferme pas

Message par hamilton »

Bonsoir,
Inspiré du code fourni par Hubert Lambert, Piaf crée une boîte de Dialogue resizable, j'ai modifié le code pour une fenêtre qui je peuvez aussi minimizer, mais la fenêtre ne ferme pas. Il y a quelqu'un qui me aide.
Le code.

Code : Tout sélectionner

  REM  *****  BASIC  *****

Dim oWindow as Object, paintlistener as Object, graphic as Object

Sub Main

   oAwtToolkit = CreateUnoService( "com.sun.star.awt.Toolkit" )
   ' Create a top level window.
   oWindow = CreateNewWindow( oAwtToolkit, 100, 200, 400, 500 )  
   oWindow.setBackground(RGB(255,255,255) )
     
  oBtnCtrl = MakeButtonCtrl( oAwtToolkit, oWindow, "OK", 62, 200, 76,30 )
   oMouseListener = CreateUnoListener("Mouse_", "com.sun.star.awt.XMouseListener")
   oBtnCtrl.addMouseListener(oMouseListener)   
    paintlistener = createUnoListener("XPaintListenerA_", "com.sun.star.awt.XPaintListener")
    oWindow.addPaintListener(paintlistener)   
 
	
End Sub

''--------------------------------------------------------------------

Function CreateNewWindow(oAwtToolkit,nX,nY,nWidth,nHeight) As Object
'sTypeName=oParent
   aRect = CreateUnoStruct("com.sun.star.awt.Rectangle")
   With aRect
      .X = nX
      .Y = nY
      .Width = nWidth
      .Height = nHeight
   End With
   aWinDesc = CreateUnoStruct("com.sun.star.awt.WindowDescriptor")
   With aWinDesc
      
      .Type = com.sun.star.awt.WindowClass.TOP
      .WindowServiceName = "dialog" ' ne pas changeable "window"
      .ParentIndex = -1
      .Bounds = aRect
      '--.Parent = parentWindow 'oParent''null' '' ne fonctionne pas
      .WindowAttributes =0
      .WindowAttributes =.WindowAttributes+ com.sun.star.awt.WindowAttribute.SHOW
      .WindowAttributes =.WindowAttributes+ com.sun.star.awt.WindowAttribute.MOVEABLE 
      .WindowAttributes =.WindowAttributes+ com.sun.star.awt.WindowAttribute.SIZEABLE
      .WindowAttributes =.WindowAttributes+ com.sun.star.awt.WindowAttribute.BORDER
      .WindowAttributes =.WindowAttributes+ com.sun.star.awt.WindowAttribute.CLOSEABLE
      
      ''+ com.sun.star.awt.WindowAttribute.MINSIZE
   End With
   CreateNewWindow = oAwtToolkit.createWindow(aWinDesc)
   
End Function
''----------------------------------------------------------------------------------
Function MakeButtonCtrl(oAwtToolkit, oWindow,cLabel,nX,nY,nWidth,nHeight )
   oButtonModel = CreateUnoService("com.sun.star.awt.UnoControlButtonModel")
   oButtonCtrl = CreateUnoService("com.sun.star.awt.UnoControlButton")
   oButtonCtrl.setModel(oButtonModel)
   oButtonCtrl.createPeer(oAwtToolkit, oWindow)
   oButtonModel.Label = cLabel
   oButtonModel.DefaultButton = True  
   oButtonCtrl.setPosSize(nX,nY,nWidth,nHeight,com.sun.star.awt.PosSize.POSSIZE)
   MakeButtonCtrl = oButtonCtrl
End Function
''----------------------------------------------------------------------------------
Sub XPaintListenerA_WindowPaint(oEv)
   If oEv.count > 0 Then Exit Sub   
   win = oEv.Source
   Graphic = win.createGraphics
    graphic.FillColor = rgb(30,144,255)
    graphic.LineColor = -1
    graphic.drawEllipse(20,20,160,160)
    graphic.FillColor = rgb(23,23,135)
    graphic.drawRoundedRect(5,82,190,36,10,10)
    font = win.AccessibleContext.Font
    fontdesc = font.FontDescriptor
    fontdesc.Name = "Arial"
    fontdesc.Family = 5
    fontdesc.Weight = 200
    fontdesc.Height = 22
    graphic.selectFont(fontdesc)
    graphic.TextColor = rgb(255,255,255)
    graphic.drawText(11,87,"  OPEN OFFICE")
    ''
    graphic.drawEllipse(40,240,160,160)
    
End sub
''--------------------------------------------------------------------
Sub Mouse_mousePressed(oEv as Object)
   oEv.Source.AccessibleContext.AccessibleParent.dispose
End Sub
Sub Mouse_disposing(oEv as Object)
End Sub
Sub Mouse_mouseEntered(oEv as Object)
End Sub
Sub Mouse_mouseExited(oEv as Object)
End Sub
Sub Mouse_mouseReleased(oEv as Object)
End Sub

sub XPaintListenerA_disposing(oEv)
end sub 
OpenOffice 4.1.10 sur Windows 7(64) , Eclipse "Mars"
LibreOffice 6.2 sur Windows 8(64)
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25175
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Basic] La fenêtre ne ferme pas.

Message par Dude »

Salut,

On te l'a déjà dit il me semble mais quand on pompe du code, on cite ses sources.
Tu as posé le même genre de question en octobre 2016 : https://forum.openoffice.org/fr/forum/v ... 73#p284808
Piaf te fournit un exemple sur la base d'un code de Paolo Mantovani.

On y voit que pour fonctionner, il faut d'abord créer un objet depuis le service com.sun.star.frame.Frame.
Puis ensuite, y intégrer ta fenêtre.
Le bouton de fermeture se mettra alors à fonctionner.
Avatar de l’utilisateur
hamilton
Membre OOrganisé
Membre OOrganisé
Messages : 70
Inscription : 17 août 2016 17:41

Re: [Basic] fenêtre avec formes en mouvement.

Message par hamilton »

Bonsoir.
Merci Beaucoup Dude . La fenêtre ferme bien avec ça.
Je voudrai appliquer mouvement aux cercles, formes géométriques comme carrées sur une fenêtre, comment faire. Je pense qu'il serait possible, j'implore votre aide.
La modération vous a écrit: Nouvelle question = nouveau fil

OpenOffice 4.1.10 sur Windows 7(64) , Eclipse "Mars"
LibreOffice 6.2 sur Windows 8(64)