Dernier Bouton sélectionné

Programmation d'applications complexes
Avatar de l’utilisateur
MLD
Messages : 1097
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Dernier Bouton sélectionné

Message par MLD »

salut a tous

Un petit truc pratique :wink:

Code : Tout sélectionner

;======================================
; MLD le 22/12/2010                   =
; Dernier Bouton sélectionné (avec    =
; un cadre bleu autour)               =
; PB 4.51                             =
;======================================

Enumeration
#bt_1 = 1
#bt_2 = 2
#bt_3 = 3
#bt_4 = 4
#btimg_1 = 5
#btimg_2 = 6
#btimg_3 = 7
EndEnumeration

Procedure markbt(gadget)
 For i= 1 To 7
  X= GadgetX(i)
  Y = GadgetY(i)
  H = GadgetHeight(i)
  L = GadgetWidth(i)
  text$ = GetGadgetText(i)
  If i <> gadget
   If i <5 
    ButtonGadget(i, X, Y,L, H,text$ ,0)
   Else
    ButtonImageGadget(i, X, Y,L, H,GetGadgetAttribute(i, #PB_Button_Image),0)
   EndIf 
  Else 
   If i <5
    ButtonGadget(i, X, Y,L, H,text$ ,#BS_DEFPUSHBUTTON)
   Else
    ButtonImageGadget(i, X, Y,L, H,GetGadgetAttribute(i, #PB_Button_Image),#BS_DEFPUSHBUTTON)
   EndIf
  EndIf 
 
 Next
EndProcedure

OpenWindow(0, 0, 0, 300, 300, "Test: appuyez sur un bouton", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget)
ButtonGadget(#bt_1, 10, 10, 200, 25, "Bouton 1",0) 
ButtonGadget(#bt_2, 10, 40, 200, 25, "Bouton 2",0)
ButtonGadget(#bt_3, 10, 70, 200, 25, "Bouton 3",0)
ButtonGadget(#bt_4, 10, 100, 200, 25, "Bouton 4",0)
ButtonImageGadget(#btimg_1, 10, 130, 200, 48, LoadIcon_(0, #IDI_APPLICATION),0)
ButtonImageGadget(#btimg_2, 10, 180, 200, 48, LoadIcon_(0, #IDI_WARNING),0)
ButtonImageGadget(#btimg_3, 10, 230, 200, 48, LoadIcon_(0, #IDI_ASTERISK),0)

Repeat
  Event = WaitWindowEvent()
  
  Select Event
  Case #PB_Event_Gadget 
   Select EventGadget()
        Case #bt_1 
         markbt(#bt_1)
        Case #bt_2 
         markbt(#bt_2)
        Case #bt_3 
         markbt(#bt_3)
        Case #bt_4 
         markbt(#bt_4)
        Case #btimg_1
          markbt(#btimg_1)
        Case #btimg_2
          markbt(#btimg_2)  
        Case #btimg_3
          markbt(#btimg_3)     
   EndSelect
  EndSelect
Until Event = #PB_Event_CloseWindow
Sa rappellera quelque chose au soldat :lol: