Page 9 sur 10

Re: Librairie SkinWindow (Fenêtres et gadgets skinnés)

Publié : lun. 21/juin/2010 12:25
par boddhi
Bibliothèque très prometteuse :D :D

Toutefois, comment gère-t'on conjointement les évènements de gadgets de type ListIcon, Editor,... ???
L'emploi sumultané de WaitWindowEvent() et WaitSkinWindowEvent() ne fonctionne pas. Le premier "freezant" (logiquement) le second...

Re: Librairie SkinWindow (Fenêtres et gadgets skinnés)

Publié : lun. 21/juin/2010 14:57
par Le Soldat Inconnu
simplement, tu ne mets pas WaitWindowEvent()

Tous les évènements sont retournés par WaitSkinWindowEvent(), cette fonction renvoi la même chose que WaitWindowEvent() plus les évènements des items skinnés

Re: Librairie SkinWindow (Fenêtres et gadgets skinnés)

Publié : lun. 21/juin/2010 23:20
par Ar-S
Je viens de tester vraiment vite fait la lib mise à jour, le problème de "colle" a l'aire d'avoir disparu :P
Je fais de plus amples essais demain ou après demain (demain j'ai pas mal de choses à faire).
Pas encore testé les infosbulles

Re: Librairie SkinWindow (Fenêtres et gadgets skinnés)

Publié : lun. 28/juin/2010 20:15
par ced
Sais tu comment on rend le fond d'un ImageGadget transparent! Les miens sont noir par défaut et je obliger de copier le fond de ma fenetre pour faire croire qu'il est transparent. C'est dommage! Tu fait comment toi?
Merci encore!.. et t'as du courage pour skinner!

Re: Librairie SkinWindow (Fenêtres et gadgets skinnés)

Publié : jeu. 01/juil./2010 15:03
par Le Soldat Inconnu
simplement avec une image 32 bits. Ça fonctionne tout seul.

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 4.50

If OpenWindow(0, 0, 0, 300, 300, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0
  End
EndIf

CreateImage(0, 100, 100, 32 | #PB_Image_Transparent)
StartDrawing(ImageOutput(0))
	DrawingMode(#PB_2DDrawing_AlphaBlend)
	Circle(50, 50, 40, $80FF5087)
StopDrawing()
ImageGadget(0, 0, 0, 100, 100, ImageID(0))

Repeat
  Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow

Re: Librairie SkinWindow (Fenêtres et gadgets skinnés)

Publié : jeu. 01/juil./2010 17:52
par Ar-S
Dommage que ça ne fonctionne pas avec un ButtonImageGadget

Re: Librairie SkinWindow (Fenêtres et gadgets skinnés)

Publié : jeu. 01/juil./2010 18:24
par Le Soldat Inconnu
rien ne t'empeche d'utiliser l'imagegadget comme buttongadget.
Et sinon, sur un buttonimagegadget, ça donne pareil. Sauf que j'ai le bouton dessous.

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 4.50

If OpenWindow(0, 0, 0, 300, 300, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0
	End
EndIf

CreateImage(0, 100, 100, 32 | #PB_Image_Transparent)
StartDrawing(ImageOutput(0))
	DrawingMode(#PB_2DDrawing_AlphaBlend)
	Circle(50, 50, 40, $80FF5087)
StopDrawing()
ButtonImageGadget(0, 0, 0, 100, 100, ImageID(0))

Repeat
	Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow

Re: Librairie SkinWindow (Fenêtres et gadgets skinnés)

Publié : jeu. 01/juil./2010 19:16
par Ar-S
Le Soldat Inconnu a écrit : Sauf que j'ai le bouton dessous.
oui c'est ce que je voulais dire, dommage qu'on voit le carré du button. (heureusement la skinlib est là ^^)

Re: Librairie SkinWindow (Fenêtres et gadgets skinnés)

Publié : lun. 05/juil./2010 12:58
par ced
Merci pour ton astuce Soldat, ca avance, mais j'ai peiné un peu car cela ne fonctionne que sur PB 4.50, avant j'avais PB 4.41, ca n'existait pas! Donc ca fonctionne sauf que ca ne fonctionne pas avec SetGagdetState ! quand on veut actualiser l'image 32.
SetGadgetState marche tres bien avec les 24 bits, mais en 32 bits, l'image disparait! et ralentis le prog. Tu as surement un astuce que je ne connais pas encore. Décidément je tourne autour du pot avec PB en Graph. Merci d'avance !... Bon courage

Re: Librairie SkinWindow (Fenêtres et gadgets skinnés)

Publié : lun. 05/juil./2010 13:02
par Le Soldat Inconnu
c'est que tu ne l'utilise pas correctement car ça fonctionne.

Poste un nouveau sujet la dessus avec un exemple. on t'aideras

Re: Librairie SkinWindow (Fenêtres et gadgets skinnés)

Publié : lun. 23/août/2010 21:21
par Ar-S
De retour ici avec un problème... en gros parfois la copie fonctionne, parfois non !
Le debug m'affiche parfois une erreur sur un SetSkinItemText , mais pas tout le temps !
J'ai très probablement du me mélanger les pinceaux coté thread/timer mais je vois pas top comment rendre tout cela plus propre.

Voilà une version allégée du code (j'ai supprimé les prefs, les tests pour voir si source<destination etc..)
le code utilise aussi les commandes getdirectorySize() et MakeSureDirectoryExist() de la Droopy libs.
Donc il n'est pas "totalement" exploitable.

Si vous avez le temps de jeter un oeil dedans et si vous voyez ce qui cloche, ce serait sympa de m'en faire part.

LSI si besoin je te mail les skin.pb

D'avance merci

Code : Tout sélectionner

UsePNGImageDecoder()

Enumeration
  #wincode
  #NOM
  #CLE1
  #Text_Nom
  #Text_CLE
  #enregistrer
  #Enr_Annuler
  #Text_DEVER
  #Timer1
EndEnumeration


Declare About()

Declare TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)

Declare S_Etape1()
Declare S_Etape2()
Declare COPYdir()
Declare GOCOPY(*ldvmultimedia) 

Declare.s recupeDate()
declare CacheACCUEIL()
declare AffichACCUEIL()
declare AffichSAUVER()
declare CacheSAUVER()

declare.q GetDiskFreeSpace(Lecteur.s, Type.l = 0)
declare.s DisplayDiskFreeSpace(Taille.q, Unite.l = -1, NbDecimals.l = -1)


;Inclusion des images datas
IncludeFile("skin.pbi") ; Insertion des datas

; Chargement des images
img_Normal=CatchImage(10, ?n_img)
img_Select=CatchImage(11, ?s_img)
img_Item=CatchImage(12, ?i_img)

; Chargement de la font
arialBig=LoadFont(100,"arial",16,#PB_Font_HighQuality)
arialMed=LoadFont(101,"arial",12,#PB_Font_Bold|#PB_Font_HighQuality)

Global AUTOQUIT$,FINPERIODE$,SOURCE$,DEST$,LASTSAVNAME$,LASTSAVDATE$,LIC$,USER$,LecteurDEST$,DernierRep$,Apropos$,lancement$,pass$,lancrypt$
Global DefRep$,Pref$
Global Date$,Time$,LaDate$,bilan$,trial
Global RC.s=chr(10)
Global CacheACCUEIL,CacheSAUVER,SS,SD
Global v$="1.0 alpha 8 build 17"
Global RepAcopier$
GLOBAL GOCOPY=0
GLOBAL ANNUL=0
global taille
global TUE_THREAD
Global TailleSOURCE.q,TailleDEST.q,afficheBARRE,Full.l

afficheBARRE=0
TUE_THREAD=0
TailleSOURCE=0
TailleDEST=0
DefRep$=GetCurrentDirectory()

; ------COULEUR DES ITEMS--------
#C_ACCUEIL=$9999CC
#C_SAUVER=$6666CC

;#C_QUITTER=$99CCCC
#C_X=$66CCCC

#C_APROPOS=$339999
#C_EDITOR=$336666
#C_HORIZONTAL=$333333

#C_Fond=$CC00FF
; ------------------------------

;QuoiLister 
#dossier = #PB_DirectoryEntry_Directory 
#fichier = #PB_DirectoryEntry_File 
#all = -1 
;Mode (afficher les extensions pour les fichiers ou pas) 
#EXToui=1 
#EXTnon=0 
Directory$ = "c:\" 

If CreateSkinWindow(0, #PB_Ignore, #PB_Ignore, titre$, #PB_Window_ScreenCentered|#PB_Window_Invisible, 0, 10, 11, 11, 11, 10, 12, 12, 0,0) 
  Handle = WindowID (0) 
  StickyWindow(0,1)
  SkinItemMoveWindow(#C_Fond, 1)
  HideSkinWindow(0, 0)
  
  EditorGadget(1,SkinItemX(#C_EDITOR),SkinItemY(#C_EDITOR),SkinItemWidth(#C_EDITOR),SkinItemHeight(#C_EDITOR))
  SetGadgetFont(1,fontID(101))
  RetourAuto(1)

  SetGadgetText(1,bilan$)
  
  ;-GADGETs CLASSIQUEs---------------
  ;Global
  Frame3DGadget(3,SkinItemX(#C_EDITOR),SkinItemY(#C_EDITOR),SkinItemWidth(#C_EDITOR),SkinItemHeight(#C_EDITOR),TXTframe$)

  ;SAUVE-----------------------------------------------
  ;Etape 1
  TextGadget(4, SkinItemX(#C_EDITOR)+10, SkinItemY(#C_EDITOR)+30, 355, 20, "ETAPE 1 - Sélectionnez le répertoire que vous voulez sauvegarder.", #SS_CENTERIMAGE)
  ButtonGadget(10, SkinItemX(#C_EDITOR)+10, SkinItemY(#C_EDITOR)+55, 365, 25, "Choisir le répertoire à sauvegarder")
  SetGadgetFont(10,FontID(101))
  StringGadget(6, SkinItemX(#C_EDITOR)+10, 160, 365, 20, "Ici apparaitra le chemin du répertoire que vous voulez sauvegarder.", #PB_String_ReadOnly|#ES_CENTER)
  
  ; Etape 2
  TextGadget(5, SkinItemX(#C_EDITOR)+10, SkinItemY(#C_EDITOR)+140, 282, 22, "ETAPE 2 - Sélectionnez le répertoire de déstinnation", #SS_CENTERIMAGE)
  ButtonGadget(9, SkinItemX(#C_EDITOR)+10, SkinItemY(#C_EDITOR)+170, 365, 25, "Choisir l'endroit ou sera sauvé le répertoire")
  SetGadgetFont(9,FontID(101))
  StringGadget(7, SkinItemX(#C_EDITOR)+10, SkinItemY(#C_EDITOR)+200, 365, 19, "Ici apparaitra le chemin du répertoire de destination", #PB_String_ReadOnly|#ES_CENTER)
  
  ;créer la sauvegarde
  ButtonGadget(8, SkinItemX(#C_EDITOR)+10, 350, 365, 75, "Créer la sauvegarde maintenant !")
  SetGadgetFont(8,FontID(101))
  
  CacheACCUEIL=0
  CacheSAUVER()
  
  ;FOOTER
  SetSkinItemText(#C_HORIZONTAL,"Bienvenue sur LDV MULTIMEDIA Sauvegarde Facile !")
  SetSkinItemFont(#C_HORIZONTAL,FontID(100),$00,$00)
  
  ;-Lance le TIMER
  SetTimer_(Handle, #timer1 , 500, @TimerProc())
  
  Repeat
    
    if TUE_THREAD=1
      if IsThread(thread)<>0
        KillThread(thread)
      endif
      
      If CacheSAUVER=0
        CacheSAUVER()
      EndIf
      
      if CacheACCUEIL=1
        AffichACCUEIL()
      EndIf
      TUE_THREAD=0
    EndIf
    
    ;-EVENEMENTS--------------------
    ;-*-- LES GADGETS SKIN ------
    Event = WaitSkinWindowEvent()
    Select EventSkinItem()
        
      Case #C_APROPOS
        About()
        
      Case #C_X
        End
        
        
        ;{-ACCUEIL  
      Case #C_ACCUEIL
        If CacheSAUVER=0
          CacheSAUVER()
        EndIf
        
        if CacheACCUEIL=1
          AffichACCUEIL()
        EndIf
        
        SetGadgetText(1,bilan$)
        ;}
        
        ;{-SAUVER  
      Case #C_SAUVER
        if CacheACCUEIL=0
          CacheACCUEIL()
        endif
        
        if CacheSAUVER=1
          AffichSAUVER()
        endif
        SetSkinItemText(#C_HORIZONTAL,"Commencez par l'étape 1")
        ;}
        
        DisableGadget(10,0)
        DisableGadget(8,1) ; GO
        DisableGadget(9,1)
        
    EndSelect
    
    ;-*-- LES GADGETS CLASSIQUES------
    GadgetEvent=WindowEvent() 
    Select EventGadget()
        
      Case 10 ; Bouton source
        S_Etape1()
        
      Case 9 ; Bouton destination
        S_Etape2()
        
      case 8 ; bouton COPY
        COPYdir()
        If GOCOPY=1
          
          ;--Vérifie que source < Lecteur destination----
          debug "Source : "+SOURCE$
          PoidsSource$=str(GetDirectorySize(SOURCE$))
          debug "Poids : "+PoidsSource$
          
          LecteurDEST$=Mid(DEST$,1,3)
          debug "lecteur DEST$ : "+LecteurDEST$
          PoidsDEST$=DisplayDiskFreeSpace(GetDiskFreeSpace(LecteurDEST$, 0))
          
          debug "Espace restant : "+PoidsDEST$
          
          if val(PoidsSource$)<val(PoidsDEST$)
            ;Désactivation des boutons pendant la copie
            DisableGadget(8,1)
            DisableGadget(9,1)
            DisableGadget(10,1)
            
            TailleSOURCE=GetDirectorySize(SOURCE$)
            afficheBARRE=1
            thread=CreateThread(@GOCOPY(),200)
            debug GOCOPY
          else
            GOCOPY=0
            
            SetSkinItemText(#C_HORIZONTAL,"Copie impossible, plus assez de place sur "+LecteurDEST$)
            DisableGadget(9,1)
          endif
        elseif GOCOPY=0 
          if IsThread(thread)<>0
            KillThread(thread)
          endif
          
        elseif ANNUL=1
          
        EndIf
        
        
    EndSelect
    
  Until event = #PB_Event_CloseWindow 
EndIf 
;-FIN EVENEMENTS-------------------------


; Auteur : Le Soldat Inconnu 
Procedure.q GetDiskFreeSpace(Lecteur.s, Type.l = 0) 
  ; lecteur = nom du lecteur 
  ; type = choix de la réponse, 0 = espace libre sur le lecteur, 1 = taille du lecteur 
  
  Protected EspaceLibre.q,  Taille.q, resultat.q 
  GetDiskFreeSpaceEx_(Lecteur, @EspaceLibre, @Taille, 0) 
  
  Select Type 
    Case 0 : resultat = EspaceLibre 
    Case 1 : resultat = Taille 
  EndSelect 
  
  ProcedureReturn resultat 
EndProcedure 

Procedure.s DisplayDiskFreeSpace(Taille.q, Unite.l = -1, NbDecimals.l = -1) 
  
  Protected Val.q, Txt.s 
  
  If Unite = -1 
    NbDecimals = 0 
    Unite = 1 
    Val = 1024
  EndIf 
  ProcedureReturn StrF(Taille / Val, NbDecimals) 
  
EndProcedure 

    
Procedure.s RecupeDate()
  Date$ = FormatDate("%dd/%mm/%yyyy", Date())
  Time$ = FormatDate("%hh:%ii", Date())
  LaDate$=Date$+ " à "+Time$
  ProcedureReturn LaDate$
EndProcedure
    


;{- PROCEDURES SAUVEGARDES
;-**Etape 1
procedure S_Etape1()
  if SOURCE$=""
    SOURCE$="c:\"
  EndIf
  RepAcopier$=PathRequester("Répertoire à sauvegarder",SOURCE$)
  If RepAcopier$
    debug RepAcopier$
    SOURCE$=RepAcopier$
    ; Nom du dernier repertoire
    DernierRep$=ReverseString(RepAcopier$)
    PosSlash=FindString(DernierRep$,"\",3)
    DernierRep$=mid(DernierRep$,2,PosSlash-2)
    DernierRep$=ReverseString(DernierRep$)
    DernierRep$+"\"
    debug "Dernier Rep : "+DernierRep$
    
    SetGadgetText(6,SOURCE$)
    SetSkinItemText(#C_HORIZONTAL,"Passez maintenant à l'étape 2")
    DisableGadget(9,0)
     
  else
    SetSkinItemText(#C_HORIZONTAL,"Annulé par l'utilisateur")
  EndIf
EndProcedure

;-** Etape 2
procedure S_Etape2()
  RepCible$=PathRequester("Répertoire de destination","c:\")
  If RepCible$
    DEST$=RepCible$
    SetGadgetText(7,DEST$)
    SetSkinItemText(#C_HORIZONTAL,"Vous pouvez lancer la copie")
    DisableGadget(8,0)
  else
    SetSkinItemText(#C_HORIZONTAL,"Annulé par l'utilisateur")
  EndIf
EndProcedure




;-** COPYdir
Procedure COPYdir()
  ANNUL=0
  QuestionSav=MessageRequester("Résumé","Répertoire source : "+rc+SOURCE$+rc+rc+"Répertoire de destination : "+rc+DEST$+DernierRep$+rc+rc+"Souhaitez vous ajouter 'la date' en sous repertoire pour votre sauvegarde ?"+rc+"(nous vous conseillons d'utiliser cette option)"+rc+"Ce qui donnerait : "+rc+DEST$+FormatDate("%yyyy_%mm_%dd", Date())+"\"+DernierRep$,#PB_MessageRequester_YesNoCancel|#MB_ICONINFORMATION ) ;
  If QuestionSav = 6 ; oui
    DEST$+FormatDate("%yyyy-%mm-%dd", Date())+"\"+DernierRep$
    GOCOPY=1
  elseif QuestionSav=7
    GOCOPY=1
    DEST$+DernierRep$
  else
    GOCOPY=0
    SetSkinItemText(#C_HORIZONTAL,"Annulé par l'utilisateur")
    ANNUL=1
  EndIf
EndProcedure





;-** GOCOPY
Procedure GOCOPY(*ldvmultimedia)  
  
  MakeSureDirectoryPathExists(DEST$) ; DroopyLib - Si vous ne l'avez pas, soyez sur que le rep destination existe
  
  Copiage = CopyDirectory(SOURCE$, DEST$, "" ,#PB_FileSystem_Recursive|#PB_FileSystem_Force)
  if Copiage=0
    SetSkinItemText(#C_HORIZONTAL,"Impossible de copier le répertoire source !")
    afficheBARRE=0 : GOCOPY=0 : TUE_THREAD=1 
    
  else
    SetSkinItemText(#C_HORIZONTAL,"La copie est terminée")

    Date$ = FormatDate("%dd/%mm/%yyyy", Date())
    Time$ = FormatDate("%hh:%ii", Date())
    LaDate$=Date$+ " à "+Time$
    
    afficheBARRE=0
    TailleSOURCE=0
    TailleDEST=0
    GOCOPY=0
    TUE_THREAD=1 
    
  EndIf
  ProcedureReturn TUE_THREAD
EndProcedure

    
    ; PROCEDURES D'AFFICHAGE/MASQUAGE des gadgets
    
Procedure AffichACCUEIL()
  HideGadget(1,0)
  HideGadget(3,1)
  CacheACCUEIL=0
  
  
  ProcedureReturn CacheACCUEIL
EndProcedure
    
Procedure CacheACCUEIL()
  HideGadget(1,1)
  CacheACCUEIL=1
  ProcedureReturn CacheACCUEIL
EndProcedure
    
Procedure CacheSAUVER()
  For i = 4 to 10
    Hidegadget(i,1)
  next
  HideGadget(3,1)
  CacheSAUVER=1
  ProcedureReturn CacheSAUVER
EndProcedure
    
Procedure AffichSAUVER()
  For i = 4 to 10
    Hidegadget(i,0)
  next
  HideGadget(3,0)
  CacheSAUVER=0

  ProcedureReturn CacheSAUVER
EndProcedure
    
Procedure About()
  If CacheSAUVER=0
    CacheSAUVER()
  EndIf
  
  if CacheACCUEIL=1
    AffichACCUEIL()
  EndIf
  
  Apropos$=" LDV MULTIMEDIA - Sauvegarde Facile !"+rc+rc
   
  SetGadgetText(1,Apropos$)
  
EndProcedure

;-PROCEDURE TIMER
;Original : Dobro
Procedure TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
  
  Select uMsg
    Case #WM_TIMER
      Select idEvent
        Case #timer1
          if afficheBARRE=1
            
            TailleDEST=GetDirectorySize(DEST$)
            if TailleDEST<>TailleSOURCE
              debug "source : "+SOURCE$
              debug "taille :"+str(TailleSOURCE)
              debug "Dest : "+DEST$
              debug "poids :"+str(TailleDEST)
              Full=TailleSOURCE-TailleDEST
              debug "Progression : "+str(Full)
              SetSkinItemText(#C_HORIZONTAL,"copie en cours : "+str(Full))
            else
              afficheBARRE=0
            EndIf
          endif
      EndSelect
  EndSelect
EndProcedure 

Re: Librairie SkinWindow (Fenêtres et gadgets skinnés)

Publié : jeu. 20/janv./2011 23:28
par Ar-S
Je déterre un peu le topic de la lib parce que je lâche pas l'affaire mais que j'galère.

je poursuis le développement de ma radio, je ne sais pas ce que j'ai foutu mais je me suis embrouillé dans mon code enfin plutôt dans la gestion des event. Je ne sais pas s'il faut utiliser WaitSkinWindowEvent() et WaitWindowEvent() ou seulement WaitSkinWindowEvent() etc..

J'ai 4 fenêtres (F0 à F3)
#F0 = Fenêtre Principale Skinée avec 3 item (#ITEMa_F0, #ITEMb_F0, #QUIT_F0)
#F1 = Fenêtre normale avec une listgadget #ListeF1 + un bouton classique (#boutonF1)
#F2 = Fenêtre normale avec #ListeF2 + 2 boutons classiques (#boutonA_F2 et #boutonB_F2)
#F3 = Fenêtre normale avec #stringF3 et #boutonF3
F0 peut appeler F1 et F2 via Item
F2 peut appeler F3 via #boutonA_F2

Voilà la gestion d'event que j'utilise mais j'ai des incohérences.

Code : Tout sélectionner

;-<>-Boucles Début
	Repeat
		event.l = WaitSkinWindowEvent()
    
		Select EventSkinWindow() ; Fenêtre skinnée qui a reçu un évènement
        
        ;-=====================================================
        ;- EVENEMENTS FENETRE F0 -> SKIN
        ;-=====================================================
      Case #F0 ; Fenêtre principale 1
				Select EventSkinItem() ; Item appuyé
            
          Case #ITEMa_F0
            If OpenWindow(100,800,450,100,400,"F1",#PB_Window_SystemMenu)
              Debug "Liste 1"
            Else
              Debug "chiasse"
            EndIf
            
          Case #ITEMb_F0
            If OpenWindow(100,800,450,100,400,"F2",#PB_Window_SystemMenu)
              Debug "Liste 2"
            Else
              Debug "chiasse"
            EndIf
            
          Case #Quit_F0
            Debug "quitter"
            quitForm1=1
        EndSelect
        
        
        ;-=====================================================
        ;- EVENEMENTS FENETRE F1
        ;-=====================================================
      Case #F1 ; Fenetre 2
        Select event
          Case #PB_Event_Gadget
            Select EventGadget()
              Case #ListeF1
                Select EventType()
                  Case #PB_EventType_LeftClick
                EndSelect    
              Case #boutonF1 ; quitter
                quitForm1=1 
            EndSelect
        EndSelect 
        
        ;-=====================================================
        ;- EVENEMENTS FENETRE F2
        ;-=====================================================  
      Case F2  ; Fenetre 3
        Select event
          Case #PB_Event_Gadget
            Select EventGadget() 
              Case #ListF2
                Select EventType()
                  Case #PB_EventType_LeftClick  
                EndSelect    
                
              Case #boutonA_F2
                If OpenWindow(100,800,450,100,400,"F3",#PB_Window_SystemMenu)
                  Debug "Liste 1"
                Else
                  Debug "chiasse"
                EndIf
                
              Case #boutonB_F2
                
            EndSelect
            
          Case #PB_Event_CloseWindow
            Select EventWindow()
              Case #PLAYLIST
            EndSelect
        EndSelect    
        
        ;-=====================================================
        ;- EVENEMENTS FENETRE F3
        ;-=====================================================
      Case #F3 ; Fenetre 3
        Select event
          Case #PB_Event_Gadget
            Select EventGadget()
              Case #StringF3
              Case #boutonF3 ; quitter
                quitForm1=1 
            EndSelect
        EndSelect 
 
    EndSelect
  Until quitForm1=1

En gros les fenêtres sont appelées par les 2 items.
Je les vois bien dans la barre des taches mais je ne les vois pas sur le bureau !

Quelle est la structure correcte ?

Re: Librairie SkinWindow (Fenêtres et gadgets skinnés)

Publié : ven. 21/janv./2011 22:58
par Le Soldat Inconnu
moi, ça me semble bon comme ça :)

Il faut remplacer WaitWindowEvent() par WaitSkinWindowEvent(), il ne faut surtout pas mettre les 2

WaitSkinWindowEvent() fais comme WaitWindowEvent() sauf qu'il ajoute la gestion des gadgets skinnés

Re: Librairie SkinWindow (Fenêtres et gadgets skinnés)

Publié : ven. 21/janv./2011 23:13
par Ar-S
Hum je ne pige pas pourquoi mes fenêtres ne sont pas visibles.. :twisted:

Re: Librairie SkinWindow (Fenêtres et gadgets skinnés)

Publié : ven. 21/janv./2011 23:20
par Backup
Le Soldat Inconnu a écrit :moi, ça me semble bon comme ça :)

Il faut remplacer WaitWindowEvent() par WaitSkinWindowEvent(), il ne faut surtout pas mettre les 2

WaitSkinWindowEvent() fais comme WaitWindowEvent() sauf qu'il ajoute la gestion des gadgets skinnés
ta lib parait pas mal , cependant elle demanderai une doc ( ou une partie de html )
qui décrive le fonctionnement, de façon illustrée ...

bref un Tuto en plus de la doc , parceque ce qui te parait évident en tant que créateur
est loin de l'être pour l'utilisateur ... ;)

ce type de librairie qui touche au Graphisme des fenetres, demande a avoir une doc graphique :)