Bonjour à tous,
j'aimerais créer un ListIconGadget dont la hauteur varierait selon le nombre de lignes à afficher.
Cela est-il réalisable ?
Je vous remercie tous à l'avance.
[Résolu] Paramétrer la hauteur d'un ListIconGadget
[Résolu] Paramétrer la hauteur d'un ListIconGadget
Dernière modification par Micoute le lun. 03/juin/2013 13:08, modifié 1 fois.
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 !
Un homme doit être poli, mais il doit aussi être libre !
Re: Paramétrer la hauteur d'un ListIconGadget
Salut Micoute
Oui Oui c'est possible.
Oui Oui c'est possible.
Re: Paramétrer la hauteur d'un ListIconGadget
Bonjour et merci mon cher MLD et ravi d'apprendre que c'est possible, tu veux encore que je transpire ?MLD a écrit :Salut Micoute
Oui Oui c'est possible.
Comme un exemple vaut mille explications, je joints mon programme:
Code : Tout sélectionner
DisableDebugger
; Enumerations / DataSections
Enumeration
#Fenetre_principale
#Base_de_donnees
EndEnumeration
Enumeration
#Liste
#Bouton_Quitter
EndEnumeration
Structure Rdv
Quand.s
Qui.s
AvecQui.s
Ville.s
Heure.s
Duree.s
Note.s
EndStructure
Global NewList Rdv.Rdv()
;Application
Global TitreApplication.s="Planning"
;Base_de_donnees
Global Base_de_donnees.s = "D:\Programmation\Compil\Planning3.Sqlite"
Global Table.s = "Rdv"
Global ReqSql.s = ""
; Déclarer les variables
Global.s Date_Quand, Qui, AvecQui, Ville, Heure, Duree, Note
UseJPEGImageDecoder()
UseSQLiteDatabase()
Procedure CentrerTitreFenetre(TitreFenetre.s, NumeroFenetre)
Protected NCM.NonClientMetrics, ValeurRetournee, DcSauve, AncObjet
Protected hFonteConsole, HdcCourant, TailleTs.SIZE
Protected Espace_a_remplir, RectFenetre.Rect, NbrEspaceDemandes
NCM\cbSize = SizeOf(NCM)
ValeurRetournee = SystemParametersInfo_(#SPI_GETNONCLIENTMETRICS, 0, @NCM, 0)
hFonteConsole = CreateFontIndirect_(@NCM\lfCaptionFont)
If hFonteConsole <> 0
HdcCourant = GetDC_(WindowID(NumeroFenetre))
DcSauve = SaveDC_(HdcCourant)
AncObjet = SelectObject_(HdcCourant, hFonteConsole)
ValeurRetournee = GetWindowRect_(WindowID(NumeroFenetre), @RectFenetre)
ValeurRetournee = GetTextExtentPoint32_(HdcCourant, @TitreFenetre, Len(TitreFenetre), @TailleTs)
Espace_a_remplir = RectFenetre\right - RectFenetre\left - 4 * NCM\iCaptionWidth - TailleTs\cx
ValeurRetournee = GetTextExtentPoint32_(HdcCourant, " ", 1, @TailleTs)
NbrEspaceDemandes = (Espace_a_remplir / TailleTs\cx)/2
If NbrEspaceDemandes > 0
TitreFenetre = Space(NbrEspaceDemandes) + TitreFenetre
EndIf
EndIf
ValeurRetournee = SetWindowText_(WindowID(NumeroFenetre), TitreFenetre)
ValeurRetournee = RestoreDC_(HdcCourant, DcSauve) ; mettre en ordre
ValeurRetournee = DeleteObject_(hFonteConsole)
ReleaseDC_(WindowID(NumeroFenetre), HdcCourant)
EndProcedure
Procedure Erreurs(Valeur.l)
Select Valeur
Case 0 ;Erreur dans la création de la base de données
MessageRequester(TitreApplication,"Erreur durant la création de la base de données")
Case 1 ;Base pas accessible
MessageRequester(TitreApplication,"La base de donnée n'est pas accessible "+DatabaseError())
Case 2 ;Erreur lors de l'execution de la requete
MessageRequester(TitreApplication,"Erreur durant l'exécution de la requete "+DatabaseError())
EndSelect
;Sortie de l'application
End
EndProcedure
Procedure DatabaseOpen()
If OpenDatabase(#Base_de_donnees, Base_de_donnees, "", "", #PB_Database_SQLite)
Else
Erreurs(1)
End
EndIf
EndProcedure
Procedure ViewRecord()
ReqSql = "SELECT * FROM " + Table
If DatabaseQuery(#Base_de_donnees, ReqSql) <> 0
While NextDatabaseRow(#Base_de_donnees)
AddElement(Rdv())
Rdv()\Quand = GetDatabaseString(#Base_de_donnees, 1)
Rdv()\Qui = GetDatabaseString(#Base_de_donnees, 2)
Rdv()\AvecQui = GetDatabaseString(#Base_de_donnees, 3)
Rdv()\Ville = GetDatabaseString(#Base_de_donnees, 4)
Rdv()\Heure = GetDatabaseString(#Base_de_donnees, 5)
;EndIf
Wend
FinishDatabaseQuery(#Base_de_donnees)
Else
Erreurs(2)
EndIf
EndProcedure
Procedure Ouvrir_Fenetre_principale()
If OpenWindow(#Fenetre_principale, 0, 0, 675, 330, "", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
CentrerTitreFenetre(".:LISTE RDV Par Michel Lye © 30/05/2013:.", #Fenetre_principale)
ListIconGadget(#Liste, 0, 0, WindowWidth(#Fenetre_principale), WindowHeight(#Fenetre_principale) - 80, "Nom", 200,
#PB_ListIcon_FullRowSelect)
AddGadgetColumn(#Liste, 1,"Rdv le", 70)
AddGadgetColumn(#Liste, 2,"avec", 200)
AddGadgetColumn(#Liste, 3, "où", 150)
AddGadgetColumn(#Liste, 4, "heure", 50)
ButtonGadget(#Bouton_Quitter, (WindowWidth(#Fenetre_principale)/2) - 40, 280, 80, 30, "Quitter")
EndIf
EndProcedure
;Création de la base de données si inexistant
If Not ReadFile(#Base_de_donnees, Base_de_donnees)
MessageRequester("ATTENTION", "Votre base de données" + Base_de_donnees + #CRLF$ + "n'existe pas !", #MB_ICONWARNING)
Else
CloseFile(#Base_de_donnees)
EndIf
;Ouverture de la base de données
DatabaseOpen()
;Lire la base de données
ViewRecord()
Ouvrir_Fenetre_principale()
;Analyser les données et les ajouter à la liste si elle correspondent à nos critères
ForEach rdv()
Aujourdhui = Date(Year(Date()), Month(Date()), Day(Date()), 0, 0, 0)
difference =(Date(Val(Right(Rdv()\Quand,4)), Val(Mid(Rdv()\Quand, 3, 2)), Val(Left(Rdv()\Quand,2)), 0, 0, 0)-Aujourdhui)/86400
If difference > 0
Texte.s = Rdv()\Qui + #LF$ + Left(Rdv()\Quand, 2) + "/" + Mid(Rdv()\Quand, 3, 2) + "/" + Right(Rdv()\Quand, 4) + #LF$ +
Rdv()\AvecQui + #LF$ + Rdv()\Ville + #LF$ + Left(Rdv()\Heure, 2)+" h " + Right(Rdv()\Heure, 2)
AddGadgetItem(#Liste, -1, Texte)
EndIf
Next
;- Boucle
;{- Boucle d'événements
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = #Bouton_Quitter
CloseWindow(#Fenetre_principale)
Break
EndIf
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Fenetre_principale
CloseWindow(#Fenetre_principale)
Break
EndIf
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 !
Un homme doit être poli, mais il doit aussi être libre !
Re: Paramétrer la hauteur d'un ListIconGadget
bonjour Micoute
tu as la solution du resizegadget
Cordialement
tu as la solution du resizegadget
Cordialement
Code : Tout sélectionner
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = #Bouton_Quitter
CloseWindow(#Fenetre_principale)
Break
EndIf
Case #PB_Event_SizeWindow ;ajout de hpixel suivant hauteur police
ResizeGadget(#Liste,#PB_Ignore,#PB_Ignore,#PB_Ignore,GadgetHeight(#Liste)+hpixel)
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Fenetre_principale
CloseWindow(#Fenetre_principale)
Break
EndIf
EndSelect
ForEver
Re: Paramétrer la hauteur d'un ListIconGadget
Voilà voilàkernadec a écrit :bonjour Micoute
tu as la solution du resizegadget
Cordialement
~~~~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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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
Re: Paramétrer la hauteur d'un ListIconGadget
Merci beaucoup à tous,
Merci encore.
Je crois qu'il va falloir que j'arrête la programmation, car j'oublie les bases !tu as la solution du resizegadget
Merci encore.
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 !
Un homme doit être poli, mais il doit aussi être libre !