Page 1 sur 1

Justifier une colonne à droite

Publié : ven. 10/sept./2010 21:49
par falsam
Bonjour, il y a t'il un moyen de justifier une donnée dans une colonne d'un gadget ListIconGadget ?

Re: Justifier une colonne à droite

Publié : ven. 10/sept./2010 22:34
par Ollivier
Oui! Mais le problème c'est que je ne sais pas qu'est-ce que signifie « justifier ». Est-ce que, s'il-te-plaît, tu peux préciser pour un ignorant comme moi ce que ça veut dire?

Re: Justifier une colonne à droite

Publié : ven. 10/sept./2010 22:44
par falsam
Par défaut les données situées à l'intérieur des colonnes du gadget ListIconGadget sont cadrées à gauche. je souhaiterais que mes données, en particulier mes données numériques soient cadrées à droite.

Re: Justifier une colonne à droite

Publié : ven. 10/sept./2010 23:01
par Ollivier
Ok, voici un exemple que j'ai créé grâce au post de PB >>> Center ListIconGadget column titles?

J'ai juste pris l'exemple de la doc et y ai ajouté le code de PB, avec une petite modif car lui c'était un centrage qu'il voulait.

Code : Tout sélectionner

 If OpenWindow(0, 100, 100, 500, 100, "ListIconGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
   ListIconGadget(0, 5, 5, 490, 90, "Nom", 100, #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
   AddGadgetColumn(0, 1, "Adresse", 250)
   AddGadgetItem(0, -1, "Harry Rannit"+Chr(10)+"12 Parliament Way, Battle Street, By the Bay")
   AddGadgetItem(0, -1, "Ginger Brokeit"+Chr(10)+"130 PureBasic Road, BigTown, CodeCity")
   
   lvc.LV_COLUMN
lvc\mask = #LVCF_FMT
lvc\fmt = #LVCFMT_RIGHT
NumeroColonne = 1 ; (0 = première colonne, 1 = deuxième colonne, etc...)
SendMessage_(GadgetID(0),#LVM_SETCOLUMN,NumeroColonne,@lvc) ; 0 = Column.


   
   Repeat
     Evenement = WaitWindowEvent()
   Until Evenement = #PB_Event_CloseWindow
EndIf

Re: Justifier une colonne à droite

Publié : ven. 10/sept./2010 23:18
par falsam
Génial, merci beaucoup. SendMessage est une fonction de windows que j'assimile plutôt mal.

Re: Justifier une colonne à droite

Publié : ven. 10/sept./2010 23:32
par falsam
/me fait un réve .....

AddGadgetColumn(#Gadget, Position, Titre$, Largeur,[, Options]))

Le paramètre facultatif 'Options' peut être une combinaison des constantes suivantes:
#PB_Column_Right : Aligne le texte de la colonne à droite
#PB_Column_Center : Aligne le texte de la colonne au centre

:)

Re: Justifier une colonne à droite

Publié : sam. 11/sept./2010 8:17
par Ollivier
Ollivier a écrit :Est-ce que, s'il-te-plaît, tu peux préciser pour un ignorant comme moi ce que ça veut dire?
Ben quoi! Je t'ai pourtant prévenu que j'étais un ignorant! :D

Re: Justifier une colonne à droite

Publié : dim. 12/sept./2010 21:09
par Ollivier
Bourc'hrôwaâh... Ce n'est même pas un extrait de la doc de PureBasic qu'il a tamponné, mais c'est juste un de ses rêves, un rêve perso à lui tout seul... Vas-y je me casse 2 ou 3 jours la queue entre les jambes. Je reviendrais quand j'aurai un cerveau...

Là, je viens de me « justifier » que j'étais vraiment à l'Ouest...

Bon... En attendant, une procédure peut faciliter la présentation. Et SendMessage_() est plus ou moins universel sous Windows. Ce qui est complexe c'est l'ensemble des arguments possible. Mais il y a l'aide µsoft en ligne. Et puis Fred tâche de compléter petit à petit aussi. Peut-être qu'il rajoutera cette option, il y a une section spécialisée pour faire évoluer le langage en ajoutant ses idées personnelles.

Code : Tout sélectionner

Procedure JustifyColumn(Gadget, Column, FMT)
      Lvc.LV_COLUMN
      Lvc\Mask = #LVCF_FMT
      Select FMT
            Case 0
                  Lvc\FMT = #LVCFMT_LEFT
            Case 1
                  Lvc\FMT = #LVCFMT_CENTER
            Case 2
                  Lvc\FMT = #LVCFMT_RIGHT
      EndSelect
      SendMessage_(GadgetID(Gadget), #LVM_SETCOLUMN, Column, @Lvc)
EndProcedure

If OpenWindow(0, 100, 100, 500, 100, "ListIconGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
   ListIconGadget(0, 5, 5, 490, 90, "Nom", 100, #PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
   AddGadgetColumn(0, 1, "Adresse", 250)
   AddGadgetItem(0, -1, "Harry Rannit"+Chr(10)+"12 Parliament Way, Battle Street, By the Bay")
   AddGadgetItem(0, -1, "Ginger Brokeit"+Chr(10)+"130 PureBasic Road, BigTown, CodeCity")
   
      NumeroColonne = 1 ; (0 = première colonne, 1 = deuxième colonne, etc...)
      JustifyColumn(0, 1, 2)

   
   Repeat
     Evenement = WaitWindowEvent()
   Until Evenement = #PB_Event_CloseWindow
EndIf

Re: Justifier une colonne à droite

Publié : sam. 02/oct./2010 1:31
par charvista
Cent millions de fois merci pour ton code de justification, Ollivier! :D J'en avais justement besoin et ça marche très bien!
Impeccable... et facile à utiliser par surcroît. Étonnant que cette fonction ne soit pas standard dans PureBasic...

Merci falsam d'avoir posé la question avant moi! :twisted:

Re: Justifier une colonne à droite

Publié : dim. 03/oct./2010 14:31
par Ollivier
Charvista a écrit :Cent millions de fois merci pour ton code de justification, Ollivier!
La fin "justifie" les moyens :mrgreen:

Re: Justifier une colonne à droite

Publié : dim. 03/oct./2010 14:35
par Backup
pour ma part a peine le code etait posté , qu'il a rejoint ma collection :)

il y aura peut etre un cognitio 2 un de ces 4 :lol: