Titre de colonnes multiples

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
omega
Messages : 636
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Titre de colonnes multiples

Message 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
Win7 (x64)
Pb 6.03 LTS
Avatar de l’utilisateur
Naheulf
Messages : 193
Inscription : dim. 10/mars/2013 22:22
Localisation : France

Re: Titre de colonnes multiples

Message par Naheulf »

Bonsoir,
Si j'ai bien compris tu cherches à faire un truc comme ça ?
Image
Avatar de l’utilisateur
Ar-S
Messages : 9546
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Titre de colonnes multiples

Message 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.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
omega
Messages : 636
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: Titre de colonnes multiples

Message 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
Win7 (x64)
Pb 6.03 LTS
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Titre de colonnes multiples

Message 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...
Avatar de l’utilisateur
Micoute
Messages : 2585
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Titre de colonnes multiples

Message 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
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Marc56
Messages : 2199
Inscription : sam. 08/févr./2014 15:19

Re: Titre de colonnes multiples

Message 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:
Mesa
Messages : 1133
Inscription : mer. 14/sept./2011 16:59

Re: Titre de colonnes multiples

Message 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.
Répondre