Largeur et positionnement
Largeur et positionnement
Bonjour,
je suis un peu perdu avec le positionnement des gadgets dans une fenêtre.
Je n'ai pas trouvé d'autre système d'ancrage que les coordonnées et la taille des gadgets pour les positionner. A la rigueur cela pourrait être suffisant à condition que la largeur des gadgets reste constante. Mais tel n'est pas le cas.
Prenons par exemple un TextGadget. Je lui donne une taille initiale pour contenir un texte donné. Je travaille sur les 3 OS (Windows, Linux et Mac OS) et en plus systématiquement ou presque, j'utilise 3 langues (le français, l'anglais et l'allemand).
Comment gère-t-on de manière simple le positionnement d'un tel TextGadget et si on fait cela avec les coordonnées et les tailles, comment obtient-on les tailles par défaut nécessaires à l'affichage complet selon l' OS et la langue utilisée (l'équivalent d'un autosize) ?
Merci. Gilles
je suis un peu perdu avec le positionnement des gadgets dans une fenêtre.
Je n'ai pas trouvé d'autre système d'ancrage que les coordonnées et la taille des gadgets pour les positionner. A la rigueur cela pourrait être suffisant à condition que la largeur des gadgets reste constante. Mais tel n'est pas le cas.
Prenons par exemple un TextGadget. Je lui donne une taille initiale pour contenir un texte donné. Je travaille sur les 3 OS (Windows, Linux et Mac OS) et en plus systématiquement ou presque, j'utilise 3 langues (le français, l'anglais et l'allemand).
Comment gère-t-on de manière simple le positionnement d'un tel TextGadget et si on fait cela avec les coordonnées et les tailles, comment obtient-on les tailles par défaut nécessaires à l'affichage complet selon l' OS et la langue utilisée (l'équivalent d'un autosize) ?
Merci. Gilles
- microdevweb
- Messages : 1802
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Largeur et positionnement
Bonjour Gilles,
Personnellement je n'utilise plus que les dialogues.
https://www.purebasic.com/french/docume ... index.html
Voici une exemple simple, redimensionne la fenêtre et tu constatera que les champs se redimensionnent automatiquement.
Personnellement je n'utilise plus que les dialogues.
https://www.purebasic.com/french/docume ... index.html
Voici une exemple simple, redimensionne la fenêtre et tu constatera que les champs se redimensionnent automatiquement.
Code : Tout sélectionner
Enumeration
#strName
#strAddress
#strCity
#btValidate
#btChancel
EndEnumeration
Procedure EventValide()
MessageRequester("info","validation")
EndProcedure
Procedure EventChancel()
FreeDialog(0)
End
EndProcedure
Procedure OpenMyForm()
; Utilisation de la technologie dialog avec positionement automatique
; des gadgets
;ici je crée un fichier xml dynamiquement pour l'organisation des gadgets
Protected xml.s
xml="<window name='form' "+
" width='400'"+
" text='ma fenêtre '"+
" flags='#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_SizeGadget'>"+
" <hbox expand='item:1'>"+ ;layout principal les seul les champs vont s'agrandir
" <vbox expand='no'>"+ ;layout pour les champs
" <frame text='nom: '>"+
" <string id='"+Str(#strName)+"'/>"+
" </frame>"+
" <frame text='localité: '>"+
" <string id='"+Str(#strAddress)+"'/>"+
" </frame>"+
" <frame text='adresse: '>"+
" <string id='"+Str(#strCity)+"'/>"+
" </frame>"+
" </vbox>"+
" <vbox expand='no'>"+ ;layout pour les boutons
" <button id='"+Str(#btValidate)+"' text='valider'/>"+
" <button id='"+Str(#btChancel)+"' text='annuller'/>"+
" </vbox>"+
" </hbox>"+
"</window>"
; chargement en mémoire du fichier xml
CatchXML(0,@xml,StringByteLength(xml),0,#PB_UTF8)
CreateDialog(0)
If Not OpenXMLDialog(0,0,"form")
ProcedureReturn #False
EndIf
FreeXML(0)
BindGadgetEvent(#btChancel,@EventChancel())
BindGadgetEvent(#btValidate,@EventValide())
ProcedureReturn #True
EndProcedure
If OpenMyForm()
Repeat
WaitWindowEvent()
Until Event()=#PB_Event_CloseWindow
FreeDialog(0)
End
EndIf
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
- microdevweb
- Messages : 1802
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Largeur et positionnement
Petit coup de gueule...
je trouve vraiment déplaisant que les auteurs de message de demande d'aide n'aie pas la courtoisie d'adressé un petit merci aux membres qui leurs réponde. Même si la réponse n'est pas celle attendue, ils on au moins fait l'effort d'essayé de répondre.
Pour part je ne répondrais plus aux messages des membres agissant de la sorte.

je trouve vraiment déplaisant que les auteurs de message de demande d'aide n'aie pas la courtoisie d'adressé un petit merci aux membres qui leurs réponde. Même si la réponse n'est pas celle attendue, ils on au moins fait l'effort d'essayé de répondre.
Pour part je ne répondrais plus aux messages des membres agissant de la sorte.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
Re: Largeur et positionnement
Voilà, c'était une démonstration de la librairie "dialogue"... Ça recentre automatiquement les choses... XML le matin, call back le soir... Faut surtout pas s'aiguiller sur l'apéro de fin de semaine entre les deux, sinon c'est pénalité....
Re: Largeur et positionnement
selzig a écrit :Bonjour,
je suis un peu perdu avec le positionnement des gadgets dans une fenêtre.
Merci. Gilles
voir ici :

http://www.purebasic.fr/french/viewtopi ... t&start=15
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Largeur et positionnement
Le sujet original contient la dernière mise à jour.
http://www.purebasic.fr/french/viewtopi ... 18#p147018
Un exemple de codeet la démonstration en ligne générée avec SpiderBasic
http://falsam.com/sbtest/lockresize.html
Les tailles des polices peuvent variées d'un OS à un autre et même au sein d'un meme Os.
- Inclus dans ton code la procédure AdjustFontSize() que tu trouveras sur ce lien. http://www.purebasic.fr/french/viewtopi ... 12#p190612
- Charge une police pour ton application et utilise là par défaut.
Au préalable tu auras défini soit une constante soit une variable pour ta police.

Un exemple de code
Code : Tout sélectionner
EnableExplicit
IncludeFile "LockResize.pbi"
Enumeration
#Mainform
#Test1
#Test2
#Test3
#Test4
#Test5
#Test6
EndEnumeration
Global WindowStyle.i=#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered|#PB_Window_SizeGadget
Procedure Start()
OpenWindow(#Mainform, 0, 0, 500, 400, "Demo LockResizeGadget", WindowStyle)
WindowBounds(#Mainform, 300, 400, #PB_Ignore, #PB_Ignore)
StringGadget(#Test1, 10, 10, 300, 20, "")
ListIconGadget(#Test2, 10, 35, 300, 300,"Col1", 100)
ListViewGadget(#Test3, 320, 10, 100, 325)
ComboBoxGadget(#Test4, 10, 350, 410, 22)
ButtonGadget(#Test5, 430, 10, 50, 22, "Test")
TextGadget(#Test6, 180, 380, 160, 22, "Lock with LockResizeGadget")
SmartWindowRefresh(#Mainform, #True)
LockGadget(#Mainform, #Test1, #True, #True, #True, #False)
LockGadget(#Mainform, #Test2, #True, #True, #True, #True)
LockGadget(#Mainform, #Test3, #False, #True, #True, #True)
LockGadget(#Mainform, #Test4, #True, #False, #True, #True)
LockGadget(#Mainform, #Test5, #False, #True, #True, #False)
LockGadget(#Mainform, #Test6, #False, #False, #False, #True, #True)
EndProcedure
UseLockGadget()
Start()
Repeat : Until WaitWindowEvent(10) = #PB_Event_CloseWindow

Les tailles des polices peuvent variées d'un OS à un autre et même au sein d'un meme Os.
- Inclus dans ton code la procédure AdjustFontSize() que tu trouveras sur ce lien. http://www.purebasic.fr/french/viewtopi ... 12#p190612
- Charge une police pour ton application et utilise là par défaut.
Au préalable tu auras défini soit une constante soit une variable pour ta police.
Code : Tout sélectionner
LoadFont(#FontGlobal, "", AdjustFontSize(10))
SetGadgetFont(#PB_Default, FontID(#FontGlobal))
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%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Largeur et positionnement
Bonjour,
Argh, dur, dur de retomber si bas.
Donc je vous remercie pour votre réponse et les autres auteurs pour la leur, avec un retard que j'espère vous accepterez d'excuser.
Cordialement. Gilles
* sous OS 10.12.6, le mysql.pbi me permet d'accéder à la base de données avec le connecteur C mysql uniquement en mode Run. Une fois compilé, le projet ne fonctionne plus. Il semble que cela soit un problème connu de ce connecteur sous OS X. Je suis en train de compiler un connecteur mariaDB sous OS X. En attendant, je ne rencontre pas ce(s) problème(s), ni sur Qt, ni sur Lazarus... même si sur Qt, la compilation (la construction) de la version statique incluant OpenSSL et MariaDB nécessite quelques tâtonnements quelque soit l'OS utilisé.
Mécontentement effectivement légitime. Désolé. J'étais accaparé par l'autre de mes problèmes qui est discriminant. Je n'ai pas encore étudié votre réponse, ni les autres. Je me concentre actuellement sur ce que je devine être un point faible de PB : l'accès aux bases de données en ce qui concerne MySQL D'une part, il est peu pratique, difficile à mettre en œuvre (en tous cas sous Mac OS*) et enfin il me semble d'une lenteur que je n'ai pas réussi à régler et d'ailleurs, dans la mesure où le mysql.pbi que j'utilise (une version 2016) est basé sur les macros, je doute qu'il ne soit améliorable. Et pour couronner le tout, je n'ai pas réussi à porter un exécutable d'un appareil à l'autre ... même sous Windowsmicrodevweb a écrit :Petit coup de gueule...![]()
je trouve vraiment déplaisant que les auteurs de message de demande d'aide n'aie pas la courtoisie d'adressé un petit merci aux membres qui leurs réponde.


Donc je vous remercie pour votre réponse et les autres auteurs pour la leur, avec un retard que j'espère vous accepterez d'excuser.
Cordialement. Gilles
* sous OS 10.12.6, le mysql.pbi me permet d'accéder à la base de données avec le connecteur C mysql uniquement en mode Run. Une fois compilé, le projet ne fonctionne plus. Il semble que cela soit un problème connu de ce connecteur sous OS X. Je suis en train de compiler un connecteur mariaDB sous OS X. En attendant, je ne rencontre pas ce(s) problème(s), ni sur Qt, ni sur Lazarus... même si sur Qt, la compilation (la construction) de la version statique incluant OpenSSL et MariaDB nécessite quelques tâtonnements quelque soit l'OS utilisé.
- microdevweb
- Messages : 1802
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Largeur et positionnement
@Gilles,
Pas de soucis, je comprend et bonne chance pour la suite de ton projet.
Pas de soucis, je comprend et bonne chance pour la suite de ton projet.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège