Taille des colonnes plus grande que la largeur de table avec ascenseur automatique
Personnalisation des couleurs des ligne pair et impair
Personnalisation des couleurs des titre de colonnes
Personnalisation de la hauteur des lignes
Colonne Visible/invisible/ Editable
L'utilisateur peut redimensionner les colonnes
Vers: 1.02 édition directe dans la table
Fonctionnement:
Code : Tout sélectionner
Table::Create(ID_Table,Title$,X,Y,W,Nb_Line) ;--> pour créer la table
Table::AddColumn(ID_Table,W,ID_Column,Title$,Etat=#EtatVisible,Type=#StringTP) ;-->pour ajouter une colonne Type na actuellement aucune utilité
Table::AddLine(ID_Table,Value$); --> ajouter les data séparer par chr(9)
Table::GetDataTable(ID_Table,ID_Column) ;--> récupérer le data de la colonne de la ligne sélectionnnée
Table::SetLinePairImpairColor(ID_Table,ColorPair,ColorImpair) ;--> Modifier les couleurs pair et impair
Table::SetColumColor(ID_Table,ColorBack,ColorTxt) ;--> Modifier les couleurs des titre de colonne
Table::SetRibbonColor(ID_Table,ColorBack,ColorTxt) ;--> Modifier la couleur du bandeau de sélection
Table::SetLigneColor(ID_Table,N_line,ColorTxt) ;--> modifier la couleur du texte du ligne
Table::SetLineHeignt(ID_Table,Height) ;--> Modifier la hauteru des ligne
Table::DrawTable(ID_Table,Decalage=0,PremiereLigne=1) --> Dessiner la table Decalage et premiere ligne sont utiliser par les ascenseurs et ne doivent pas être renseigner
Table::GereEvent(Event,ID_Table) ;--> a placer dans la boucle événementielle après #PB_Event_Gadget
;AJOUT:
Table:GetLineSelected(ID_Table) ;--> retourne le Num de ligne sélectionnée
Table::SelectLine(ID_Table,N_Line) ;--> sélectionner un e ligne
Table::DeleteLine(ID_Table,N_Ligne) ;--> supprimer une ligne
Code : Tout sélectionner
XIncludeFile "Table.pbi"
Enumeration
#Id_Cli
#Nom_Cli
#Code_po_Cli
#Localite_Cli
EndEnumeration
OpenWindow(0,0,0,1200,800,"Teste",#PB_Window_SystemMenu)
Table::Create(0,"Client",50,0,550,5)
Table::AddColumn(0,400,#Id_Cli,"ID",Table::#EtatInvible)
Table::AddColumn(0,300,#Nom_Cli,"Nom")
Table::AddColumn(0,100,#Code_po_Cli,"Code postal")
Table::AddColumn(0,150,#Localite_Cli,"Localite")
Table::AddLine(0,"1"+Chr(9)+"Jean Durant"+Chr(9)+"4800"+Chr(9)+"Ville Noir")
Table::AddLine(0,"2"+Chr(9)+"Pierre Dubon"+Chr(9)+"5000"+Chr(9)+"Trou Perdu")
Table::AddLine(0,"3"+Chr(9)+"Henry Bouda"+Chr(9)+"6000"+Chr(9)+"Rixe en Puit")
Table::AddLine(0,"4"+Chr(9)+"Marcel Dubout"+Chr(9)+"7000"+Chr(9)+"Bahoba")
Table::DrawTable(0)
Repeat
Event=WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Table::GereEvent(EventGadget(),0)
EndSelect
Until Event=#PB_Event_CloseWindow
Vous donnera ceci
Fichier à inclure
1.0
https://www.mediafire.com/?ctjicbc3k9j30yd
1.01
Correction de bug
https://www.mediafire.com/?5566ukxfo85n5ec
1.02
On peut saisir directement dans la table avec un clic droit. La colonne doit avoir le type d'état Table::#EtatActif pour être éditable
https://www.mediafire.com/?uqli77wbfdmg9e1
1.03
Correction de bug
https://www.mediafire.com/?ik6gu6ytgtodx1g
1.04
https://www.mediafire.com/?ye3b98bkv0217d5
Ajout d'une nouvelle ligne si clic sur ligne vide
Code : Tout sélectionner
Table::GetData(ID_Table,N_Line,N_Column) ;--> Donne le data d'une colonne de ligne
Table::GetNewLine(ID_Table);--> Renvoie le numéro de la nouvelle ligne
https://www.mediafire.com/?nq1c7c8atuoaqdi
Ajout d'une combo box et edition directe dans la table, les item sont séparé par / et l'item actif est pointé par @
Exemple:
Code : Tout sélectionner
XIncludeFile "Table.pbi"
Enumeration
#Id_Cli
#Nom_Cli
#Code_po_Cli
#Localite_Cli
EndEnumeration
OpenWindow(0,0,0,1200,800,"Teste",#PB_Window_SystemMenu)
ButtonGadget(1,700,50,100,30,"Delete")
Table::Create(0,"Client",50,0,550,10)
Table::AddColumn(0,400,#Id_Cli,"ID",Table::#EtatInvible)
Table::AddColumn(0,300,#Nom_Cli,"Nom",Table::#EtatActif)
Table::AddColumn(0,100,#Code_po_Cli,"Code postal",Table::#EtatActif,Table::#ComboTP)
Table::AddColumn(0,150,#Localite_Cli,"Localite",Table::#EtatActif)
Table::AddLine(0,"1"+Chr(9)+"Jean Durant"+Chr(9)+"60/70/80@/90"+Chr(9)+"Ville Noir")
Table::AddLine(0,"2"+Chr(9)+"Pierre Dubon"+Chr(9)+"60/70/80/90@"+Chr(9)+"Trou Perdu")
Table::AddLine(0,"3"+Chr(9)+"Henry Bouda"+Chr(9)+"60@/70/80/90"+Chr(9)+"Rixe en Puit")
Table::AddLine(0,"4"+Chr(9)+"Marcel Dubout"+Chr(9)+"60/70@/80/90"+Chr(9)+"Bahoba")
Table::SelectLine(0,1)
Table::DrawTable(0)
Repeat
Global N_Ligne
Event=WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Table::GereEvent(EventGadget(),0)
Select EventGadget()
Case 1
N_Ligne=Table::GetLineSelected(0)
If N_Ligne<>-1
Debug Table::GetData(0,N_Ligne,#Nom_Cli)
EndIf
EndSelect
EndSelect
Until Event=#PB_Event_CloseWindow