Page 1 sur 1

Options dans les gadgets [resolut]

Publié : mar. 20/avr./2010 9:19
par MLD
Bonjour a tous

Jai par exemple ceci
StringGadget(#Gadget, x, y, Largeur, Hauteur, Texte$, #PB_String_BorderLess)
Je souhaite hinibé le #PB_String_BorderLess sans écrire:
StringGadget(#Gadget, x, y, Largeur, Hauteur, Texte$)
cela est'il possible :?:
Je n'ai rien vu dans la doc, ou j'ai mal lu :oops:

Re: Options dans les gadgets

Publié : mar. 20/avr./2010 10:05
par Patrick88
Syntaxe

Resultat = StringGadget(#Gadget, x, y, Largeur, Hauteur, Texte$ [, Options])

pour toutes les commandes lorsque l'option ou le paramètre est placé entre des crochets, il est facultatif.

Re: Options dans les gadgets

Publié : mar. 20/avr./2010 10:20
par MLD
Merci PatricK81
Mais ce n'est pas ma question
est'il possible modifier l'option dynamiquement sans réecrire le gadget
Michel

Re: Options dans les gadgets

Publié : mar. 20/avr./2010 12:02
par Ar-S
Je ne pense pas que nativement tu puisses. A mon avis soit tu te contente de jouer avec les couleurs du gadget, soit tu caches/affiches 2 fois le même gadgets
l'un avec les bordures, l'autre sans.

Re: Options dans les gadgets

Publié : mar. 20/avr./2010 14:03
par G-Rom
avec une macro tu devrais t'en sortir.

@+

Re: Options dans les gadgets

Publié : mar. 20/avr./2010 17:20
par Le Soldat Inconnu
Je trouve l'idée pas mauvaise moi.

Regarde cet exemple

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 4.40
;
; Explication du programme :
; Pour faire des programmes de test rapidement, il ne reste qu'a rajouter les gadgets et la gestion des évènements.

Procedure SetgadgetOption(Gadget, Option)
	x = GadgetX(Gadget)
	y = GadgetY(Gadget)
	Largeur = GadgetWidth(Gadget)
	Hauteur = GadgetHeight(Gadget)
	Select GadgetType(Gadget)
		Case #PB_GadgetType_String
			StringGadget(Gadget, x, y, Largeur, Hauteur, GetGadgetText(Gadget), Option)
			
			; mettre ici pour les autres type de gadget
	EndSelect
EndProcedure

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

StringGadget(1, 20, 30, 50, 24, "Blabla")

ButtonGadget(2, 20, 60, 200, 25, "StringGadget sans bordure")
ButtonGadget(3, 20, 90, 200, 25, "StringGadget avec bordure")

Repeat
  Event = WaitWindowEvent()
  
  Select Event
		Case #PB_Event_Menu
      Select EventMenu() ; Menus
          
			EndSelect
      
		Case #PB_Event_Gadget
      Select EventGadget() ; Gadgets
				Case 2
					SetgadgetOption(1, #PB_String_BorderLess)
				Case 3
					SetgadgetOption(1, 0)
			EndSelect
	EndSelect
  
Until Event = #PB_Event_CloseWindow

Re: Options dans les gadgets

Publié : mar. 20/avr./2010 17:34
par MLD
Hyoupy :lol: Bonsoir Soldat

C'est exactement la bonne idée, "Quelle" va bien me servir, et aussi a d'autres :lol:

Merci
Michel

Re: Options dans les gadgets [resolut]

Publié : mar. 20/avr./2010 17:58
par choubibar
Salut,

ça m'a pris 2 minutes pour avoir une autre approche qui fonctionne également

@+ ;)

Code : Tout sélectionner

If OpenWindow(0, 0, 0,80,80,"",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget|#PB_Window_TitleBar )
    i= 0; ou i=131072=#PB_String_Borderless
    StringGadget(1,15,20,60,20,"test",i)
    etat$="avec bordure" ; ou sans bordure    
    ButtonGadget(2,10,50,70,20,etat$)   
EndIf    

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Gadget
    If EventGadget()=2
      If i=0:i=#PB_String_BorderLess:etat$="sans bordure":i+1:EndIf
      If i=#PB_String_BorderLess:i=0:etat$="avec bordure":i+1:EndIf    
      i-1
      SetGadgetText(2,etat$)
      StringGadget(1,15,20,60,20,"test",i)
    EndIf 
    Case #PB_Event_CloseWindow:Quit = 1
   EndSelect    
Until Quit = 1

Re: Options dans les gadgets [resolut]

Publié : mer. 21/avr./2010 8:03
par MLD
Salut choubibar

Dans ton code tu écrit deux fois la même chose, en locurence le gadget, imagine si tu a comme c'est le cas pour moi 20 "stringGadget".
Dans le code du soldat tu passe tous les "stringGadget" que tu veux sans les écrires de nouveaux. :mrgreen:
Bonne journée :wink:
Michel

Re: Options dans les gadgets [resolut]

Publié : mer. 21/avr./2010 9:30
par MLD
Salut a tous

pour ceux que ça intéressent, une petite démo

Appuyez sur la touche entrée, pour faire défiler, ou cliquez sur le texte pour sélectionner.

Code : Tout sélectionner

;option des gadgets

Enumeration
 #Window_0 = 1
 #string_1 = 2
 #string_2 = 3
 #string_3 = 4
EndEnumeration

Procedure colorstring(gadget)
   x = GadgetX(gadget)
   y = GadgetY(gadget)
   Largeur = GadgetWidth(gadget)
   Hauteur = GadgetHeight(gadget)
If EventType() = #PB_EventType_Focus
  StringGadget(3000, x, y, Largeur, Hauteur, GetGadgetText(gadget),0);3000 est un numéro bidon pour simulé la création d'un nouveau gadget      
  SetGadgetColor(3000,#PB_Gadget_BackColor,$39E3C6)
EndIf 
If EventType() = #PB_EventType_LostFocus 
  StringGadget(3000, x, y, Largeur, Hauteur, GetGadgetText(gadget),#PB_String_BorderLess) 
  SetGadgetColor(3000,#PB_Gadget_BackColor,$B7D9D9)
EndIf
EndProcedure
 
OpenWindow (#Window_0, 388, 23, 414, 182, "Test" , #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_WindowCentered  ) 
AddKeyboardShortcut(#Window_0, #PB_Shortcut_Return, 0) ; menu bidon pour traitement du clavier dans les string gadgjet
StringGadget(#string_1, 20, 20, 100,20,"AAAAAAAA",#PB_String_BorderLess) 
SetActiveGadget(#string_1)
StringGadget(#string_2, 20, 60, 100,20,"BBBBBBBBB",#PB_String_BorderLess) 
StringGadget(#string_3, 20, 100, 100,20,"CCCCCCCCC",#PB_String_BorderLess)

For y = 2 To 4
  SetGadgetColor(y,#PB_Gadget_BackColor,$E0E0E0)
  SetGadgetColor(y,#PB_Gadget_FrontColor,$EA4F07)
Next 
Repeat 
 Event = WaitWindowEvent()
   Select EventMenu()
       Case 0
       If GetActiveGadget() = #string_1
        SetActiveGadget(#string_2)
       Else
       If GetActiveGadget() = #string_2  
        SetActiveGadget(#string_3)
       Else
        If GetActiveGadget() = #string_3  
         SetActiveGadget(#string_1)
       EndIf
      EndIf
     EndIf
   EndSelect             
  If Event = #PB_Event_Gadget
    Select EventGadget()
     Case #string_1
         colorstring(#string_1)
     Case #string_2
        colorstring(#string_2)
     Case #string_3
        colorstring(#string_3)
  EndSelect  
EndIf
Until Event = #PB_Event_CloseWindow

Pour la sélection ok; mais si ons fait une modif du texte la couleur de fond pose un problème??

Re: Options dans les gadgets [resolut]

Publié : jeu. 22/avr./2010 11:26
par Geo Trouvpatou
Salut.

MLD chez moi ton code ne fonctionne pas.
Boucle infini et obliger d'utiliser le Gestionnaire de tâches pour stopper le bidule.

[EDIT]Je viens de m'apercevoir que cela fonctionne bien en PB4.40 mais pas en PB4.50b2

Re: Options dans les gadgets [resolut "pas vraiment"]

Publié : jeu. 22/avr./2010 17:13
par MLD
Salut Geo Trouvpatou :D

pas essayer avec le 4.5.
De toute manière ce code n'est pas trés bon car il revient a mettre un gadget sur un gadget :oops:
En VB aucun problème pour faire cela. En PB c'est fortement déconseillé pour le moment. Pourtant cela apporterait de nombreuses possibilités supplémentaires. :roll:
Bonne soirée :D
Michel