Maitriser ListIconGadget
Maitriser ListIconGadget
Bonjour.
J'utilise ListIconGadget pour stocker des valeurs (10 colonnes sur 7 lignes).
Cette méthode me permet de les visualiser en direct lors de changement.
Mon problème consiste à pouvoir changer individuellement une valeur.
Je souhaite pouvoir gérer en ligne et colonne chaque valeur individuellement.
Pour modifier modifier une valeur, j'efface tout et je reconstruit le gadget.
Merci pour votre aide.
J'utilise ListIconGadget pour stocker des valeurs (10 colonnes sur 7 lignes).
Cette méthode me permet de les visualiser en direct lors de changement.
Mon problème consiste à pouvoir changer individuellement une valeur.
Je souhaite pouvoir gérer en ligne et colonne chaque valeur individuellement.
Pour modifier modifier une valeur, j'efface tout et je reconstruit le gadget.
Merci pour votre aide.
Re: Maitriser ListIconGadget
bonjour Puredev
j'ai bricolé un truc comme ça a partir de plusieurs codes sources,
Mais il n'est que sous Wndows car il utilise les APIs, Et pour cette raison
si tu utilise la version démo de PureBasic, tu ne pourras pas faire fonctionner ce code.
Sinon voilà le lien: http://www.purebasic.fr/french/viewtopi ... =6&t=12504
Cordialement
j'ai bricolé un truc comme ça a partir de plusieurs codes sources,
Mais il n'est que sous Wndows car il utilise les APIs, Et pour cette raison
si tu utilise la version démo de PureBasic, tu ne pourras pas faire fonctionner ce code.
Sinon voilà le lien: http://www.purebasic.fr/french/viewtopi ... =6&t=12504
Cordialement
Dernière modification par kernadec le sam. 25/janv./2014 11:54, modifié 1 fois.
Re: Maitriser ListIconGadget
Merci pour ta réponse.
J'ai chargé le fichier mis en lien.
Après le copier coler classique, il délivre un message d'erreur, et ne s'execute pas.
Ce code est très long, et sans execution difficile à analyser.
Désolé, mais mon pb reste entier.
Comment changer une seule valeur dans ListIconGadget sans devoir réécrire la totalité du contenu?
Encore merci d'avoir pris le temps de me répondre.
J'ai chargé le fichier mis en lien.
Après le copier coler classique, il délivre un message d'erreur, et ne s'execute pas.
Ce code est très long, et sans execution difficile à analyser.
Désolé, mais mon pb reste entier.
Comment changer une seule valeur dans ListIconGadget sans devoir réécrire la totalité du contenu?
Encore merci d'avoir pris le temps de me répondre.
Re: Maitriser ListIconGadget
bonjour
utilise les cliques souris sur la grille
dans le code le copier coller fonctionne
quand on édite une case on utilise le copier avec le clique droit et pareil pour le coller.
ce code était pour la version PB 4.60.
Mais la version PB 5.20 ma fait découvrir une petite erreur de tabulation
dans l'ajout d'une ligne pour la sauvegarde du fichier seimes
c'est corrigé avec une petite mise à jour du code pour PB-521
Cordialement
[réédite]
double clique dans une cellule de la grille du code, tu verras il édite
ah j'oubliais aussi, il permute les colonne toujours avec la souris et fait le tri des colonnes aussi
mais les structures de ce code sont faites pour gérer la programmation de leurs contenu?
Cordialement
utilise les cliques souris sur la grille
dans le code le copier coller fonctionne
quand on édite une case on utilise le copier avec le clique droit et pareil pour le coller.
ce code était pour la version PB 4.60.
Mais la version PB 5.20 ma fait découvrir une petite erreur de tabulation
dans l'ajout d'une ligne pour la sauvegarde du fichier seimes
c'est corrigé avec une petite mise à jour du code pour PB-521
Cordialement
[réédite]
double clique dans une cellule de la grille du code, tu verras il édite
ah j'oubliais aussi, il permute les colonne toujours avec la souris et fait le tri des colonnes aussi
mais les structures de ce code sont faites pour gérer la programmation de leurs contenu?
Cordialement
Dernière modification par kernadec le sam. 25/janv./2014 12:31, modifié 1 fois.
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Maitriser ListIconGadget
Bonjour PureDev et vu que c'est ton premier message, binvenue sur ce forum. Je viens de tester le code de Kernadec et il fonctionne trés bien.
As tu une version de démonstration ?
As tu une version de démonstration ?
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Maitriser ListIconGadget
Bonjour,
Le code de Kernadec fonctionne très bien. Miles excuses.
Juste problème débogage du à l'antivirus.
Je suis toujous demandeur d'un code plus concis me permettant de changer une valeur dans ListIconGadget,
en atteignant chaque cellule en ligne colonne (comme dans VBA).
Cordialement, dans l'attente de vos réponses.
Le code de Kernadec fonctionne très bien. Miles excuses.
Juste problème débogage du à l'antivirus.
Je suis toujous demandeur d'un code plus concis me permettant de changer une valeur dans ListIconGadget,
en atteignant chaque cellule en ligne colonne (comme dans VBA).
Cordialement, dans l'attente de vos réponses.
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Maitriser ListIconGadget
Tu veux pouvoir atteindre une cellule spécifique par programmation ?
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Maitriser ListIconGadget
Oui, c'est exactement cela.
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Maitriser ListIconGadget
Un petit include que tu enregistrera sous le nom de EditListIcon.pbiPureDev a écrit :Oui, c'est exactement cela.
Code : Tout sélectionner
;'Edit ListIcon'.
; Stephen Rodriguez.
; Created with Purebasic 4.02 for Windows (date: May 2007).
; Maintained with PB 4.4.
; Platforms: Windows (tested on XP and Vista 32-bit).
; Licence: DAYLike
; (Do As You Like with it! - No Warranties!)
; A credit to myself, whilst nice, is not absolutely necessary.
;*******************************************************************************************
;NOTES.
;
; 1) Register a listicon gadget to have editable cells by using the command SetListIconEditable(listID).
; You MUST set up such listicons to have a column zero of zero width.
; 2) Cells are made editable by intercepting double-clicks, setting the #LVS_EDITLABELS style,
; repositioning the edit control which Windows uses to edit the labels in column zero and copying
; the resulting text to the listicon cell.
; 3) Cells can also be edited by means of the command EditCell().
;*******************************************************************************************
#LVM_SUBITEMHITTEST = #LVM_FIRST+57
#LVM_GETSUBITEMRECT = #LVM_FIRST+56
#LVM_GETHEADER = #LVM_FIRST+31
#HDI_ORDER = $80
#EC_RIGHTMARGIN = 2
EnableExplicit
CompilerIf Defined(HDITEM, #PB_Structure) = 0
Structure HDITEM
mask.l
cxy.l
pszText.i
hbm.l
cchTextMax.l
fmt.l
lParam.i
iImage.l
iOrder.l
EndStructure
CompilerEndIf
Structure _LIEdit
listOldProc.i
editHwnd.i
item.i
subitem.i
x.i
y.i
cx.i
cy.i
osVersion.b
blnIsXPThemes.b
EndStructure
Structure _LIEditGlobals
osVersion.b
blnIsXPThemes.b
EndStructure
Declare.i SetListIconEditable(listID)
Declare _LIEEditCell(*liedit._LIEdit, hWnd)
Declare.i _LIEwinProc(hWnd, uMsg, wParam, lParam)
Declare.i _LIEListProc(hWnd, uMsg, wParam, lParam)
Declare.i _LIEeditProc(hWnd, uMsg, wParam, lParam)
Global _LIEditGlobals._LIEditGlobals
;Returns zero if an error.
Procedure.i SetListIconEditable(listID)
Protected result, parenthWnd, *mem._LIEdit, hWnd, dlv.DLLVERSIONINFO, func, lib
;Set globals if appropriate.
If _LIEditGlobals\osVersion = 0
_LIEditGlobals\osVersion = OSVersion()
dlv\cbSize=SizeOf(DLLVERSIONINFO)
lib=OpenLibrary(#PB_Any,"comctl32.dll")
If lib
func=GetFunction(lib,"DllGetVersion")
If func
CallFunctionFast(func, dlv)
If dlv\dwMajorVersion >=6
_LIEditGlobals\blnIsXPThemes = #True
EndIf
EndIf
CloseLibrary(lib)
EndIf
EndIf
;Check that listID references a valid listicon.
If IsGadget(listID) And GadgetType(listID)=#PB_GadgetType_ListIcon
hWnd = GadgetID(listID)
;Is the listicon already registered?
If GetProp_(hWnd, "_LIEdit")=0 ;No!
;Allocate enough memory for a _LIEdit structure.
*mem=AllocateMemory(SizeOf(_LIEdit))
If *mem
SetWindowLong_(hWnd, #GWL_STYLE, GetWindowLong_(hWnd, #GWL_STYLE)&~#LVS_EDITLABELS)
;Set the fields of the _LIEedit structure.
*mem\listOldProc = SetWindowLong_(hWnd, #GWL_WNDPROC, @_LIEListProc())
;Store a pointer to this structure in a window property ofthe listicon.
SetProp_(hWnd, "_LIEdit", *mem)
;Subclass the parent window if not already through another listicon.
parenthWnd=GetParent_(hWnd)
If GetProp_(parenthWnd, "_LIEditOldProc")=0 ;No!
SetProp_(parenthWnd, "_LIEditOldProc", SetWindowLong_(parenthWnd, #GWL_WNDPROC, @_LIEwinProc()))
EndIf
result=1
EndIf
EndIf
EndIf
ProcedureReturn result
EndProcedure
;Sets the specified cell to be edited.
Procedure EditCell(listID, item, subitem)
Protected hWnd, *liedit._LIEdit, numrows, numcols
;Check that listID references a valid listicon.
If IsGadget(listID) And GadgetType(listID)=#PB_GadgetType_ListIcon
;Check that the listicon is registered as editable.
hWnd = GadgetID(listID)
*liedit = GetProp_(hWnd, "_LIEdit")
If *liedit
;Check parameters are in range.
numrows = CountGadgetItems(listID)
numcols = SendMessage_(SendMessage_(hWnd,#LVM_GETHEADER,0,0), #HDM_GETITEMCOUNT,0,0)
If item>=0 And item < numrows And subitem>0 And subitem < numcols
*liedit\item = item
*liedit\subitem = subitem
SetActiveGadget(listID)
_LIEEditCell(*liedit, hWnd)
EndIf
EndIf
EndIf
EndProcedure
Procedure JustifyColumn(Gadget.l, Column.i, Alignment.i)
Protected ListIconColumn.LV_COLUMN
ListIconColumn\mask = #LVCF_FMT
ListIconColumn\fmt = Alignment
SendMessage_(GadgetID(Gadget), #LVM_SETCOLUMN, Column, @ListIconColumn)
EndProcedure
Procedure _LIEEditCell(*liedit._LIEdit, hWnd)
Protected rc.RECT, clientrc.RECT, numCols, headerWnd
Protected Dim cols.l(0), i, blnFoundZeroColumn
Protected hdi.HDITEM
;Vista themes requires a cheat because it automatically scrolls the listicon to bring the item being edited
;into view.
If _LIEditGlobals\osVersion >= #PB_OS_Windows_Vista And _LIEditGlobals\blnIsXPThemes
headerWnd = SendMessage_(hWnd,#LVM_GETHEADER,0,0)
numCols = SendMessage_(headerWnd, #HDM_GETITEMCOUNT,0,0)
Dim cols.l(numCols-1)
SendMessage_(hWnd, #LVM_GETCOLUMNORDERARRAY, numCols, @cols())
For i = 0 To numcols-1
If cols(i)
If cols(i) = *liedit\subItem
Break
EndIf
Else
blnFoundZeroColumn = 1
EndIf
Next
i-blnFoundZeroColumn
Dim cols(0)
With hdi
\mask = #HDI_ORDER
\iOrder = i
EndWith
SendMessage_(headerWnd, #HDM_SETITEM, 0, hdi)
EndIf
;Scroll the listicon if the clicked cell is not entirely visible
;*****IF YOU WISH TO RESTRICT WHICH CELLS CAN BE EDITED, THEN PERFORM THE NECESSARY CHECKS HERE
;*****ON THE VALUES OF *liedit\item and *liedit\subitem (WHICH INDICATE WHICH CELL IS ABOUT
;*****TO BE EDITED) AND RUN THE FOLLOWING LINES FOR THOSE CELLS WHICH ARE TO BE EDITED.
rc\top = *liedit\subitem
rc\left = #LVIR_BOUNDS
SendMessage_(hWnd, #LVM_GETSUBITEMRECT, *liedit\item, rc)
GetClientRect_(hWnd, clientrc)
If rc\left < 0 Or (rc\right-rc\left)>=clientrc\right
SendMessage_(hWnd, #LVM_SCROLL,rc\left,0)
Else
If rc\right > clientrc\right
SendMessage_(hWnd, #LVM_SCROLL,rc\right-clientrc\right,0)
EndIf
EndIf
SetWindowLong_(hWnd, #GWL_STYLE, GetWindowLong_(hWnd, #GWL_STYLE)|#LVS_EDITLABELS)
SendMessage_(hWnd, #LVM_EDITLABEL, *liedit\item, 0)
EndProcedure
;Window proc of the ListIcon parent window.
Procedure.i _LIEwinProc(hWnd, uMsg, wParam, lParam)
Protected result, oldwinproc, *nmh. NMHDR, listhWnd, edithWnd, *liedit._LIEdit, *lvd.LV_DISPINFO, rc.RECT
Protected hdi.HDITEM, headerWnd
Static celltext$
;Retrieve the address of the old proc.
oldwinproc = GetProp_(hWnd, "_LIEditOldProc")
Select uMsg
Case #WM_NOTIFY
*nmh=lParam
Select *nmh\code
Case #LVN_BEGINLABELEDIT
listhWnd = *nmh\hwndFrom
;Retrieve the address of the LIEdit structure.
*liedit = GetProp_(listhWnd, "_LIEdit")
If *liedit ;Good to go!
*liedit\editHwnd=0
;Get the handle of the edit control used to edit the label.
edithWnd = SendMessage_(listhWnd, #LVM_GETEDITCONTROL,0,0)
;Subclass the edit control.
SetProp_(edithWnd, "_LIEditOldProc", SetWindowLong_(edithWnd, #GWL_WNDPROC, @_LIEeditProc()))
;Set text.
celltext$=GetGadgetItemText(*nmh\idFrom, *liedit\item, *liedit\subitem)
SendMessage_(edithWnd, #WM_SETTEXT, 0, celltext$)
SetGadgetItemText(*nmh\idFrom, *liedit\item, "",*liedit\subitem)
;Get bounding rectangle.
rc\top = *liedit\subitem
rc\left = #LVIR_BOUNDS
SendMessage_(listhWnd, #LVM_GETSUBITEMRECT, *liedit\item, rc)
*liedit\x=rc\left
*liedit\y=rc\top
*liedit\cx=SendMessage_(listhWnd, #LVM_GETCOLUMNWIDTH, *liedit\subitem,0)
*liedit\cy=rc\bottom-rc\top
EndIf
Case #LVN_ENDLABELEDIT
listhWnd = *nmh\hwndFrom
;Retrieve the address of the LIEdit structure.
*liedit = GetProp_(listhWnd, "_LIEdit")
If *liedit ;Good to go!
*lvd = lParam
If *lvd\item\pszText
SetGadgetItemText(*nmh\idFrom, *liedit\item, PeekS(*lvd\item\pszText), *liedit\subitem)
Else
SetGadgetItemText(*nmh\idFrom, *liedit\item, celltext$, *liedit\subitem)
EndIf
SetWindowLong_(listhWnd, #GWL_STYLE, GetWindowLong_(listhWnd, #GWL_STYLE)&~#LVS_EDITLABELS)
If _LIEditGlobals\osVersion >= #PB_OS_Windows_Vista And _LIEditGlobals\blnIsXPThemes
With hdi
\mask = #HDI_ORDER
\iOrder = 0
EndWith
headerWnd = SendMessage_(listhWnd,#LVM_GETHEADER,0,0)
SendMessage_(headerWnd, #HDM_SETITEM, 0, hdi)
EndIf
EndIf
Default
result=CallWindowProc_(oldwinproc, hWnd, uMsg, wParam, lParam)
EndSelect
Case #WM_NCDESTROY
result=CallWindowProc_(oldwinproc, hWnd, uMsg, wParam, lParam)
RemoveProp_(hWnd, "_LIEditOldProc")
Default
result=CallWindowProc_(oldwinproc, hWnd, uMsg, wParam, lParam)
EndSelect
ProcedureReturn result
EndProcedure
;Window proc of the ListIcon.
Procedure.i _LIEListProc(hWnd, uMsg, wParam, lParam)
Protected result, *liedit._LIEdit, PInfo.LVHITTESTINFO, *nmHEADER.HD_NOTIFY
;Retrieve the address of the LIEdit structure.
*liedit = GetProp_(hWnd, "_LIEdit")
Select uMsg
Case #WM_NOTIFY
*nmHEADER = lParam
Select *nmHEADER\hdr\code
Case #HDN_BEGINTRACK, #HDN_BEGINTRACKW ;Prevent column 0 from being resized.
If *nmHEADER\iItem=0
result=1
EndIf
Case #HDN_ENDTRACK, #HDN_ENDTRACKW
InvalidateRect_(hWnd,0,1)
Default
result=CallWindowProc_(*liedit\listOldProc, hWnd, uMsg, wParam, lParam)
EndSelect
Case #WM_LBUTTONDBLCLK
;Identify the clicked item
PInfo\pt\x = lParam&$ffff
PInfo\pt\y = (lParam>>16)&$ffff
SendMessage_(hwnd, #LVM_SUBITEMHITTEST, 0, PInfo)
If PInfo\iItem <> -1 ;A valid cell was clicked.
*liedit\item = PInfo\iItem
*liedit\subitem = PInfo\iSubItem
_LIEEditCell(*liedit, hWnd)
EndIf
Case #WM_NCDESTROY
result=CallWindowProc_(*liedit\listOldProc, hWnd, uMsg, wParam, lParam)
RemoveProp_(hWnd, "_LIEdit")
FreeMemory(*liedit)
Default
result=CallWindowProc_(*liedit\listOldProc, hWnd, uMsg, wParam, lParam)
EndSelect
ProcedureReturn result
EndProcedure
;Window proc of the edit control.
Procedure.i _LIEeditProc(hWnd, uMsg, wParam, lParam)
Protected result, oldwinproc, *liedit._LIEdit, *wpos.WINDOWPOS
;Retrieve the address of the old proc.
oldwinproc = GetProp_(hWnd, "_LIEditOldProc")
;Retrieve the address of the LIEdit structure.
*liedit = GetProp_(GetParent_(hWnd), "_LIEdit")
Select uMsg
Case #WM_ERASEBKGND
;A hack in order to clear the default selection of characters.
result=CallWindowProc_(oldwinproc, hWnd, uMsg, wParam, lParam)
If *liedit\editHwnd=0
*liedit\editHwnd = hWnd
;Set margins.
SendMessage_(hWnd, #EM_SETMARGINS, #EC_LEFTMARGIN|#EC_RIGHTMARGIN, 4)
SendMessage_(hWnd, #EM_SETSEL, -1,0)
EndIf
Case #WM_WINDOWPOSCHANGING
*wpos=lParam
*wpos\cx=*liedit\cx ;Comment this line to get an edit control which grows with the text.
*wpos\x=*liedit\x
If _LIEditGlobals\osVersion >= #PB_OS_Windows_Vista And _LIEditGlobals\blnIsXPThemes
*wpos\cy=*liedit\cy
*wpos\y=*liedit\y
Else
*wpos\cy=*liedit\cy+3
*wpos\y=*liedit\y-2
EndIf
result=CallWindowProc_(oldwinproc, hWnd, uMsg, wParam, lParam)
Case #WM_NCDESTROY
result=CallWindowProc_(oldwinproc, hWnd, uMsg, wParam, lParam)
RemoveProp_(hWnd, "_LIEditOldProc")
;InvalidateRect_(GetParent_(hWnd),0,0)
Default
result=CallWindowProc_(oldwinproc, hWnd, uMsg, wParam, lParam)
EndSelect
ProcedureReturn result
EndProcedure
Code : Tout sélectionner
XIncludeFile "EditListIcon.pbi"
DisableExplicit
LoadFont(1, "Arial", 10)
If OpenWindow(0, 100, 100, 600, 600, "ListIcon Example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(1, 5, 5, 490, 390, "", 0, #PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect)
SetGadgetFont(1, FontID(1))
For i = 1 To 5
AddGadgetColumn(1, i, "Col "+Str(i), 100)
Next
For Row = 1 To 10
AddGadgetItem(1,-1,"")
For Col = 1 To 5
SetGadgetItemText(1, row-1, "", col)
Next
Next
SetListIconEditable(1) ;ListIconGadget devient éditable
JustifyColumn(1, 2, #LVCFMT_RIGHT)
EditCell(1, 5, 2) ;Focus sur la 6 ligne colonne 2
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
EndIf
Exemple EditCell(1, 5, 2) ;Focus sur la 6 ligne colonne 2
PS : Fonctionne aussi avec la version 5.21 de Pure basic
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Maitriser ListIconGadget
falsam efface ton dernier post du post cellule, ensuite j'effacerais le mien et ainsi de suite
Re: Maitriser ListIconGadget
Merci pour ta réponse que j'étuderai avec attention.
Pour l'instant je ne suis plus disponible, mais je te tiendrai informé dès que possible.
Cordialement.
Pour l'instant je ne suis plus disponible, mais je te tiendrai informé dès que possible.
Cordialement.
Re: Maitriser ListIconGadget
Il me semble que pour changer le texte dans une cellule PB propose ceci
- GetGadgetItemText() : Renvoie le texte de l'élément spécifié. Si 'Element' = -1, alors le titre de la colonne est renvoyé.
- SetGadgetItemText() : Change le texte de l'élément spécifié. Si 'Element' = -1, alors le titre de la colonne est modifié.
Syntaxe
SetGadgetItemText(#Gadget, Element, Texte$ [, Colonne])
Description
Change le texte de l'élément d'un gadget.
Il suffit ensuite de faire une lecture total de la liste et éventuellement enregistrer cette lecture pour conserver les modifs.
- GetGadgetItemText() : Renvoie le texte de l'élément spécifié. Si 'Element' = -1, alors le titre de la colonne est renvoyé.
- SetGadgetItemText() : Change le texte de l'élément spécifié. Si 'Element' = -1, alors le titre de la colonne est modifié.
Syntaxe
SetGadgetItemText(#Gadget, Element, Texte$ [, Colonne])
Description
Change le texte de l'élément d'un gadget.
Il suffit ensuite de faire une lecture total de la liste et éventuellement enregistrer cette lecture pour conserver les modifs.
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Maitriser ListIconGadget
Oooops oui si ça se trouve la demande de PureDev était tout simplement d'accéder à une cellule du tableau et pas d'accéder en édition de la cellule !
En relisant son premier message je me rend compte que c'est sa demande effectivement. C'est la faute de Kernadec hahaha.
Un code plus simple pour changer les données d'une cellule.
En relisant son premier message je me rend compte que c'est sa demande effectivement. C'est la faute de Kernadec hahaha.
Un code plus simple pour changer les données d'une cellule.
Code : Tout sélectionner
Enumeration
#Mainform
#MyListIcon
EndEnumeration
Define.l Event, GEvent
Global WindowStyle.i=#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered|#PB_Window_SizeGadget
Procedure Open_MainForm()
OpenWindow(#Mainform, 0, 0, 500, 400, "New Form", WindowStyle)
ListIconGadget(#MyListIcon, 10, 10, 480, 380, "Col 1", 200)
AddGadgetColumn(#MyListIcon, 1, "Col 2", 200)
EndProcedure
Procedure Start()
Open_MainForm()
;Remplissage du tableau pour test
For n=0 To 9
AddGadgetItem(#MyListIcon, -1, "Item " + Str(n) + Chr(10) + Str(n))
Next
;On va modifier une cellule
SetGadgetItemText(#MyListIcon, 3, "* CHANGEMENT *", 1) ;Ligne 4, Col 2
EndProcedure
start()
Repeat
Event = WaitWindowEvent(10)
GEvent = EventGadget()
Select Event
Case #PB_Event_Gadget
Select GEvent
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Maitriser ListIconGadget
@ falsam
+1
+1
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Maitriser ListIconGadget
Je ne reconnais, je suis fautif aussi. J'aurais du lire plus attentivement la demande initiale. Je suis curieux de voir l'épilogue :p
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%