Page 1 sur 1

Titre de colonnes multiples

Publié : ven. 14/févr./2020 22:01
par omega
Bonsoir à tous

J'utilise une listIconGadget et j'ai un titre qui convient à trois colonnes avec chacune un sous-titre. Je m'explique:
1ère colonne titrée : Prix de vente détail
2ème colonne titrée: Prix de vente en gros
3ème colonne titrée: Prix spécial étudiants

Je souhaiterais (si possible) écrire une seule fois le titre : PRIX DE VENTE et, en dessous, les sous-titres des 3 colonnes.( exemple: Détail, Gros, Etudiant.

Merci

Re: Titre de colonnes multiples

Publié : sam. 15/févr./2020 3:09
par Naheulf
Bonsoir,
Si j'ai bien compris tu cherches à faire un truc comme ça ?
Image

Re: Titre de colonnes multiples

Publié : sam. 15/févr./2020 13:51
par Ar-S
Je ne sais pas si c'est pas si c'est possible. Et si ça l'est ce sera avec API mais ça j'en sait rien.
Un listicongadget est comme une fenêtre explorer en mode détails.. Ce n'est pas un tableur.
Idées en vrac
- Pourquoi ne mets tu pas simplement ton titre dans un stringgadget de la taille de tes trois colonnes ?
- Tu peux aussi faire un autre listicon gadget dont tu modifierais la taille de la colonne pour qu'elle fasse la taille des 3 du dessous.. ?
- Tu peux aussi dessiner ton tableau dans un canvas mais c'est un autre taf.

Re: Titre de colonnes multiples

Publié : sam. 15/févr./2020 19:54
par omega
Bonjour Ar-S

J'ai déjà utilisé cette astuce (string et listicongadget etc..), mais j'aurais souhaité faire ça comme excell mais si ce n'est pas possible alors je suis obligé de faire comme tu as dit.

Merci pour tout

Re: Titre de colonnes multiples

Publié : ven. 21/févr./2020 2:27
par Ollivier
Il y a une méthode un peu brutale : afficher une fenêtre BorderLess. Mais dès que l'interface modifie les coordonnées, ça fait bricolo...

Re: Titre de colonnes multiples

Publié : ven. 21/févr./2020 9:06
par Micoute
Moi, je ferais comme ça, avec une structure, ça devrait le faire.

Code : Tout sélectionner

Enumeration Fenetres
  #Fenetre_principale
EndEnumeration

Enumeration Gadgets
  #Lst_0
  #Lst_1
  #Lst_2
  #Lst_3
  #Lst_4
EndEnumeration

Global Evenement

Declare Programme_principal()

Programme_principal()

Procedure Programme_principal()
  Protected Drapeaux_Lst = #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines
  If OpenWindow(#Fenetre_principale, 0, 0, 500, 365, Space(54) + "Essai de listes multiples", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
      ListIconGadget(#Lst_0, 0, 0, 100, 300, Space(8) + "Liste 1", 96, Drapeaux_Lst)
      ListIconGadget(#Lst_1, 100, 0, 100, 300, Space(8) + "Liste 2", 96, Drapeaux_Lst)
      ListIconGadget(#Lst_2, 200, 0, 100, 300, Space(8) + "Liste 3", 96, Drapeaux_Lst)
      ListIconGadget(#Lst_3, 300, 0, 100, 300, Space(8) + "Liste 4", 96, Drapeaux_Lst)
      ListIconGadget(#Lst_4, 400, 0, 100, 300, Space(8) + "Liste 5", 96, Drapeaux_Lst)
  EndIf
EndProcedure
Repeat
  Evenement = WaitWindowEvent()
  Select Evenement
    Case #PB_Event_Gadget
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #Fenetre_principale
          CloseWindow(#Fenetre_principale)
          Break
      EndSelect
  EndSelect
ForEver

Re: Titre de colonnes multiples

Publié : ven. 21/févr./2020 10:27
par Marc56
Ou rester simple:
- Ne pas utiliser l'entête de colonne
- Utiliser les deux premières ligne
- Utiliser les couleurs

Code : Tout sélectionner

EnableExplicit

Enumeration 
    #Win
    #Lst
EndEnumeration

OpenWindow(#Win, 100, 100, 800, 600, "", #PB_Window_SystemMenu)
ListIconGadget(#Lst, 5, 5, 790, 690, "", 200)
AddGadgetColumn(#Lst, 1, "", 200)
AddGadgetColumn(#Lst, 2, "", 200)
AddGadgetColumn(#Lst, 3, "", 200)

AddGadgetItem(#Lst, 0, "Prix de Vente")
SetGadgetItemColor(#Lst, 0, #PB_Gadget_BackColor, #Yellow, #PB_All)

AddGadgetItem(#Lst, 1, "Article" + Chr(10) + "Détail" + Chr(10) + "Gros" + Chr(10) + "Étudiant")
SetGadgetItemColor(#Lst, 1, #PB_Gadget_BackColor, $8CE6F0, #PB_All)

Define i
For i = 1 To 10
    AddGadgetItem(#Lst, 2, "Article " + Str(i) + Chr(10) + 
                           Random(50, 10) + Chr(10) + 
                           Random(50, 10) + Chr(10) + 
                           Random(50, 10) + Chr(10) + 
                           Random(50, 10) )
Next 

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

End
Image
Bon, on ne peut pas verrouiller les deux première lignes et le titre n'est pas centré, mais souvent on passe du temps à faire de beaux effets graphiques et on se rend compte que l'utilisateur s'en fiche complètement.
Joie de la programmation agile qui remet en cause ce qu'on imagine comme top du top :mrgreen:

Oui, SetGadgetItemColor() permet de changer la couleur du fond ou du texte d'une ligne, colonne ou simple case.

:wink:

Re: Titre de colonnes multiples

Publié : sam. 22/févr./2020 10:16
par Mesa
On peut jouer avec les container, comme ça

Windows seulement

Code : Tout sélectionner

;
; This code is automatically generated by the FormDesigner.
; Manual modification is possible to adjust existing commands, but anything else will be dropped when the code is compiled.
; Event procedures needs to be put in another source file.
;

Global Window_0

Global Container_0, Text_0, Container_1, ListIcon_0


Procedure OpenWindow_0(x = 0, y = 0, width = 600, height = 400)
  Window_0 = OpenWindow(#PB_Any, x, y, width, height, "", #PB_Window_SystemMenu)
  Container_0 = ContainerGadget(#PB_Any, 200, 40, 200, 30)
  SetGadgetColor(Container_0, #PB_Gadget_BackColor,RGB(255,255,255))
  Text_0 = TextGadget(#PB_Any, -3, -3, 200, 30, "Prix de vente", #PB_Text_Center)
  SetGadgetColor(Text_0, #PB_Gadget_BackColor,RGB(255,255,255))
  CloseGadgetList()
  Container_1 = ContainerGadget(#PB_Any, 200, 71, 200, 150)
  SetGadgetColor(Container_1, #PB_Gadget_BackColor,RGB(255,255,255))
  ListIcon_0 = ListIconGadget(#PB_Any, -3, -3, 203, 153, "Artcle", 100, #PB_ListIcon_GridLines| #LVS_NOCOLUMNHEADER)
  AddGadgetColumn(ListIcon_0, 1, "Détails", 100)
  AddGadgetColumn(ListIcon_0, 2, "Gros", 100)
  SetGadgetColor(ListIcon_0, #PB_Gadget_BackColor,RGB(255,255,255))
  CloseGadgetList()
  
  ResizeGadget(Text_0,GadgetWidth(Container_0)/2 - GadgetWidth(Text_0, #PB_Gadget_RequiredSize)/2,
               GadgetHeight(Container_0)/2 - GadgetHeight(Text_0, #PB_Gadget_RequiredSize)/2,
               GadgetWidth(Text_0, #PB_Gadget_RequiredSize),
               GadgetHeight(Text_0,#PB_Gadget_RequiredSize))
 AddGadgetItem(ListIcon_0, 0, "Article"+Chr(10)+"Détail"+Chr(10)+"Gros")
    
EndProcedure

Procedure Window_0_Events(event)
  Select event
    Case #PB_Event_CloseWindow
      ProcedureReturn #False

    Case #PB_Event_Menu
      Select EventMenu()
      EndSelect

    Case #PB_Event_Gadget
      Select EventGadget()
      EndSelect
  EndSelect
  ProcedureReturn #True
EndProcedure

OpenWindow_0()

Repeat
  event=WaitWindowEvent()
  
  Until event=#PB_Event_CloseWindow

  
Multiplateforme (probablement)

Code : Tout sélectionner

;
; This code is automatically generated by the FormDesigner.
; Manual modification is possible to adjust existing commands, but anything else will be dropped when the code is compiled.
; Event procedures needs to be put in another source file.
;

Global Window_0

Global Container_0, Text_0, Container_1, ListIcon_0


Procedure OpenWindow_0(x = 0, y = 0, width = 600, height = 400)
  Window_0 = OpenWindow(#PB_Any, x, y, width, height, "", #PB_Window_SystemMenu)
  Container_0 = ContainerGadget(#PB_Any, 200, 40, 200, 30)
  SetGadgetColor(Container_0, #PB_Gadget_BackColor,RGB(255,255,255))
  Text_0 = TextGadget(#PB_Any, -3, -3, 200, 30, "Prix de vente", #PB_Text_Center)
  SetGadgetColor(Text_0, #PB_Gadget_BackColor,RGB(255,255,255))
  CloseGadgetList()
  Container_1 = ContainerGadget(#PB_Any, 200, 71, 200, 150)
  SetGadgetColor(Container_1, #PB_Gadget_BackColor,RGB(255,255,255))
  ListIcon_0 = ListIconGadget(#PB_Any, -3, -12-GadgetHeight(Text_0, #PB_Gadget_RequiredSize)/2, 203, 153+12, "Artcle", 100, #PB_ListIcon_GridLines)
  AddGadgetColumn(ListIcon_0, 1, "Détails", 100)
  AddGadgetColumn(ListIcon_0, 2, "Gros", 100)
  SetGadgetColor(ListIcon_0, #PB_Gadget_BackColor,RGB(255,255,255))
  CloseGadgetList()
  
  ResizeGadget(Text_0,GadgetWidth(Container_0)/2 - GadgetWidth(Text_0, #PB_Gadget_RequiredSize)/2,
               GadgetHeight(Container_0)/2 - GadgetHeight(Text_0, #PB_Gadget_RequiredSize)/2,
               GadgetWidth(Text_0, #PB_Gadget_RequiredSize),
               GadgetHeight(Text_0,#PB_Gadget_RequiredSize))
 AddGadgetItem(ListIcon_0, 0, "Article"+Chr(10)+"Détail"+Chr(10)+"Gros")
    
EndProcedure

Procedure Window_0_Events(event)
  Select event
    Case #PB_Event_CloseWindow
      ProcedureReturn #False

    Case #PB_Event_Menu
      Select EventMenu()
      EndSelect

    Case #PB_Event_Gadget
      Select EventGadget()
      EndSelect
  EndSelect
  ProcedureReturn #True
EndProcedure

OpenWindow_0()

Repeat
  event=WaitWindowEvent()
  
  Until event=#PB_Event_CloseWindow

  
M.