GadgetListIcon éditable : un besoin incontournable !!!

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.

Les ListIcon devraient êtres éditables facilement ?

Le sondage est terminé depuis le jeu. 07/oct./2004 12:59

oui
11
100%
non
0
Aucun vote
 
Nombre total de votes : 11

Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

GadgetListIcon éditable : un besoin incontournable !!!

Message par Golfy »

Je sais que Purebasic est plus orienté "jeux" (2D, 3D sprites, Mods, etc) qu'applicatif... toutefois il me semble nécessaire de pouvoir éditer les lignes d'un ListIcon en cliquant ou double-cliquant dessus.
Je ne suis apparemment pas le seul a avoir ce problème (vraiment gênant et dont la "rustine" est assez complexe à mettre en oeuvre) cf.
http://purebasic.hmt-forum.com/viewtopic.php?t=1405 .

Y'a-t'il une chance que mon appel soit entendu :roll:
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

il y a un truc qui m'échappe, c'est ça que tu veux faire ?

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 3.9
; 
; Explication du programme :
; Montre comment gérer le double clic dans une ListIconGadget


; Création de la fenêtre et dela GadgetList
If OpenWindow(0, 0, 0, 300, 300, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "ListIconGadget") = 0 Or CreateGadgetList(WindowID()) = 0
  End
EndIf

; On crée un ListIconGadget
ListIconGadget(0, 0, 0, 300, 300, "Titre", 250, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)

; On rempli le ListIconGadget
For n = 1 To 10
  AddGadgetItem(0, -1, "Texte " + Str(n))
Next

Repeat
  Event = WaitWindowEvent()
  
  If Event = #PB_EventGadget
    Select EventGadgetID() ; boutons, zone de texte, ...
      Case 0
        Pos = GetGadgetState(0) ; On récupère la position de l'élément sélectionné
        If Pos >= 0 ; Si un élément est sélectionné
          If EventType() = #PB_EventType_LeftDoubleClick ; Si on a fait un double clic
            Txt.s = InputRequester("ListIconGadget", "Entrez le nouveau texte :", GetGadgetItemText(0, Pos, 0))
            SetGadgetItemText(0, Pos, Txt, 0)
          EndIf
        EndIf
    EndSelect
  EndIf
  
Until Event = #PB_EventCloseWindow

End
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Nan le Soldat ce qui serait bien c'est de changer le texte juste en cliquant sur la cellule, et c'est vrai que ce serait vraiment pratique :D
julien
Messages : 846
Inscription : ven. 30/janv./2004 15:06
Contact :

Message par julien »

Ah oui, plus que pratique.... indispensable...
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

pour aussi mais a juger de l'exemple disponible dans codearchive c compliqué
Image
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

J'ai voté oui , même si je n'utilise pas les listIconGadget pour l'instant.

Quand je m'y mettrai , j'aimerais bien que ça existe :)
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Trop facile...

Message par Golfy »

Le Soldat Inconnu a écrit :il y a un truc qui m'échappe, c'est ça que tu veux faire ?

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 3.9
; 
; Explication du programme :
; Montre comment gérer le double clic dans une ListIconGadget


; Création de la fenêtre et dela GadgetList
If OpenWindow(0, 0, 0, 300, 300, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "ListIconGadget") = 0 Or CreateGadgetList(WindowID()) = 0
  End
EndIf

; On crée un ListIconGadget
ListIconGadget(0, 0, 0, 300, 300, "Titre", 250, #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)

; On rempli le ListIconGadget
For n = 1 To 10
  AddGadgetItem(0, -1, "Texte " + Str(n))
Next

Repeat
  Event = WaitWindowEvent()
  
  If Event = #PB_EventGadget
    Select EventGadgetID() ; boutons, zone de texte, ...
      Case 0
        Pos = GetGadgetState(0) ; On récupère la position de l'élément sélectionné
        If Pos >= 0 ; Si un élément est sélectionné
          If EventType() = #PB_EventType_LeftDoubleClick ; Si on a fait un double clic
            Txt.s = InputRequester("ListIconGadget", "Entrez le nouveau texte :", GetGadgetItemText(0, Pos, 0))
            SetGadgetItemText(0, Pos, Txt, 0)
          EndIf
        EndIf
    EndSelect
  EndIf
  
Until Event = #PB_EventCloseWindow

End
Hélas, non ! cette solution est moins encombrante mais n'est pas aussi élégante. Le comportement recherché serait plutôt celui d'un tableur : tu cliques une cellule et tu tapes ton texte...

Merci quand même pour l'aide, surtout que j'ai remarqué que tu es un membre très actif :)
Répondre