Page 1 sur 1

StatusBarText() et DialogXML

Publié : lun. 20/mars/2023 23:10
par boddhi
Une p'tite question...
J'ai un programme avec des fenêtres classiquement créées avec des OpenWIndow() et un autre avec des fenêtres OpenXMLDialog().
Chacun d'eux possède une StatusBar() avec des champs 'Texte' avec alignement à droite (##PB_StatusBar_Right).
Sur le premier, l'alignement se fait correctement. En revanche, sur le second, il semble que la constante ne soit pas prise en considération.
J'ai essayé également avec #PB_StatusBar_Center, même constat, l'alignement se fait toujours à gauche.

Donc, y a-t-il incompatibilité avec OpenXMLDialog() ? Est-ce un bug ?

Merci.

Re: StatusBarText() et DialogXML

Publié : lun. 20/mars/2023 23:37
par falsam
Ton échelle d'affichage est de 100 % ?

Si ce n'es pas le cas compile dans un premier temps avec l'activation des DPI.

Re: StatusBarText() et DialogXML

Publié : lun. 20/mars/2023 23:52
par boddhi
Option DPI activée ou non. Aucun changement.

Re: StatusBarText() et DialogXML

Publié : mar. 21/mars/2023 0:13
par boddhi
Bon le problème est, comme dit l'adage, situé entre l'écran et la chaise parce que l'exemple ci-dessous fonctionne... :oops:

Code : Tout sélectionner

OpenWindow(0,10,10,400,400,"OpenWindow()")
CreateStatusBar(0,WindowID(0))
AddStatusBarField(200)
AddStatusBarField(200)
StatusBarText(0,0,"Texte à gauche")
StatusBarText(0,1,"Texte à droite",#PB_StatusBar_Right)

ChaineXML.s="<window id='"+Str(1)+"' name='1' text='OpenXMLDialog()' width='400' height='400' flags='#PB_Window_SystemMenu'></window>"

If ParseXML(0,ChaineXML) And XMLStatus(0)=#PB_XML_Success
  If CreateDialog(0) And OpenXMLDialog(0,0,"1")
    CreateStatusBar(1,WindowID(1))
    AddStatusBarField(200)
    AddStatusBarField(200)
    StatusBarText(1,0,"Texte à gauche")
    StatusBarText(1,1,"Texte à droite",#PB_StatusBar_Right)
  EndIf
EndIf

Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
Le souci va être de comprendre pourquoi cela ne fonctionne pas dans mon programme...
en sachant que mes lignes de code sont les suivantes :

Code : Tout sélectionner

    CreateStatusBar(#GAD_FP_BS_BARRESTATUT,WindowID(#NUA_FENPRINCIPALE))
    AddStatusBarField(#PB_Ignore)
    AddStatusBarField(120)
    
    StatusBarText(#GAD_FP_BS_BARRESTATUT,0,"",#PB_StatusBar_BorderLess)
    StatusBarText(#GAD_FP_BS_BARRESTATUT,1,"texte",#PB_StatusBar_BorderLess|#PB_StatusBar_Right)