Nouveau petit écueil rencontré avec un control ajouté sur une boîte de dialogue "dessinée" via l'EDI.
La boîte de dialogue étant :
Code : Tout sélectionner
With BasicLibraries
If .HasByName(T) Then
If Not .isLibraryLoaded(T) Then .LoadLibrary(T)
BiblioB=.GetByName(T)
End If
End With
With DialogLibraries
If .HasByName(T) Then
If Not .isLibraryLoaded(T) Then .LoadLibrary(T)
BiblioD=.GetByName(T)
End If
End With
Form=CreateUnoDialog(BiblioD.GetByName("Form"))
With Form
' option magique offrant la couleur aux controls
.GetPeer().SetProperty("NativeWidgetLook",False)
.Execute
End With
Code : Tout sélectionner
oColumnModel=CreateUnoService("com.sun.star.awt.grid.DefaultGridColumnModel")
oColumn1=CreateUnoService("com.sun.star.awt.grid.GridColumn")
With oColumn1
.Title = "Octet"
.ColumnWidth = 60
.HorizontalAlign=1
End With
oColumnModel.addColumn(oColumn1)
oColumn2=CreateUnoService("com.sun.star.awt.grid.GridColumn")
With oColumn2
.Title = "Hexa"
.ColumnWidth = 60
.HorizontalAlign=1
.DataColumnIndex=1
End With
oColumnModel.addColumn(oColumn2)
oColumn3=CreateUnoService("com.sun.star.awt.grid.GridColumn")
With oColumn3
.Title = "Symbole"
.HorizontalAlign=1
.ColumnWidth = 50
End With
oColumnModel.addColumn(oColumn3)
oDataModel=CreateUnoService("com.sun.star.awt.grid.DefaultGridDataModel")
For I=0 To 500
If W(I)>0 Then
Lettre=Chr(W(I))
Else
Select Case W(I)
Case -61
If W(I+1)=-88 Then Lettre="è"
If W(I+1)=-86 Then Lettre="ê"
If W(I+1)=-87 Then Lettre="é"
If W(I+1)=-89 Then Lettre="ç"
Case Else
Lettre="négatif"
End Select
End If
oDataModel.addRow (""& i,Array(Format(I,"0000"),W(I), Lettre))
Next I
oGridModel =Form.Model.CreateInstance("com.sun.star.awt.grid.UnoControlGridModel")
oGridModel.Name="MiniEditeurMod"
oGridModel.GridDataModel = oDataModel
oGridModel.ColumnModel = oColumnModel
oGridModel.ShowColumnHeader = True
oGridModel.ShowRowHeader = True
oGridModel.HScroll = True
oGridModel.VScroll = True
oGridModel.Sizeable = True
oGridControl = createUnoService("com.sun.star.awt.grid.UnoControlGrid")
oGridControl.setModel(oGridModel)
Form.addControl("MiniEditeurMod", oGridControl)
oGridControl.setPosSize(10, 150, 150, 180, com.sun.star.awt.PosSize.POSSIZE)
With Form.GetControl("LabelMiniEditeurMod").Model
XXX=.PositionX
YYY=.PositionY+98
WWW=.Width*2
End With
Form.GetControl("MiniEditeurMod").SetPosSize(XXX,YYY,WWW,300,com.sun.star.awt.PosSize.POSSIZE)
Sinon malgré setPosSize pas moyen de positionner finement ce control à moins de bricoler ...


