StatusBarText() et DialogXML

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

StatusBarText() et DialogXML

Message 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.
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: StatusBarText() et DialogXML

Message 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.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: StatusBarText() et DialogXML

Message par boddhi »

Option DPI activée ou non. Aucun changement.
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: StatusBarText() et DialogXML

Message 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)

Répondre