Page 1 sur 1

besoin d'aide pour mon programme en court de création

Publié : lun. 02/août/2010 14:37
par dayvid
salut !

voila donc je suis en train de crée mon programme de presse papier
mais j'ai un bug et j'arrive pas a le comprendre

voici le fichier avec tous ce donc il vous faudra
pas de virus ni saloperie, c'est garantie:

http://sd-2.archive-host.com/membres/up ... _papier.7z

sinon pour les septique vicie le fichier de code mais sans les divers fichier utile:

Code : Tout sélectionner

;{- Enumerations / DataSections
;{ Windows

Global Fichier$, thread_programme_presse_papier

Enumeration
  #Window_0
  #Menu_Window_0
  #Menu_Window_0_EfacerLaListeDuPressePapier
  #Menu_Window_0_OuvrirUneListeDePressePapier
  #Menu_Window_0_EnregistrerLaListeDuPressePapier
  #Menu_Window_0_QuitterLePressePapier
  #Menu_Window_0_Annuler
  #Menu_Window_0_Restaurer
  #Menu_Window_0_Couper
  #Menu_Window_0_Copier
  #Menu_Window_0_Coller
  #Menu_Window_0_Supprimer
  #Menu_Window_0_Apercus
  #Menu_Window_0_Rechercher
  #Menu_Window_0_cetypedelementsParOrdreAlphabetique
  #Menu_Window_0_cetypedelementsParOrdreAlphabetiqueInversser
  #Menu_Window_0_cetypedelementsParTailleDuPlusGrandAuPlusPetit
  #Menu_Window_0_cetypedelementsParTailleDuPlusPetitAuPlusGrand
  #Menu_Window_0_cetypedelementsParDateDuPlusRescentAuMoinRescent
  #Menu_Window_0_cetypedelementsParDateDuMoinsRescentAuPlusRescent
  #Menu_Window_0_touslestypedelementsParOrdreAlphabetique
  #Menu_Window_0_touslestypedelementsParOrdreAlphabetiqueInversser
  #Menu_Window_0_touslestypedelementsParTailleDuPlusGrandAuPlusPetit
  #Menu_Window_0_touslestypedelementsParTailleDuPlusPetitAuPlusGrand
  #Menu_Window_0_touslestypedelementsParDateDuPlusRescentAuMoinRescent
  #Menu_Window_0_touslestypedelementsParDateDuMoinsRescentAuPlusRescent
  #Menu_Window_0_Option
  #Menu_Window_0_AideSurLePressePapier
  #StatusBar_Window_0
  #MenuImage_Menu_Window_0_EfacerLaListeDuPressePapier
  #MenuImage_Menu_Window_0_OuvrirUneListeDePressePapier
  #MenuImage_Menu_Window_0_EnregistrerLaListeDuPressePapier
  #MenuImage_Menu_Window_0_QuitterLePressePapier
  #MenuImage_Menu_Window_0_Annuler
  #MenuImage_Menu_Window_0_Restaurer
  #MenuImage_Menu_Window_0_Couper
  #MenuImage_Menu_Window_0_Copier
  #MenuImage_Menu_Window_0_Coller
  #MenuImage_Menu_Window_0_Supprimer
  #MenuImage_Menu_Window_0_Apercus
  #MenuImage_Menu_Window_0_Rechercher
  #MenuImage_Menu_Window_0_Option
  #MenuImage_Menu_Window_0_AideSurLePressePapier
  #Menu_Window_0_Popup_Menu_Couper
  #Menu_Window_0_Popup_Menu_Copier
  #Menu_Window_0_Popup_Menu_Coller
  #Menu_Window_0_Popup_Menu_Supprimer
  #Menu_Window_0_Popup_Menu_Apercus
  #Popup_Menu_Window_0_Couper
  #Popup_Menu_Window_0_Copier
  #Popup_Menu_Window_0_Coller
  #Popup_Menu_Window_0_Supprimer
  #Popup_Menu_Window_0_Apercus
  #Tree_2
  #Text_4
  #ListIcon_7
  #Text_8
  #image
  #PopupMenu
EndEnumeration


Enumeration
#Window_1
#Button_5
#Button_6
#Button_7
#Text_16
#Text_17
#Image_0
EndEnumeration

Global couleur_bouton_1
Global couleur_bouton_2
Global couleur_bouton_3
Global nom_bouton_1$
Global nom_bouton_2$
Global nom_bouton_3$
;- Image Plugins
UsePNGImageDecoder()

;- Image Globals
Global Image0

;- Catch Images
Image0 = CatchImage(0, ?Image0)

;- Images
DataSection
Image0:
IncludeBinary "icônes\attention 3.png"
EndDataSection

;- sons Globals
Global sons0

InitSound()
UseOGGSoundDecoder()

longueur_sons_0 = ?fin - ?sons0

;- Catch sound
sons0 = CatchSound(0, ?sons0, longueur_sons_0)

;- sons
DataSection
sons0:
IncludeBinary "sons ogg\attention 3.ogg"
Fin:
EndDataSection


#FONT_NORMAL = %00000000
#FONT_BOLD = %00000001
#FONT_ITALIC = %00000010
#FONT_UNDERLINE = %00000100
#FONT_STRIKEOUT = %00001000

Procedure CreateFont(Name$,Size,Style)
If (Style & #FONT_BOLD)
bold = 700
EndIf
If (Style & #FONT_ITALIC)
italic = 1
EndIf
If (Style & #FONT_UNDERLINE)
underline = 1
EndIf
If (Style & #FONT_STRIKEOUT)
strikeout = 1
EndIf
ProcedureReturn CreateFont_(Size,0,0,0,bold,italic,underline,strikeout,0,0,0,0,0,Name$)
EndProcedure

Procedure.l MyLabeledImage(ImageNumber.l, Width.l, Height.l, Color.l, TColor.l, Label.s, Font.s, Bold.l, Italic.l, FontSize.l)
Attributes = #FONT_NORMAL
If Bold
Attributes = Attributes | #FONT_BOLD
EndIf
If Italic
Attributes = Attributes | #FONT_ITALIC
EndIf
Normal = CreateFont(Font, FontSize, #FONT_NORMAL)
Bold = CreateFont(Font, FontSize, #FONT_BOLD)
Italic = CreateFont(Font, FontSize, #FONT_ITALIC)
Bold_Italic = CreateFont(Font, FontSize, #FONT_BOLD | #FONT_ITALIC)
Select Attributes
Case #FONT_NORMAL
FontToUse = Normal
Case #FONT_BOLD
FontToUse = Bold
Case #FONT_ITALIC
FontToUse = Italic
Case #FONT_BOLD | #FONT_ITALIC
FontToUse = Bold_Italic
Default
EndSelect

ImageID.l = CreateImage(ImageNumber, Width, Height)
StartDrawing(ImageOutput(ImageNumber))
Box(0, 0, Width, Height, Color)
FrontColor(RGB(Red(TColor),Green(TColor),Blue(TColor)))
DrawingFont(FontToUse)
DrawingMode(1)
If TextWidth(Label) < Width
XPos.l = (Width - TextWidth(Label)) / 2
Else
XPos.l = 4
EndIf
If TextWidth(" M") < Height
YPos.l = (Height - TextWidth(" M")) / 2 - 2
Else
YPos.l = 0
EndIf
DrawText(XPos, YPos,Label)
StopDrawing()
ProcedureReturn ImageID
EndProcedure

Procedure boite_de_dialogue_effacer_liste_presse_papier(parametre_boite_de_dialogue_effacer_liste_presse_papier)
If OpenWindow(#Window_1, 437, 276, 437, 157, "Attention...",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
PlaySound(0)
SetWindowColor(#Window_1, RGB(255, 255, 255))
ButtonImageGadget(#Button_5, 117, 125, 95, 25, MyLabeledImage(1, 95, 25, #PureCOLOR_SystemColor, 489472, "Oui", "cambria", 0, 0, 12))
ButtonImageGadget(#Button_7, 223, 125, 95, 25, MyLabeledImage(2, 95, 25, #PureCOLOR_SystemColor, 1835263, "Non", "cambria", 0, 0, 12))
TextGadget(#Text_16, 67, 11, 361, 105, ""+ Chr(13) +""+ Chr(13) +""+ Chr(13) +"Vous êtes bien certain de vouloir tout éffacer ?", #PB_Text_Center)
TextGadget(#Text_17, 9, 11, 58, 105, "")
SetGadgetColor(#Text_16, #PB_Gadget_BackColor, RGB(255, 255, 255))
SetGadgetColor(#Text_16, #PB_Gadget_FrontColor, 16713984)
SetGadgetColor(#Text_17, #PB_Gadget_BackColor, RGB(255, 255, 255))
ImageGadget(#Image_0, 20, 40, 38, 38, Image0)

EndIf

Repeat ; Start of the event loop

Event_2 = WaitWindowEvent(1) ; This line waits until an event is received from Windows
GadgetID_2 = EventGadget()

If  GadgetID_2 = #Button_5
DeleteFile("Bouton cliquer.txt")
OpenFile(1, "Bouton cliquer.txt")
WriteString(1, "Oui")
CloseFile(1)
Event_2 = #PB_Event_CloseWindow
ElseIf  GadgetID_2 = #Button_7
DeleteFile("Bouton cliquer.txt")
OpenFile(1, "Bouton cliquer.txt")
WriteString(1, "Non")
CloseFile(1)
Event_2 = #PB_Event_CloseWindow
EndIf

Until Event_2 = #PB_Event_CloseWindow ; End of the event loop
CloseWindow(#Window_1)
EndProcedure

Procedure SetClipboardFile(List ListeFichier2.s())
  Protected hDrop.DROPFILES, *dat, add.i, hMem.i, *buff
  
  If OpenClipboard_(0)
    ;on vide le presse papier
    EmptyClipboard_()
    
    ;on ajoute met tous les fichiers dans une zone mémoire (avec le chr(0))
    FirstElement(ListeFichier2())
    ForEach ListeFichier2()
      If *dat
        add = MemorySize(*dat)
      Else
        add = 0
      EndIf
      *dat = ReAllocateMemory(*dat, add+Len(ListeFichier2())+1)
      PokeS(*dat+add, ListeFichier2(), Len(ListeFichier2()))
      PokeB(*dat+add+Len(ListeFichier2()), 0)
    Next
    hDrop\pFiles = SizeOf(DROPFILES)
    
    hMem = GlobalAlloc_(#GMEM_MOVEABLE, SizeOf(DROPFILES)+MemorySize(*dat))
    *buff = GlobalLock_(hMem)
    CopyMemory(@hDrop, *buff, SizeOf(DROPFILES))
    CopyMemory(*dat, *buff+SizeOf(DROPFILES), MemorySize(*dat))
    GlobalUnlock_(hMem)
    SetClipboardData_(#CF_HDROP, hMem)
    CloseClipboard_()
    ProcedureReturn 1
  EndIf
  
  ProcedureReturn 0
EndProcedure

;renvoi les fichiers contenus dans le press-papier dans files()
Procedure.s getClipboardFiles()

NewList ListeFichier.s()
AddElement(ListeFichier())
ListeFichier() = GetClipboardText()

  Protected hDrop, i.i, fileName.s
  
  If OpenClipboard_(0) And IsClipboardFormatAvailable_(#CF_HDROP)
    hDrop = GetClipboardData_(#CF_HDROP)
    Repeat
      fileName = Space(1024)
      DragQueryFile_(hDrop, i, @fileName, 1024)
      fileName = Trim(fileName)
      If fileName <> ""
        AddElement(ListeFichier())
        ListeFichier() = fileName
        ListeFichier$ + ListeFichier() + Chr(13) + Chr(10)
      EndIf
      i + 1
    Until fileName = ""
    CloseClipboard_()
    
    ProcedureReturn ListeFichier$
  EndIf
  
  ProcedureReturn "Aucune adresse de fichier n'est présent dans le presse papier"
EndProcedure

;}
;{ Included Images

UsePNGImageDecoder()

DataSection
  MenuImage_Menu_Window_0_EfacerLaListeDuPressePapier:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\filenew2.png"
  MenuImage_Menu_Window_0_OuvrirUneListeDePressePapier:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\ouvrire.png"
  MenuImage_Menu_Window_0_EnregistrerLaListeDuPressePapier:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\saveicon.png"
  MenuImage_Menu_Window_0_QuitterLePressePapier:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\1431.ico"
  MenuImage_Menu_Window_0_Annuler:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\annuler.ico"
  MenuImage_Menu_Window_0_Restaurer:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\restaurer.ico"
  MenuImage_Menu_Window_0_Couper:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\cuticon.png"
  MenuImage_Menu_Window_0_Copier:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\copyicon.png"
  MenuImage_Menu_Window_0_Coller:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\pasteicon.png"
  MenuImage_Menu_Window_0_Supprimer:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\error.png"
  MenuImage_Menu_Window_0_Apercus:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\jeueditor.png"
  MenuImage_Menu_Window_0_Rechercher:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\rechercher.ico"
  MenuImage_Menu_Window_0_Option:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\prefferences.ico"
  MenuImage_Menu_Window_0_AideSurLePressePapier:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\aide (2).ico"
  Popup_Menu_Window_0_Couper:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\cuticon.png"
  Popup_Menu_Window_0_Copier:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\copyicon.png"
  Popup_Menu_Window_0_Coller:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\pasteicon.png"
  Popup_Menu_Window_0_Supprimer:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\error.png"
  Popup_Menu_Window_0_Apercus:
  IncludeBinary "C:\Users\dayvid\Desktop\Programme presse papier\icônes\jeueditor.png"
EndDataSection
;}
;}
Procedure Programme_presse_papier(parametre_programme_presse_papier)
  If OpenWindow(#Window_0, 538, 271, 550, 397, "presse papier ++", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    SmartWindowRefresh(#Window_0, #True)
    If CreateImageMenu(#Menu_Window_0, WindowID(#Window_0), #PB_Menu_ModernLook)
      MenuTitle("Fichier")
      MenuItem(#Menu_Window_0_EfacerLaListeDuPressePapier, "Efacer la liste du presse papier", CatchImage(#MenuImage_Menu_Window_0_EfacerLaListeDuPressePapier, ?MenuImage_Menu_Window_0_EfacerLaListeDuPressePapier))
      MenuBar()
      MenuItem(#Menu_Window_0_OuvrirUneListeDePressePapier, "Ouvrir une liste de presse papier", CatchImage(#MenuImage_Menu_Window_0_OuvrirUneListeDePressePapier, ?MenuImage_Menu_Window_0_OuvrirUneListeDePressePapier))
      MenuItem(#Menu_Window_0_EnregistrerLaListeDuPressePapier, "Enregistrer la liste du presse papier", CatchImage(#MenuImage_Menu_Window_0_EnregistrerLaListeDuPressePapier, ?MenuImage_Menu_Window_0_EnregistrerLaListeDuPressePapier))
      MenuBar()
      MenuItem(#Menu_Window_0_QuitterLePressePapier, "Quitter le presse papier", CatchImage(#MenuImage_Menu_Window_0_QuitterLePressePapier, ?MenuImage_Menu_Window_0_QuitterLePressePapier))
      MenuTitle("Edition")
      MenuItem(#Menu_Window_0_Annuler, "Annuler", CatchImage(#MenuImage_Menu_Window_0_Annuler, ?MenuImage_Menu_Window_0_Annuler))
      MenuItem(#Menu_Window_0_Restaurer, "Restaurer", CatchImage(#MenuImage_Menu_Window_0_Restaurer, ?MenuImage_Menu_Window_0_Restaurer))
      MenuBar()
      MenuItem(#Menu_Window_0_Couper, "Couper", CatchImage(#MenuImage_Menu_Window_0_Couper, ?MenuImage_Menu_Window_0_Couper))
      MenuItem(#Menu_Window_0_Copier, "Copier", CatchImage(#MenuImage_Menu_Window_0_Copier, ?MenuImage_Menu_Window_0_Copier))
      MenuItem(#Menu_Window_0_Coller, "Coller", CatchImage(#MenuImage_Menu_Window_0_Coller, ?MenuImage_Menu_Window_0_Coller))
      MenuBar()
      MenuItem(#Menu_Window_0_Supprimer, "Supprimer", CatchImage(#MenuImage_Menu_Window_0_Supprimer, ?MenuImage_Menu_Window_0_Supprimer))
      MenuBar()
      MenuItem(#Menu_Window_0_Apercus, "Aperçus", CatchImage(#MenuImage_Menu_Window_0_Apercus, ?MenuImage_Menu_Window_0_Apercus))
      MenuBar()
      MenuItem(#Menu_Window_0_Rechercher, "Rechercher", CatchImage(#MenuImage_Menu_Window_0_Rechercher, ?MenuImage_Menu_Window_0_Rechercher))     
;{       OpenSubMenu("Classer ")
;       OpenSubMenu("ce type d'éléments")
;       MenuItem(#Menu_Window_0_cetypedelementsParOrdreAlphabetique, "Par ordre alphabetique")
;       MenuItem(#Menu_Window_0_cetypedelementsParOrdreAlphabetiqueInversser, "Par ordre alphabetique inversser")
;       MenuBar()
;       MenuItem(#Menu_Window_0_cetypedelementsParTailleDuPlusGrandAuPlusPetit, "Par taille du plus grand au plus petit")
;       MenuItem(#Menu_Window_0_cetypedelementsParTailleDuPlusPetitAuPlusGrand, "Par taille du plus petit au plus grand")
;       MenuBar()
;       MenuItem(#Menu_Window_0_cetypedelementsParDateDuPlusRescentAuMoinRescent, "Par date du plus rescent au moin rescent")
;       MenuItem(#Menu_Window_0_cetypedelementsParDateDuMoinsRescentAuPlusRescent, "Par date du moins rescent au plus rescent")
;       CloseSubMenu()
;       OpenSubMenu("tous les types d'éléments")
;       MenuItem(#Menu_Window_0_touslestypedelementsParOrdreAlphabetique, "Par ordre alphabetique")
;       MenuItem(#Menu_Window_0_touslestypedelementsParOrdreAlphabetiqueInversser, "Par ordre alphabetique inversser")
;       MenuBar()
;       MenuItem(#Menu_Window_0_touslestypedelementsParTailleDuPlusGrandAuPlusPetit, "Par taille du plus grand au plus petit")
;       MenuItem(#Menu_Window_0_touslestypedelementsParTailleDuPlusPetitAuPlusGrand, "Par taille du plus petit au plus grand")
;       MenuBar()
;       MenuItem(#Menu_Window_0_touslestypedelementsParDateDuPlusRescentAuMoinRescent, "Par date du plus rescent au moin rescent")
;       MenuItem(#Menu_Window_0_touslestypedelementsParDateDuMoinsRescentAuPlusRescent, "Par date du moins rescent au plus rescent")
;}
      MenuTitle("Réglages")
      MenuItem(#Menu_Window_0_Option, "Option", CatchImage(#MenuImage_Menu_Window_0_Option, ?MenuImage_Menu_Window_0_Option))
      MenuTitle("Aide")
      MenuItem(#Menu_Window_0_AideSurLePressePapier, "Aide sur le presse papier", CatchImage(#MenuImage_Menu_Window_0_AideSurLePressePapier, ?MenuImage_Menu_Window_0_AideSurLePressePapier))
    EndIf
    If CreatePopupImageMenu(#PopupMenu, #PB_Menu_ModernLook)
    MenuItem(#Menu_Window_0_Popup_Menu_Couper, "Couper", CatchImage(#Popup_Menu_Window_0_Couper, ?Popup_Menu_Window_0_Couper))
    MenuItem(#Menu_Window_0_Popup_Menu_Copier, "Copier", CatchImage(#Popup_Menu_Window_0_Copier, ?Popup_Menu_Window_0_Copier))
    MenuItem(#Menu_Window_0_Popup_Menu_Coller, "Coller", CatchImage(#Popup_Menu_Window_0_Coller, ?Popup_Menu_Window_0_Coller))
    MenuBar()
    MenuItem(#Menu_Window_0_Popup_Menu_Supprimer, "Supprimer", CatchImage(#Popup_Menu_Window_0_Supprimer, ?Popup_Menu_Window_0_Supprimer))
    MenuBar()
    MenuItem(#Menu_Window_0_Popup_Menu_Apercus, "Aperçus", CatchImage(#Popup_Menu_Window_0_Apercus, ?Popup_Menu_Window_0_Apercus))
    EndIf
    If CreateStatusBar(#StatusBar_Window_0, WindowID(#Window_0))
      AddStatusBarField(0)
      StatusBarText(#StatusBar_Window_0, 0, "''")
    EndIf
    TreeGadget(#Tree_2, 10, 30, 220, 315, #PB_Tree_AlwaysShowSelection)
    AddGadgetItem (#Tree_2, -1, "Texte", 0, 0)
    AddGadgetItem (#Tree_2, -1, "Fichier", 0, 0)
    AddGadgetItem (#Tree_2, -1, "Image", 0, 0)
    TextGadget(#Text_4, 10, 10, 220, 15, "Elément actuel du presse papier:", #PB_Text_Center)
    ListIconGadget(#ListIcon_7, 240, 30, 304, 315, "Données copier", 100, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines)
    ;SendMessage_(GadgetID(#ListIcon_7), #LVM_SETCOLUMNWIDTH, 0, #LVSCW_AUTOSIZE_USEHEADER)
    AddGadgetColumn(#ListIcon_7, 1, "Date de copie", 100)
    AddGadgetColumn(#ListIcon_7, 1, "Type de donnée", 100)
    AddGadgetItem (#ListIcon_7, -1, "", 0, 0)
    TextGadget(#Text_8, 240, 10, 270, 15, "Lien actuel de l'élément du presse papier:", #PB_Text_Center)
    ; Gadget Resizing
    PureRESIZE_SetGadgetResize(#Tree_2, 1, 1, 0, 1)
    PureRESIZE_SetGadgetResize(#Text_4, 1, 1, 0, 0)
    PureRESIZE_SetGadgetResize(#ListIcon_7, 1, 1, 1, 1)
    PureRESIZE_SetGadgetResize(#Text_8, 1, 1, 1, 0)
    ; Window Minimum Size
    PureRESIZE_SetWindowMinimumSize(#Window_0, 554, 401)
  EndIf
  
  
;{- Event loop
Repeat
reprise_du_propgramme_presse_papier:
; je regarde se qui se trouve actuellement dans le presse papier:

Fichier$ = getClipboardFiles()
If Fichier$ <> "Aucune adresse de fichier n'est présent dans le presse papier"
; si ya bien une ou plusieur adresse de fichier dans le presse papier

Else 
; si ya pas d'adresse de fichier dans le presse papier, ont regarde si c'est pas une image

If GetClipboardImage(#image)
; si ya bien une image dans le presse papier

Else
; si ya pas d'image dans le presse papier

If GetClipboardText()
; si ya un texte dans le presse papier

Else
; si ya pas de texte dans le presse papier, c'est que ya rien du tous

EndIf

EndIf

EndIf


  Select WaitWindowEvent(1)
    ; ///////////////////
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Tree_2
        Case #Text_4
        Case #ListIcon_7
        Select EventType()
        Case #PB_EventType_RightClick
        DisplayPopupMenu(#PopupMenu,WindowID(#Window_0))
        EndSelect
        Case #Text_8
      EndSelect
    ; /////////////////
    Case #PB_Event_Menu
      Select EventMenu()
        Case #Menu_Window_0_EfacerLaListeDuPressePapier
        thread_boite_de_dialogue_effacer_liste_presse_papier = CreateThread(@boite_de_dialogue_effacer_liste_presse_papier(), parametre_boite_de_dialogue_effacer_liste_presse_papier)
        WaitThread(thread_boite_de_dialogue_effacer_liste_presse_papier)
        ;Goto reprise_du_propgramme_presse_papier
        Case #Menu_Window_0_OuvrirUneListeDePressePapier
        Case #Menu_Window_0_EnregistrerLaListeDuPressePapier
        Case #Menu_Window_0_QuitterLePressePapier
        Case #Menu_Window_0_Annuler
        Case #Menu_Window_0_Restaurer
        Case #Menu_Window_0_Couper
        Case #Menu_Window_0_Copier
        Case #Menu_Window_0_Coller
        Case #Menu_Window_0_Supprimer
        Case #Menu_Window_0_Apercus
        Case #Menu_Window_0_Rechercher
        Case #Menu_Window_0_cetypedelementsParOrdreAlphabetique
        Case #Menu_Window_0_cetypedelementsParOrdreAlphabetiqueInversser
        Case #Menu_Window_0_cetypedelementsParTailleDuPlusGrandAuPlusPetit
        Case #Menu_Window_0_cetypedelementsParTailleDuPlusPetitAuPlusGrand
        Case #Menu_Window_0_cetypedelementsParDateDuPlusRescentAuMoinRescent
        Case #Menu_Window_0_cetypedelementsParDateDuMoinsRescentAuPlusRescent
        Case #Menu_Window_0_touslestypedelementsParOrdreAlphabetique
        Case #Menu_Window_0_touslestypedelementsParOrdreAlphabetiqueInversser
        Case #Menu_Window_0_touslestypedelementsParTailleDuPlusGrandAuPlusPetit
        Case #Menu_Window_0_touslestypedelementsParTailleDuPlusPetitAuPlusGrand
        Case #Menu_Window_0_touslestypedelementsParDateDuPlusRescentAuMoinRescent
        Case #Menu_Window_0_touslestypedelementsParDateDuMoinsRescentAuPlusRescent
        Case #Menu_Window_0_Option
        Case #Menu_Window_0_AideSurLePressePapier
      EndSelect
    ; ////////////////////////
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #Window_0
          CloseWindow(#Window_0)
          Break
      EndSelect
  EndSelect
ForEver
;
;}
EndProcedure



thread_programme_presse_papier = CreateThread(@programme_presse_papier(), parametre_programme_presse_papier)
WaitThread(thread_programme_presse_papier)

lancer le programme avec tous les fichier et cliquer sur le menu et sur effacer le presse papier ou un truc comme sa dans fichier, premier élément, fermer la fenêtre d'avertissement et la sa bug, j'ai pue remarquer que la fenêtre du programme principale n'est plus initialiser et mystère
merci de votre aide :D

Re: besoin d'aide pour mon programme en court de création

Publié : lun. 02/août/2010 19:45
par nico
Le problème:
#Window_0 à la même valeur que #Window_1
Utilise des chemins relatif dans tes datas section pour les images
Arrête de mettre des thread partout, ça sert à rien
Evite d'utiliser Waitwindowevent() mais windowevent()

Code : Tout sélectionner

;{- Enumerations / DataSections
;{ Windows

Global Fichier$, thread_programme_presse_papier

Enumeration
  #Window_0
  #Menu_Window_0
  #Menu_Window_0_EfacerLaListeDuPressePapier
  #Menu_Window_0_OuvrirUneListeDePressePapier
  #Menu_Window_0_EnregistrerLaListeDuPressePapier
  #Menu_Window_0_QuitterLePressePapier
  #Menu_Window_0_Annuler
  #Menu_Window_0_Restaurer
  #Menu_Window_0_Couper
  #Menu_Window_0_Copier
  #Menu_Window_0_Coller
  #Menu_Window_0_Supprimer
  #Menu_Window_0_Apercus
  #Menu_Window_0_Rechercher
  #Menu_Window_0_cetypedelementsParOrdreAlphabetique
  #Menu_Window_0_cetypedelementsParOrdreAlphabetiqueInversser
  #Menu_Window_0_cetypedelementsParTailleDuPlusGrandAuPlusPetit
  #Menu_Window_0_cetypedelementsParTailleDuPlusPetitAuPlusGrand
  #Menu_Window_0_cetypedelementsParDateDuPlusRescentAuMoinRescent
  #Menu_Window_0_cetypedelementsParDateDuMoinsRescentAuPlusRescent
  #Menu_Window_0_touslestypedelementsParOrdreAlphabetique
  #Menu_Window_0_touslestypedelementsParOrdreAlphabetiqueInversser
  #Menu_Window_0_touslestypedelementsParTailleDuPlusGrandAuPlusPetit
  #Menu_Window_0_touslestypedelementsParTailleDuPlusPetitAuPlusGrand
  #Menu_Window_0_touslestypedelementsParDateDuPlusRescentAuMoinRescent
  #Menu_Window_0_touslestypedelementsParDateDuMoinsRescentAuPlusRescent
  #Menu_Window_0_Option
  #Menu_Window_0_AideSurLePressePapier
  #StatusBar_Window_0
  #MenuImage_Menu_Window_0_EfacerLaListeDuPressePapier
  #MenuImage_Menu_Window_0_OuvrirUneListeDePressePapier
  #MenuImage_Menu_Window_0_EnregistrerLaListeDuPressePapier
  #MenuImage_Menu_Window_0_QuitterLePressePapier
  #MenuImage_Menu_Window_0_Annuler
  #MenuImage_Menu_Window_0_Restaurer
  #MenuImage_Menu_Window_0_Couper
  #MenuImage_Menu_Window_0_Copier
  #MenuImage_Menu_Window_0_Coller
  #MenuImage_Menu_Window_0_Supprimer
  #MenuImage_Menu_Window_0_Apercus
  #MenuImage_Menu_Window_0_Rechercher
  #MenuImage_Menu_Window_0_Option
  #MenuImage_Menu_Window_0_AideSurLePressePapier
  #Menu_Window_0_Popup_Menu_Couper
  #Menu_Window_0_Popup_Menu_Copier
  #Menu_Window_0_Popup_Menu_Coller
  #Menu_Window_0_Popup_Menu_Supprimer
  #Menu_Window_0_Popup_Menu_Apercus
  #Popup_Menu_Window_0_Couper
  #Popup_Menu_Window_0_Copier
  #Popup_Menu_Window_0_Coller
  #Popup_Menu_Window_0_Supprimer
  #Popup_Menu_Window_0_Apercus
  #Tree_2
  #Text_4
  #ListIcon_7
  #Text_8
  #image
  #PopupMenu
EndEnumeration


Enumeration 100
  #Window_1
  #Button_5
  #Button_6
  #Button_7
  #Text_16
  #Text_17
  #Image_0
EndEnumeration

Global couleur_bouton_1
Global couleur_bouton_2
Global couleur_bouton_3
Global nom_bouton_1$
Global nom_bouton_2$
Global nom_bouton_3$
;- Image Plugins
UsePNGImageDecoder()

;- Image Globals
Global Image0

;- Catch Images
Image0 = CatchImage(0, ?Image0)

;- Images
DataSection
  Image0:
  IncludeBinary "icônes\attention 3.png"
EndDataSection

;- sons Globals
Global sons0

InitSound()
UseOGGSoundDecoder()

longueur_sons_0 = ?fin - ?sons0

;- Catch sound
sons0 = CatchSound(0, ?sons0, longueur_sons_0)

;- sons
DataSection
  sons0:
  IncludeBinary "sons ogg\attention 3.ogg"
  Fin:
EndDataSection


#FONT_NORMAL = %00000000
#FONT_BOLD = %00000001
#FONT_ITALIC = %00000010
#FONT_UNDERLINE = %00000100
#FONT_STRIKEOUT = %00001000

Procedure CreateFont(Name$,Size,Style)
  If (Style & #FONT_BOLD)
    bold = 700
  EndIf
  If (Style & #FONT_ITALIC)
    italic = 1
  EndIf
  If (Style & #FONT_UNDERLINE)
    underline = 1
  EndIf
  If (Style & #FONT_STRIKEOUT)
    strikeout = 1
  EndIf
  ProcedureReturn CreateFont_(Size,0,0,0,bold,italic,underline,strikeout,0,0,0,0,0,Name$)
EndProcedure

Procedure.l MyLabeledImage(ImageNumber.l, Width.l, Height.l, Color.l, TColor.l, Label.s, Font.s, Bold.l, Italic.l, FontSize.l)
  Attributes = #FONT_NORMAL
  If Bold
    Attributes = Attributes | #FONT_BOLD
  EndIf
  If Italic
    Attributes = Attributes | #FONT_ITALIC
  EndIf
  Normal = CreateFont(Font, FontSize, #FONT_NORMAL)
  Bold = CreateFont(Font, FontSize, #FONT_BOLD)
  Italic = CreateFont(Font, FontSize, #FONT_ITALIC)
  Bold_Italic = CreateFont(Font, FontSize, #FONT_BOLD | #FONT_ITALIC)
  Select Attributes
    Case #FONT_NORMAL
      FontToUse = Normal
    Case #FONT_BOLD
      FontToUse = Bold
    Case #FONT_ITALIC
      FontToUse = Italic
    Case #FONT_BOLD | #FONT_ITALIC
      FontToUse = Bold_Italic
    Default
  EndSelect
  
  ImageID.l = CreateImage(ImageNumber, Width, Height)
  StartDrawing(ImageOutput(ImageNumber))
  Box(0, 0, Width, Height, Color)
  FrontColor(RGB(Red(TColor),Green(TColor),Blue(TColor)))
  DrawingFont(FontToUse)
  DrawingMode(1)
  If TextWidth(Label) < Width
    XPos.l = (Width - TextWidth(Label)) / 2
  Else
    XPos.l = 4
  EndIf
  If TextWidth(" M") < Height
    YPos.l = (Height - TextWidth(" M")) / 2 - 2
  Else
    YPos.l = 0
  EndIf
  DrawText(XPos, YPos,Label)
  StopDrawing()
  ProcedureReturn ImageID
EndProcedure

Procedure boite_de_dialogue_effacer_liste_presse_papier(parametre_boite_de_dialogue_effacer_liste_presse_papier)
  If OpenWindow(#Window_1, 437, 276, 437, 157, "Attention...",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
    PlaySound(0)
    SetWindowColor(#Window_1, RGB(255, 255, 255))
    ButtonGadget(#Button_5, 117, 125, 95, 25, "Oui")
    ButtonGadget(#Button_7, 223, 125, 95, 25, "Non")
    TextGadget(#Text_16, 67, 11, 361, 105, ""+ Chr(13) +""+ Chr(13) +""+ Chr(13) +"Vous êtes bien certain de vouloir tout éffacer ?", #PB_Text_Center)
    TextGadget(#Text_17, 9, 11, 58, 105, "")
    SetGadgetColor(#Text_16, #PB_Gadget_BackColor, RGB(255, 255, 255))
    SetGadgetColor(#Text_16, #PB_Gadget_FrontColor, 16713984)
    SetGadgetColor(#Text_17, #PB_Gadget_BackColor, RGB(255, 255, 255))
    ImageGadget(#Image_0, 20, 40, 38, 38, Image0)
    
  EndIf
  
  Repeat ; Start of the event loop
    
    Event_2 = WindowEvent() ; This line waits until an event is received from Windows
    GadgetID_2 = EventGadget()
    
    If  GadgetID_2 = #Button_5
      DeleteFile("Bouton cliquer.txt")
      OpenFile(1, "Bouton cliquer.txt")
      WriteString(1, "Oui")
      CloseFile(1)
      Event_2 = #PB_Event_CloseWindow
    ElseIf  GadgetID_2 = #Button_7
      DeleteFile("Bouton cliquer.txt")
      OpenFile(1, "Bouton cliquer.txt")
      WriteString(1, "Non")
      CloseFile(1)
      Event_2 = #PB_Event_CloseWindow
    EndIf
    
  Until Event_2 = #PB_Event_CloseWindow ; End of the event loop
  CloseWindow(#Window_1)
EndProcedure

Procedure SetClipboardFile(List ListeFichier2.s())
  Protected hDrop.DROPFILES, *dat, add.i, hMem.i, *buff
  
  If OpenClipboard_(0)
    ;on vide le presse papier
    EmptyClipboard_()
    
    ;on ajoute met tous les fichiers dans une zone mémoire (avec le chr(0))
    FirstElement(ListeFichier2())
    ForEach ListeFichier2()
      If *dat
        add = MemorySize(*dat)
      Else
        add = 0
      EndIf
      *dat = ReAllocateMemory(*dat, add+Len(ListeFichier2())+1)
      PokeS(*dat+add, ListeFichier2(), Len(ListeFichier2()))
      PokeB(*dat+add+Len(ListeFichier2()), 0)
    Next
    hDrop\pFiles = SizeOf(DROPFILES)
    
    hMem = GlobalAlloc_(#GMEM_MOVEABLE, SizeOf(DROPFILES)+MemorySize(*dat))
    *buff = GlobalLock_(hMem)
    CopyMemory(@hDrop, *buff, SizeOf(DROPFILES))
    CopyMemory(*dat, *buff+SizeOf(DROPFILES), MemorySize(*dat))
    GlobalUnlock_(hMem)
    SetClipboardData_(#CF_HDROP, hMem)
    CloseClipboard_()
    ProcedureReturn 1
  EndIf
  
  ProcedureReturn 0
EndProcedure

;renvoi les fichiers contenus dans le press-papier dans files()
Procedure.s getClipboardFiles()
  
  NewList ListeFichier.s()
  AddElement(ListeFichier())
  ListeFichier() = GetClipboardText()
  
  Protected hDrop, i.i, fileName.s
  
  If OpenClipboard_(0) And IsClipboardFormatAvailable_(#CF_HDROP)
    hDrop = GetClipboardData_(#CF_HDROP)
    Repeat
      fileName = Space(1024)
      DragQueryFile_(hDrop, i, @fileName, 1024)
      fileName = Trim(fileName)
      If fileName <> ""
        AddElement(ListeFichier())
        ListeFichier() = fileName
        ListeFichier$ + ListeFichier() + Chr(13) + Chr(10)
      EndIf
      i + 1
    Until fileName = ""
    CloseClipboard_()
    
    ProcedureReturn ListeFichier$
  EndIf
  
  ProcedureReturn "Aucune adresse de fichier n'est présent dans le presse papier"
EndProcedure

;}
;{ Included Images

UsePNGImageDecoder()

DataSection
  MenuImage_Menu_Window_0_EfacerLaListeDuPressePapier:
  IncludeBinary "icônes\filenew2.png"
  MenuImage_Menu_Window_0_OuvrirUneListeDePressePapier:
  IncludeBinary "icônes\ouvrire.png"
  MenuImage_Menu_Window_0_EnregistrerLaListeDuPressePapier:
  IncludeBinary "icônes\saveicon.png"
  MenuImage_Menu_Window_0_QuitterLePressePapier:
  IncludeBinary "icônes\1431.ico"
  MenuImage_Menu_Window_0_Annuler:
  IncludeBinary "icônes\annuler.ico"
  MenuImage_Menu_Window_0_Restaurer:
  IncludeBinary "icônes\restaurer.ico"
  MenuImage_Menu_Window_0_Couper:
  IncludeBinary "icônes\cuticon.png"
  MenuImage_Menu_Window_0_Copier:
  IncludeBinary "icônes\copyicon.png"
  MenuImage_Menu_Window_0_Coller:
  IncludeBinary "icônes\pasteicon.png"
  MenuImage_Menu_Window_0_Supprimer:
  IncludeBinary "icônes\error.png"
  MenuImage_Menu_Window_0_Apercus:
  IncludeBinary "icônes\jeueditor.png"
  MenuImage_Menu_Window_0_Rechercher:
  IncludeBinary "icônes\rechercher.ico"
  MenuImage_Menu_Window_0_Option:
  IncludeBinary "icônes\prefferences.ico"
  MenuImage_Menu_Window_0_AideSurLePressePapier:
  IncludeBinary "icônes\aide (2).ico"
  Popup_Menu_Window_0_Couper:
  IncludeBinary "icônes\cuticon.png"
  Popup_Menu_Window_0_Copier:
  IncludeBinary "icônes\copyicon.png"
  Popup_Menu_Window_0_Coller:
  IncludeBinary "icônes\pasteicon.png"
  Popup_Menu_Window_0_Supprimer:
  IncludeBinary "icônes\error.png"
  Popup_Menu_Window_0_Apercus:
  IncludeBinary "icônes\jeueditor.png"
EndDataSection
;}
;}


Procedure Clipboard(lParam.i)
  Repeat
    Fichier$ = getClipboardFiles()
    If Fichier$ <> "Aucune adresse de fichier n'est présent dans le presse papier"
      ; si ya bien une ou plusieur adresse de fichier dans le presse papier
      
    Else 
      ; si ya pas d'adresse de fichier dans le presse papier, ont regarde si c'est pas une image
      
      If GetClipboardImage(#image)
        ; si ya bien une image dans le presse papier
        
      Else
        ; si ya pas d'image dans le presse papier
        
        If GetClipboardText()
          ; si ya un texte dans le presse papier
          
        Else
          ; si ya pas de texte dans le presse papier, c'est que ya rien du tous
          
        EndIf
        
      EndIf
      
    EndIf
    Delay(1000)
  Until Quit=1
  
EndProcedure


Procedure Programme_presse_papier(parametre_programme_presse_papier)
  If OpenWindow(#Window_0, 538, 271, 550, 397, "presse papier ++", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    SmartWindowRefresh(#Window_0, #True)
    If CreateImageMenu(#Menu_Window_0, WindowID(#Window_0), #PB_Menu_ModernLook)
      MenuTitle("Fichier")
      MenuItem(#Menu_Window_0_EfacerLaListeDuPressePapier, "Efacer la liste du presse papier", CatchImage(#MenuImage_Menu_Window_0_EfacerLaListeDuPressePapier, ?MenuImage_Menu_Window_0_EfacerLaListeDuPressePapier))
      MenuBar()
      MenuItem(#Menu_Window_0_OuvrirUneListeDePressePapier, "Ouvrir une liste de presse papier", CatchImage(#MenuImage_Menu_Window_0_OuvrirUneListeDePressePapier, ?MenuImage_Menu_Window_0_OuvrirUneListeDePressePapier))
      MenuItem(#Menu_Window_0_EnregistrerLaListeDuPressePapier, "Enregistrer la liste du presse papier", CatchImage(#MenuImage_Menu_Window_0_EnregistrerLaListeDuPressePapier, ?MenuImage_Menu_Window_0_EnregistrerLaListeDuPressePapier))
      MenuBar()
      MenuItem(#Menu_Window_0_QuitterLePressePapier, "Quitter le presse papier", CatchImage(#MenuImage_Menu_Window_0_QuitterLePressePapier, ?MenuImage_Menu_Window_0_QuitterLePressePapier))
      MenuTitle("Edition")
      MenuItem(#Menu_Window_0_Annuler, "Annuler", CatchImage(#MenuImage_Menu_Window_0_Annuler, ?MenuImage_Menu_Window_0_Annuler))
      MenuItem(#Menu_Window_0_Restaurer, "Restaurer", CatchImage(#MenuImage_Menu_Window_0_Restaurer, ?MenuImage_Menu_Window_0_Restaurer))
      MenuBar()
      MenuItem(#Menu_Window_0_Couper, "Couper", CatchImage(#MenuImage_Menu_Window_0_Couper, ?MenuImage_Menu_Window_0_Couper))
      MenuItem(#Menu_Window_0_Copier, "Copier", CatchImage(#MenuImage_Menu_Window_0_Copier, ?MenuImage_Menu_Window_0_Copier))
      MenuItem(#Menu_Window_0_Coller, "Coller", CatchImage(#MenuImage_Menu_Window_0_Coller, ?MenuImage_Menu_Window_0_Coller))
      MenuBar()
      MenuItem(#Menu_Window_0_Supprimer, "Supprimer", CatchImage(#MenuImage_Menu_Window_0_Supprimer, ?MenuImage_Menu_Window_0_Supprimer))
      MenuBar()
      MenuItem(#Menu_Window_0_Apercus, "Aperçus", CatchImage(#MenuImage_Menu_Window_0_Apercus, ?MenuImage_Menu_Window_0_Apercus))
      MenuBar()
      MenuItem(#Menu_Window_0_Rechercher, "Rechercher", CatchImage(#MenuImage_Menu_Window_0_Rechercher, ?MenuImage_Menu_Window_0_Rechercher))     
      ;{       OpenSubMenu("Classer ")
      ;       OpenSubMenu("ce type d'éléments")
      ;       MenuItem(#Menu_Window_0_cetypedelementsParOrdreAlphabetique, "Par ordre alphabetique")
      ;       MenuItem(#Menu_Window_0_cetypedelementsParOrdreAlphabetiqueInversser, "Par ordre alphabetique inversser")
      ;       MenuBar()
      ;       MenuItem(#Menu_Window_0_cetypedelementsParTailleDuPlusGrandAuPlusPetit, "Par taille du plus grand au plus petit")
      ;       MenuItem(#Menu_Window_0_cetypedelementsParTailleDuPlusPetitAuPlusGrand, "Par taille du plus petit au plus grand")
      ;       MenuBar()
      ;       MenuItem(#Menu_Window_0_cetypedelementsParDateDuPlusRescentAuMoinRescent, "Par date du plus rescent au moin rescent")
      ;       MenuItem(#Menu_Window_0_cetypedelementsParDateDuMoinsRescentAuPlusRescent, "Par date du moins rescent au plus rescent")
      ;       CloseSubMenu()
      ;       OpenSubMenu("tous les types d'éléments")
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParOrdreAlphabetique, "Par ordre alphabetique")
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParOrdreAlphabetiqueInversser, "Par ordre alphabetique inversser")
      ;       MenuBar()
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParTailleDuPlusGrandAuPlusPetit, "Par taille du plus grand au plus petit")
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParTailleDuPlusPetitAuPlusGrand, "Par taille du plus petit au plus grand")
      ;       MenuBar()
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParDateDuPlusRescentAuMoinRescent, "Par date du plus rescent au moin rescent")
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParDateDuMoinsRescentAuPlusRescent, "Par date du moins rescent au plus rescent")
      ;}
      MenuTitle("Réglages")
      MenuItem(#Menu_Window_0_Option, "Option", CatchImage(#MenuImage_Menu_Window_0_Option, ?MenuImage_Menu_Window_0_Option))
      MenuTitle("Aide")
      MenuItem(#Menu_Window_0_AideSurLePressePapier, "Aide sur le presse papier", CatchImage(#MenuImage_Menu_Window_0_AideSurLePressePapier, ?MenuImage_Menu_Window_0_AideSurLePressePapier))
    EndIf
    If CreatePopupImageMenu(#PopupMenu, #PB_Menu_ModernLook)
      MenuItem(#Menu_Window_0_Popup_Menu_Couper, "Couper", CatchImage(#Popup_Menu_Window_0_Couper, ?Popup_Menu_Window_0_Couper))
      MenuItem(#Menu_Window_0_Popup_Menu_Copier, "Copier", CatchImage(#Popup_Menu_Window_0_Copier, ?Popup_Menu_Window_0_Copier))
      MenuItem(#Menu_Window_0_Popup_Menu_Coller, "Coller", CatchImage(#Popup_Menu_Window_0_Coller, ?Popup_Menu_Window_0_Coller))
      MenuBar()
      MenuItem(#Menu_Window_0_Popup_Menu_Supprimer, "Supprimer", CatchImage(#Popup_Menu_Window_0_Supprimer, ?Popup_Menu_Window_0_Supprimer))
      MenuBar()
      MenuItem(#Menu_Window_0_Popup_Menu_Apercus, "Aperçus", CatchImage(#Popup_Menu_Window_0_Apercus, ?Popup_Menu_Window_0_Apercus))
    EndIf
    If CreateStatusBar(#StatusBar_Window_0, WindowID(#Window_0))
      AddStatusBarField(0)
      StatusBarText(#StatusBar_Window_0, 0, "''")
    EndIf
    TreeGadget(#Tree_2, 10, 30, 220, 315, #PB_Tree_AlwaysShowSelection)
    AddGadgetItem (#Tree_2, -1, "Texte", 0, 0)
    AddGadgetItem (#Tree_2, -1, "Fichier", 0, 0)
    AddGadgetItem (#Tree_2, -1, "Image", 0, 0)
    TextGadget(#Text_4, 10, 10, 220, 15, "Elément actuel du presse papier:", #PB_Text_Center)
    ListIconGadget(#ListIcon_7, 240, 30, 304, 315, "Données copier", 100, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines)
    ;SendMessage_(GadgetID(#ListIcon_7), #LVM_SETCOLUMNWIDTH, 0, #LVSCW_AUTOSIZE_USEHEADER)
    AddGadgetColumn(#ListIcon_7, 1, "Date de copie", 100)
    AddGadgetColumn(#ListIcon_7, 1, "Type de donnée", 100)
    AddGadgetItem (#ListIcon_7, -1, "", 0, 0)
    TextGadget(#Text_8, 240, 10, 270, 15, "Lien actuel de l'élément du presse papier:", #PB_Text_Center)
    ; Gadget Resizing
    ;     PureRESIZE_SetGadgetResize(#Tree_2, 1, 1, 0, 1)
    ;     PureRESIZE_SetGadgetResize(#Text_4, 1, 1, 0, 0)
    ;     PureRESIZE_SetGadgetResize(#ListIcon_7, 1, 1, 1, 1)
    ;     PureRESIZE_SetGadgetResize(#Text_8, 1, 1, 1, 0)
    ; Window Minimum Size
    ;     PureRESIZE_SetWindowMinimumSize(#Window_0, 554, 401)
  EndIf
  
  
  
  CreateThread(Clipboard(),0)
  
  ;{- Event loop
  Repeat
    
    Select WindowEvent()
        ; ///////////////////
      Case #PB_Event_Gadget
        Select EventGadget()
          Case #Tree_2
          Case #Text_4
          Case #ListIcon_7
            Select EventType()
              Case #PB_EventType_RightClick
                DisplayPopupMenu(#PopupMenu,WindowID(#Window_0))
            EndSelect
          Case #Text_8
        EndSelect
        ; /////////////////
      Case #PB_Event_Menu
        Select EventMenu()
          Case #Menu_Window_0_EfacerLaListeDuPressePapier
            boite_de_dialogue_effacer_liste_presse_papier(parametre_boite_de_dialogue_effacer_liste_presse_papier)
          Case #Menu_Window_0_OuvrirUneListeDePressePapier
          Case #Menu_Window_0_EnregistrerLaListeDuPressePapier
          Case #Menu_Window_0_QuitterLePressePapier
          Case #Menu_Window_0_Annuler
          Case #Menu_Window_0_Restaurer
          Case #Menu_Window_0_Couper
          Case #Menu_Window_0_Copier
          Case #Menu_Window_0_Coller
          Case #Menu_Window_0_Supprimer
          Case #Menu_Window_0_Apercus
          Case #Menu_Window_0_Rechercher
          Case #Menu_Window_0_cetypedelementsParOrdreAlphabetique
          Case #Menu_Window_0_cetypedelementsParOrdreAlphabetiqueInversser
          Case #Menu_Window_0_cetypedelementsParTailleDuPlusGrandAuPlusPetit
          Case #Menu_Window_0_cetypedelementsParTailleDuPlusPetitAuPlusGrand
          Case #Menu_Window_0_cetypedelementsParDateDuPlusRescentAuMoinRescent
          Case #Menu_Window_0_cetypedelementsParDateDuMoinsRescentAuPlusRescent
          Case #Menu_Window_0_touslestypedelementsParOrdreAlphabetique
          Case #Menu_Window_0_touslestypedelementsParOrdreAlphabetiqueInversser
          Case #Menu_Window_0_touslestypedelementsParTailleDuPlusGrandAuPlusPetit
          Case #Menu_Window_0_touslestypedelementsParTailleDuPlusPetitAuPlusGrand
          Case #Menu_Window_0_touslestypedelementsParDateDuPlusRescentAuMoinRescent
          Case #Menu_Window_0_touslestypedelementsParDateDuMoinsRescentAuPlusRescent
          Case #Menu_Window_0_Option
          Case #Menu_Window_0_AideSurLePressePapier
        EndSelect
        ; ////////////////////////
      Case #PB_Event_CloseWindow
        Select EventWindow()
          Case #Window_0
            CloseWindow(#Window_0)
            Break
        EndSelect
    EndSelect
  ForEver
  ;
  ;}
EndProcedure

Programme_presse_papier(parametre_programme_presse_papier)

Re: besoin d'aide pour mon programme en court de création

Publié : mar. 03/août/2010 13:43
par dayvid
je te remerci de ton précieuse aide Nico
peut tu m'en dire un peut plus si tu veut bien ?

Re: besoin d'aide pour mon programme en court de création

Publié : mar. 03/août/2010 18:12
par nico
Un peu plus sur quoi?

Re: besoin d'aide pour mon programme en court de création

Publié : mer. 04/août/2010 14:53
par dayvid
Salut ! :D
Et bien ce que tu ma dit plus haut ! :P

Sinon j’ai avancer légèrement dans mon programme mais
Hélas je rencontre encore un petit problème :cry: , certes pas méchant
cette fois ci mais quand même, voici le code :

Code : Tout sélectionner

;{ les variables globales
Global Fichier$, thread_programme_presse_papier, Type_de_donnee$
Global couleur_bouton_1, couleur_bouton_2, couleur_bouton_3, nom_bouton_1$, nom_bouton_2$, nom_bouton_3$
;}

;{ constante fond texte
#FONT_NORMAL = %00000000
#FONT_BOLD = %00000001
#FONT_ITALIC = %00000010
#FONT_UNDERLINE = %00000100
#FONT_STRIKEOUT = %00001000
;}

Enumeration
  #Window_0
  #Menu_Window_0
  #Menu_Window_0_EfacerLaListeDuPressePapier
  #Menu_Window_0_OuvrirUneListeDePressePapier
  #Menu_Window_0_EnregistrerLaListeDuPressePapier
  #Menu_Window_0_QuitterLePressePapier
  #Menu_Window_0_Annuler
  #Menu_Window_0_Restaurer
  #Menu_Window_0_Couper
  #Menu_Window_0_Copier
  #Menu_Window_0_Coller
  #Menu_Window_0_Supprimer
  #Menu_Window_0_Apercus
  #Menu_Window_0_Rechercher
  #Menu_Window_0_cetypedelementsParOrdreAlphabetique
  #Menu_Window_0_cetypedelementsParOrdreAlphabetiqueInversser
  #Menu_Window_0_cetypedelementsParTailleDuPlusGrandAuPlusPetit
  #Menu_Window_0_cetypedelementsParTailleDuPlusPetitAuPlusGrand
  #Menu_Window_0_cetypedelementsParDateDuPlusRescentAuMoinRescent
  #Menu_Window_0_cetypedelementsParDateDuMoinsRescentAuPlusRescent
  #Menu_Window_0_touslestypedelementsParOrdreAlphabetique
  #Menu_Window_0_touslestypedelementsParOrdreAlphabetiqueInversser
  #Menu_Window_0_touslestypedelementsParTailleDuPlusGrandAuPlusPetit
  #Menu_Window_0_touslestypedelementsParTailleDuPlusPetitAuPlusGrand
  #Menu_Window_0_touslestypedelementsParDateDuPlusRescentAuMoinRescent
  #Menu_Window_0_touslestypedelementsParDateDuMoinsRescentAuPlusRescent
  #Menu_Window_0_Option
  #Menu_Window_0_AideSurLePressePapier
  #StatusBar_Window_0
  #MenuImage_Menu_Window_0_EfacerLaListeDuPressePapier
  #MenuImage_Menu_Window_0_OuvrirUneListeDePressePapier
  #MenuImage_Menu_Window_0_EnregistrerLaListeDuPressePapier
  #MenuImage_Menu_Window_0_QuitterLePressePapier
  #MenuImage_Menu_Window_0_Annuler
  #MenuImage_Menu_Window_0_Restaurer
  #MenuImage_Menu_Window_0_Couper
  #MenuImage_Menu_Window_0_Copier
  #MenuImage_Menu_Window_0_Coller
  #MenuImage_Menu_Window_0_Supprimer
  #MenuImage_Menu_Window_0_Apercus
  #MenuImage_Menu_Window_0_Rechercher
  #MenuImage_Menu_Window_0_Option
  #MenuImage_Menu_Window_0_AideSurLePressePapier
  #Menu_Window_0_Popup_Menu_Couper
  #Menu_Window_0_Popup_Menu_Copier
  #Menu_Window_0_Popup_Menu_Coller
  #Menu_Window_0_Popup_Menu_Supprimer
  #Menu_Window_0_Popup_Menu_Apercus
  #Popup_Menu_Window_0_Couper
  #Popup_Menu_Window_0_Copier
  #Popup_Menu_Window_0_Coller
  #Popup_Menu_Window_0_Supprimer
  #Popup_Menu_Window_0_Apercus
  #Tree_2
  #Text_4
  #ListIcon_7
  #Text_8
  #image
  #PopupMenu
EndEnumeration

Enumeration 100
  #Window_1
  #Button_5
  #Button_6
  #Button_7
  #Text_16
  #Text_17
  #Image_0
  #Image_1
EndEnumeration

;{ les outils à inclure
;- Image Plugins
UsePNGImageDecoder()

;- Image Globals
Global Image0, Image1

;- Catch Images
Image0 = CatchImage(#Image_0, ?Image0)
Image1 = CatchImage(#Image_1, ?Image1)

;- Images
DataSection
  Image0:
  IncludeBinary "icônes\attention 3.png"
  Image1:
  IncludeBinary "icônes\question 3.png"
EndDataSection

;- sons Globals
Global sons0

InitSound()

UseOGGSoundDecoder()

longueur_sons_0 = ?fin_sons0 - ?sons0
longueur_sons_1 = ?fin_sons1 - ?fin_sons0

;- Catch sound
sons0 = CatchSound(0, ?sons0, longueur_sons_0)
sons1 = CatchSound(1, ?fin_sons0, longueur_sons_1)

;- sons
DataSection
  sons0:
  IncludeBinary "sons ogg\attention 3.ogg"
  fin_sons0:
  IncludeBinary "sons ogg\question 2.ogg"
  fin_sons1:
EndDataSection

;- images
UsePNGImageDecoder()

DataSection
  MenuImage_Menu_Window_0_EfacerLaListeDuPressePapier:
  IncludeBinary "icônes\filenew2.png"
  MenuImage_Menu_Window_0_OuvrirUneListeDePressePapier:
  IncludeBinary "icônes\ouvrire.png"
  MenuImage_Menu_Window_0_EnregistrerLaListeDuPressePapier:
  IncludeBinary "icônes\saveicon.png"
  MenuImage_Menu_Window_0_QuitterLePressePapier:
  IncludeBinary "icônes\1431.ico"
  MenuImage_Menu_Window_0_Annuler:
  IncludeBinary "icônes\annuler.ico"
  MenuImage_Menu_Window_0_Restaurer:
  IncludeBinary "icônes\restaurer.ico"
  MenuImage_Menu_Window_0_Couper:
  IncludeBinary "icônes\cuticon.png"
  MenuImage_Menu_Window_0_Copier:
  IncludeBinary "icônes\copyicon.png"
  MenuImage_Menu_Window_0_Coller:
  IncludeBinary "icônes\pasteicon.png"
  MenuImage_Menu_Window_0_Supprimer:
  IncludeBinary "icônes\error.png"
  MenuImage_Menu_Window_0_Apercus:
  IncludeBinary "icônes\jeueditor.png"
  MenuImage_Menu_Window_0_Rechercher:
  IncludeBinary "icônes\rechercher.ico"
  MenuImage_Menu_Window_0_Option:
  IncludeBinary "icônes\prefferences.ico"
  MenuImage_Menu_Window_0_AideSurLePressePapier:
  IncludeBinary "icônes\aide (2).ico"
  Popup_Menu_Window_0_Couper:
  IncludeBinary "icônes\cuticon.png"
  Popup_Menu_Window_0_Copier:
  IncludeBinary "icônes\copyicon.png"
  Popup_Menu_Window_0_Coller:
  IncludeBinary "icônes\pasteicon.png"
  Popup_Menu_Window_0_Supprimer:
  IncludeBinary "icônes\error.png"
  Popup_Menu_Window_0_Apercus:
  IncludeBinary "icônes\jeueditor.png"
EndDataSection

;}

Procedure CreateFont(Name$,Size,Style)
  If (Style & #FONT_BOLD)
    bold = 700
  EndIf
  If (Style & #FONT_ITALIC)
    italic = 1
  EndIf
  If (Style & #FONT_UNDERLINE)
    underline = 1
  EndIf
  If (Style & #FONT_STRIKEOUT)
    strikeout = 1
  EndIf
  ProcedureReturn CreateFont_(Size,0,0,0,bold,italic,underline,strikeout,0,0,0,0,0,Name$)
EndProcedure

Procedure.l MyLabeledImage(ImageNumber.l, Width.l, Height.l, Color.l, TColor.l, Label.s, Font.s, Bold.l, Italic.l, FontSize.l)
  Attributes = #FONT_NORMAL
  If Bold
    Attributes = Attributes | #FONT_BOLD
  EndIf
  If Italic
    Attributes = Attributes | #FONT_ITALIC
  EndIf
  Normal = CreateFont(Font, FontSize, #FONT_NORMAL)
  Bold = CreateFont(Font, FontSize, #FONT_BOLD)
  Italic = CreateFont(Font, FontSize, #FONT_ITALIC)
  Bold_Italic = CreateFont(Font, FontSize, #FONT_BOLD | #FONT_ITALIC)
  Select Attributes
    Case #FONT_NORMAL
      FontToUse = Normal
    Case #FONT_BOLD
      FontToUse = Bold
    Case #FONT_ITALIC
      FontToUse = Italic
    Case #FONT_BOLD | #FONT_ITALIC
      FontToUse = Bold_Italic
    Default
  EndSelect
  
  ImageID.l = CreateImage(ImageNumber, Width, Height)
  StartDrawing(ImageOutput(ImageNumber))
  Box(0, 0, Width, Height, Color)
  FrontColor(RGB(Red(TColor),Green(TColor),Blue(TColor)))
  DrawingFont(FontToUse)
  DrawingMode(1)
  If TextWidth(Label) < Width
    XPos.l = (Width - TextWidth(Label)) / 2
  Else
    XPos.l = 4
  EndIf
  If TextWidth(" M") < Height
    YPos.l = (Height - TextWidth(" M")) / 2 - 2
  Else
    YPos.l = 0
  EndIf
  DrawText(XPos, YPos,Label)
  StopDrawing()
  ProcedureReturn ImageID
EndProcedure

Procedure boite_de_dialogue_effacer_liste_presse_papier()
  If OpenWindow(#Window_1, 437, 276, 437, 157, "Attention...",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
    PlaySound(0)
    SetWindowColor(#Window_1, RGB(255, 255, 255))
    ButtonImageGadget(#Button_5, 117, 125, 95, 25, MyLabeledImage(1, 95, 25, #PureCOLOR_SystemColor, 884736, "Oui", "cambria", 0, 0, 12))
    ButtonImageGadget(#Button_7, 223, 125, 95, 25, MyLabeledImage(2, 95, 25, #PureCOLOR_SystemColor, 1835263, "Non", "cambria", 0, 0, 12))
    TextGadget(#Text_16, 67, 11, 361, 105, ""+ Chr(13) +""+ Chr(13) +""+ Chr(13) +"Vous êtes bien certain de vouloir tout éffacer ?", #PB_Text_Center)
    TextGadget(#Text_17, 9, 11, 58, 105, "")
    SetGadgetColor(#Text_16, #PB_Gadget_BackColor, RGB(255, 255, 255))
    SetGadgetColor(#Text_16, #PB_Gadget_FrontColor, 16713984)
    SetGadgetColor(#Text_17, #PB_Gadget_BackColor, RGB(255, 255, 255))
    ImageGadget(#Image_0, 20, 40, 38, 38, Image0)
    
  EndIf
  
  Repeat ; Start of the event loop
    
    Event_2 = WindowEvent() ; This line waits until an event is received from Windows
    GadgetID_2 = EventGadget()
    
    If GadgetID_2 = #Button_5
      DeleteFile("Bouton cliquer.txt")
      OpenFile(1, "Bouton cliquer.txt")
      WriteString(1, "Oui")
      ClearGadgetItems(#ListIcon_7)
      AddGadgetItem(#ListIcon_7, -1, "")
      CloseFile(1)
      Event_2 = #PB_Event_CloseWindow
    ElseIf GadgetID_2 = #Button_7
      DeleteFile("Bouton cliquer.txt")
      OpenFile(1, "Bouton cliquer.txt")
      WriteString(1, "Non")
      CloseFile(1)
      Event_2 = #PB_Event_CloseWindow
    EndIf
    
  Delay(1)
  Until Event_2 = #PB_Event_CloseWindow ; End of the event loop
  CloseWindow(#Window_1)
EndProcedure

Procedure boite_de_dialogue_quitter()
  If OpenWindow(#Window_1, 437, 276, 437, 157, "Question...",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
    PlaySound(1)
    SetWindowColor(#Window_1, RGB(255, 255, 255))
    ButtonImageGadget(#Button_5, 117, 125, 95, 25, MyLabeledImage(1, 95, 25, #PureCOLOR_SystemColor, 884736, "Oui", "cambria", 0, 0, 12))
    ButtonImageGadget(#Button_7, 223, 125, 95, 25, MyLabeledImage(2, 95, 25, #PureCOLOR_SystemColor, 16713984, "Non", "cambria", 0, 0, 12))
    TextGadget(#Text_16, 67, 11, 361, 105, ""+ Chr(13) +""+ Chr(13) +""+ Chr(13) +"Vous êtes bien certain de vouloir quitter ?", #PB_Text_Center)
    TextGadget(#Text_17, 9, 11, 58, 105, "")
    SetGadgetColor(#Text_16, #PB_Gadget_BackColor, RGB(255, 255, 255))
    SetGadgetColor(#Text_16, #PB_Gadget_FrontColor, RGB(255, 0, 0))
    SetGadgetColor(#Text_17, #PB_Gadget_BackColor, RGB(255, 255, 255))
    ImageGadget(#Image_1, 20, 40, 38, 38, Image1)
    
  EndIf
  
  Repeat ; Start of the event loop
    
    Event_2 = WindowEvent() ; This line waits until an event is received from Windows
    GadgetID_2 = EventGadget()
    
    If GadgetID_2 = #Button_5
      DeleteFile("Bouton cliquer.txt")
      OpenFile(1, "Bouton cliquer.txt")
      WriteString(1, "Oui")
      End
      CloseFile(1)
      Event_2 = #PB_Event_CloseWindow
    ElseIf GadgetID_2 = #Button_7
      DeleteFile("Bouton cliquer.txt")
      OpenFile(1, "Bouton cliquer.txt")
      WriteString(1, "Non")
      CloseFile(1)
      Event_2 = #PB_Event_CloseWindow
    EndIf
    
  Until Event_2 = #PB_Event_CloseWindow ; End of the event loop
  CloseWindow(#Window_1)
EndProcedure

Procedure SetClipboardFile(List ListeFichier2.s())
  Protected hDrop.DROPFILES, *dat, add.i, hMem.i, *buff
  
  If OpenClipboard_(0)
    ;on vide le presse papier
    EmptyClipboard_()
    
    ;on ajoute met tous les fichiers dans une zone mémoire (avec le chr(0))
    FirstElement(ListeFichier2())
    ForEach ListeFichier2()
      If *dat
        add = MemorySize(*dat)
      Else
        add = 0
      EndIf
      *dat = ReAllocateMemory(*dat, add+Len(ListeFichier2())+1)
      PokeS(*dat+add, ListeFichier2(), Len(ListeFichier2()))
      PokeB(*dat+add+Len(ListeFichier2()), 0)
    Next
    hDrop\pFiles = SizeOf(DROPFILES)
    
    hMem = GlobalAlloc_(#GMEM_MOVEABLE, SizeOf(DROPFILES)+MemorySize(*dat))
    *buff = GlobalLock_(hMem)
    CopyMemory(@hDrop, *buff, SizeOf(DROPFILES))
    CopyMemory(*dat, *buff+SizeOf(DROPFILES), MemorySize(*dat))
    GlobalUnlock_(hMem)
    SetClipboardData_(#CF_HDROP, hMem)
    CloseClipboard_()
    ProcedureReturn 1
  EndIf

ProcedureReturn 0
EndProcedure

;renvoi les fichiers contenus dans le press-papier dans files()
Procedure.s getClipboardFiles()
  
  NewList ListeFichier.s()
  AddElement(ListeFichier())
  ListeFichier() = GetClipboardText()
  
  Protected hDrop, i.i, fileName.s
  
  If OpenClipboard_(0) And IsClipboardFormatAvailable_(#CF_HDROP)
    hDrop = GetClipboardData_(#CF_HDROP)
    Repeat
      fileName = Space(1024)
      DragQueryFile_(hDrop, i, @fileName, 1024)
      fileName = Trim(fileName)
      If fileName <> ""
        AddElement(ListeFichier())
        ListeFichier() = fileName
        ListeFichier$ + ListeFichier() + Chr(13) + Chr(10)
      EndIf
      i + 1
    Until fileName = ""
    CloseClipboard_()
    
    ProcedureReturn ListeFichier$
  EndIf
  
  ProcedureReturn "Aucune adresse de fichier n'est présent dans le presse papier"
EndProcedure

Procedure Clipboard(lParam.i)
  Repeat
    Fichier$ = getClipboardFiles()
    If Fichier$ <> "Aucune adresse de fichier n'est présent dans le presse papier"
      ; si ya bien une ou plusieur adresse de fichier dans le presse papier
      Type_de_donnee$ = "fichier"
    Else 
      ; si ya pas d'adresse de fichier dans le presse papier, ont regarde si c'est pas une image
      
      If GetClipboardImage(#image)
        ; si ya bien une image dans le presse papier
        Type_de_donnee$ = "image"
      Else
        ; si ya pas d'image dans le presse papier
        
        If GetClipboardText()
          ; si ya un texte dans le presse papier
          Type_de_donnee$ = "texte"
        Else
          ; si ya pas de texte dans le presse papier, c'est que ya rien du tous
          Type_de_donnee$ = "vide"
        EndIf
        
      EndIf
      
    EndIf
    
    If Type_de_donnee$ = "fichier"
    
    ElseIf Type_de_donnee$ = "image"
    
    ElseIf Type_de_donnee$ = "texte"
    
    ElseIf Type_de_donnee$ = "vide"
    
    EndIf
    
    Delay(100) ; ont attent un peut pour ne pas que sa ail trop vite
  Until Quit = 1
  
EndProcedure

Procedure Programme_presse_papier()
  If OpenWindow(#Window_0, 538, 271, 550, 397, "presse papier ++", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    SmartWindowRefresh(#Window_0, #True)
    If CreateImageMenu(#Menu_Window_0, WindowID(#Window_0), #PB_Menu_ModernLook)
      MenuTitle("Fichier")
      MenuItem(#Menu_Window_0_EfacerLaListeDuPressePapier, "Efacer la liste du presse papier", CatchImage(#MenuImage_Menu_Window_0_EfacerLaListeDuPressePapier, ?MenuImage_Menu_Window_0_EfacerLaListeDuPressePapier))
      MenuBar()
      MenuItem(#Menu_Window_0_OuvrirUneListeDePressePapier, "Ouvrir une liste de presse papier", CatchImage(#MenuImage_Menu_Window_0_OuvrirUneListeDePressePapier, ?MenuImage_Menu_Window_0_OuvrirUneListeDePressePapier))
      MenuItem(#Menu_Window_0_EnregistrerLaListeDuPressePapier, "Enregistrer la liste du presse papier", CatchImage(#MenuImage_Menu_Window_0_EnregistrerLaListeDuPressePapier, ?MenuImage_Menu_Window_0_EnregistrerLaListeDuPressePapier))
      MenuBar()
      MenuItem(#Menu_Window_0_QuitterLePressePapier, "Quitter le presse papier", CatchImage(#MenuImage_Menu_Window_0_QuitterLePressePapier, ?MenuImage_Menu_Window_0_QuitterLePressePapier))
      MenuTitle("Edition")
      MenuItem(#Menu_Window_0_Annuler, "Annuler", CatchImage(#MenuImage_Menu_Window_0_Annuler, ?MenuImage_Menu_Window_0_Annuler))
      MenuItem(#Menu_Window_0_Restaurer, "Restaurer", CatchImage(#MenuImage_Menu_Window_0_Restaurer, ?MenuImage_Menu_Window_0_Restaurer))
      MenuBar()
      MenuItem(#Menu_Window_0_Couper, "Couper", CatchImage(#MenuImage_Menu_Window_0_Couper, ?MenuImage_Menu_Window_0_Couper))
      MenuItem(#Menu_Window_0_Copier, "Copier", CatchImage(#MenuImage_Menu_Window_0_Copier, ?MenuImage_Menu_Window_0_Copier))
      MenuItem(#Menu_Window_0_Coller, "Coller", CatchImage(#MenuImage_Menu_Window_0_Coller, ?MenuImage_Menu_Window_0_Coller))
      MenuBar()
      MenuItem(#Menu_Window_0_Supprimer, "Supprimer", CatchImage(#MenuImage_Menu_Window_0_Supprimer, ?MenuImage_Menu_Window_0_Supprimer))
      MenuBar()
      MenuItem(#Menu_Window_0_Apercus, "Aperçus", CatchImage(#MenuImage_Menu_Window_0_Apercus, ?MenuImage_Menu_Window_0_Apercus))
      MenuBar()
      MenuItem(#Menu_Window_0_Rechercher, "Rechercher", CatchImage(#MenuImage_Menu_Window_0_Rechercher, ?MenuImage_Menu_Window_0_Rechercher))     
      ;{       OpenSubMenu("Classer ")
      ;       OpenSubMenu("ce type d'éléments")
      ;       MenuItem(#Menu_Window_0_cetypedelementsParOrdreAlphabetique, "Par ordre alphabetique")
      ;       MenuItem(#Menu_Window_0_cetypedelementsParOrdreAlphabetiqueInversser, "Par ordre alphabetique inversser")
      ;       MenuBar()
      ;       MenuItem(#Menu_Window_0_cetypedelementsParTailleDuPlusGrandAuPlusPetit, "Par taille du plus grand au plus petit")
      ;       MenuItem(#Menu_Window_0_cetypedelementsParTailleDuPlusPetitAuPlusGrand, "Par taille du plus petit au plus grand")
      ;       MenuBar()
      ;       MenuItem(#Menu_Window_0_cetypedelementsParDateDuPlusRescentAuMoinRescent, "Par date du plus rescent au moin rescent")
      ;       MenuItem(#Menu_Window_0_cetypedelementsParDateDuMoinsRescentAuPlusRescent, "Par date du moins rescent au plus rescent")
      ;       CloseSubMenu()
      ;       OpenSubMenu("tous les types d'éléments")
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParOrdreAlphabetique, "Par ordre alphabetique")
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParOrdreAlphabetiqueInversser, "Par ordre alphabetique inversser")
      ;       MenuBar()
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParTailleDuPlusGrandAuPlusPetit, "Par taille du plus grand au plus petit")
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParTailleDuPlusPetitAuPlusGrand, "Par taille du plus petit au plus grand")
      ;       MenuBar()
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParDateDuPlusRescentAuMoinRescent, "Par date du plus rescent au moin rescent")
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParDateDuMoinsRescentAuPlusRescent, "Par date du moins rescent au plus rescent")
      ;}
      MenuTitle("Réglages")
      MenuItem(#Menu_Window_0_Option, "Option", CatchImage(#MenuImage_Menu_Window_0_Option, ?MenuImage_Menu_Window_0_Option))
      MenuTitle("Aide")
      MenuItem(#Menu_Window_0_AideSurLePressePapier, "Aide sur le presse papier", CatchImage(#MenuImage_Menu_Window_0_AideSurLePressePapier, ?MenuImage_Menu_Window_0_AideSurLePressePapier))
    EndIf
    If CreatePopupImageMenu(#PopupMenu, #PB_Menu_ModernLook)
      MenuItem(#Menu_Window_0_Popup_Menu_Couper, "Couper", CatchImage(#Popup_Menu_Window_0_Couper, ?Popup_Menu_Window_0_Couper))
      MenuItem(#Menu_Window_0_Popup_Menu_Copier, "Copier", CatchImage(#Popup_Menu_Window_0_Copier, ?Popup_Menu_Window_0_Copier))
      MenuItem(#Menu_Window_0_Popup_Menu_Coller, "Coller", CatchImage(#Popup_Menu_Window_0_Coller, ?Popup_Menu_Window_0_Coller))
      MenuBar()
      MenuItem(#Menu_Window_0_Popup_Menu_Supprimer, "Supprimer", CatchImage(#Popup_Menu_Window_0_Supprimer, ?Popup_Menu_Window_0_Supprimer))
      MenuBar()
      MenuItem(#Menu_Window_0_Popup_Menu_Apercus, "Aperçus", CatchImage(#Popup_Menu_Window_0_Apercus, ?Popup_Menu_Window_0_Apercus))
    EndIf
    If CreateStatusBar(#StatusBar_Window_0, WindowID(#Window_0))
      AddStatusBarField(0)
      StatusBarText(#StatusBar_Window_0, 0, "''")
    EndIf
    TreeGadget(#Tree_2, 10, 30, 220, 315, #PB_Tree_AlwaysShowSelection)
    AddGadgetItem (#Tree_2, -1, "Texte", 0, 0)
    AddGadgetItem (#Tree_2, -1, "Fichier", 0, 0)
    AddGadgetItem (#Tree_2, -1, "Image", 0, 0)
    TextGadget(#Text_4, 10, 10, 220, 15, "Elément actuel du presse papier:", #PB_Text_Center)
    ListIconGadget(#ListIcon_7, 240, 30, 304, 315, "Données copier", 90, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines)
    ;SendMessage_(GadgetID(#ListIcon_7), #LVM_SETCOLUMNWIDTH, 0, #LVSCW_AUTOSIZE_USEHEADER)
    AddGadgetColumn(#ListIcon_7, 1, "Date de copie", 80)
    AddGadgetColumn(#ListIcon_7, 2, "Type de donnée", 90)
    AddGadgetColumn(#ListIcon_7, 3, "Taille", 40)
    AddGadgetItem (#ListIcon_7, -1, "", 0, 0)
    TextGadget(#Text_8, 240, 10, 300, 15, "Lien actuel de l'élément du presse papier:", #PB_Text_Center)
    ;Gadget Resizing
        PureRESIZE_SetGadgetResize(#Tree_2, 1, 1, 0, 1)
        PureRESIZE_SetGadgetResize(#Text_4, 1, 1, 0, 0)
        PureRESIZE_SetGadgetResize(#ListIcon_7, 1, 1, 1, 1)
        PureRESIZE_SetGadgetResize(#Text_8, 1, 1, 1, 0)
    ;Window Minimum Size
        PureRESIZE_SetWindowMinimumSize(#Window_0, 554, 401)
  EndIf
  
  CreateThread(@Clipboard(),0)
  
  ;{- Event loop
  Repeat
    
    Select WindowEvent()
        ; ///////////////////
      Case #PB_Event_Gadget
        Select EventGadget()
          Case #Tree_2
          Case #Text_4
          Case #ListIcon_7
            Select EventType()
              Case #PB_EventType_RightClick
                DisplayPopupMenu(#PopupMenu,WindowID(#Window_0))
            EndSelect
          Case #Text_8
        EndSelect
        ; /////////////////
      Case #PB_Event_Menu
        Select EventMenu()
          Case #Menu_Window_0_EfacerLaListeDuPressePapier
          DisableWindow(#Window_0, 1)
          boite_de_dialogue_effacer_liste_presse_papier()
          DisableWindow(#Window_0, 0)
          StickyWindow(#Window_0, 1)
          StickyWindow(#Window_0, 0)
          Case #Menu_Window_0_OuvrirUneListeDePressePapier
          Case #Menu_Window_0_EnregistrerLaListeDuPressePapier
          Case #Menu_Window_0_QuitterLePressePapier
          DisableWindow(#Window_0, 1)
          boite_de_dialogue_quitter()
          DisableWindow(#Window_0, 0)
          StickyWindow(#Window_0, 1)
          StickyWindow(#Window_0, 0)
          Case #Menu_Window_0_Annuler
          Case #Menu_Window_0_Restaurer
          Case #Menu_Window_0_Couper
          Case #Menu_Window_0_Copier
          Case #Menu_Window_0_Coller
          Case #Menu_Window_0_Supprimer
          Case #Menu_Window_0_Apercus
          Case #Menu_Window_0_Rechercher
;           Case #Menu_Window_0_cetypedelementsParOrdreAlphabetique
;           Case #Menu_Window_0_cetypedelementsParOrdreAlphabetiqueInversser
;           Case #Menu_Window_0_cetypedelementsParTailleDuPlusGrandAuPlusPetit
;           Case #Menu_Window_0_cetypedelementsParTailleDuPlusPetitAuPlusGrand
;           Case #Menu_Window_0_cetypedelementsParDateDuPlusRescentAuMoinRescent
;           Case #Menu_Window_0_cetypedelementsParDateDuMoinsRescentAuPlusRescent
;           Case #Menu_Window_0_touslestypedelementsParOrdreAlphabetique
;           Case #Menu_Window_0_touslestypedelementsParOrdreAlphabetiqueInversser
;           Case #Menu_Window_0_touslestypedelementsParTailleDuPlusGrandAuPlusPetit
;           Case #Menu_Window_0_touslestypedelementsParTailleDuPlusPetitAuPlusGrand
;           Case #Menu_Window_0_touslestypedelementsParDateDuPlusRescentAuMoinRescent
;           Case #Menu_Window_0_touslestypedelementsParDateDuMoinsRescentAuPlusRescent
          Case #Menu_Window_0_Option
          Case #Menu_Window_0_AideSurLePressePapier
        EndSelect
        ; ////////////////////////
      Case #PB_Event_CloseWindow
        Select EventWindow()
          Case #Window_0
          boite_de_dialogue_quitter()
        EndSelect
    EndSelect
    
    ; pour éviter le petit delais d'attente au démarrage du programme
    
    passage + 1
    
    If passage < 100
    Else
    Delay(1)
    EndIf
    
  ForEver
  ;
  ;}
EndProcedure

Programme_presse_papier()
Ouvre le programme et appuie sur la croix, tu as une
Fenêtre de message qui apparais, clique sur « non » et recommence l’opération, que ce passe t-il ?, la fenêtre ce referme illico, blizzard je ne pige pas le problème, je pense que sa vient de WindowEvent() ou de EventGadget()mais la je ne comprend pas la chose tu voie ?

Bon sinon je dois gérer les données du presse papier et les mettre au bonne endroit
Pas de problème en ce qui me concerne, ce qui va clocher c’est comment lui dire
D’enregistrer les infos au bonne endroit mais surtout que quand ya une nouvelle donnée dans le presse papier et seulement la alors il regarde si cette données n’existe pas déjà dans le programme
Si elle existe déjà il ne fait rien sinon il l’enregistre au bonne endroit

Ensuite la gestion d’annulation et restauration va me poser une montagne d’ennuie car j’ai peut de pas trop savoir comment faire, faudrait faire sa avec une liste chaîner je pense mais c’est compliquer a gérer ce truc la, cella va servir pour la ListIconGadget (les couper, copier coller, supprimer, rechercher c’est pour elle, mais peut être que sa sert a rien ce genre de truc mais je veux le faire quand même tu vois

Voila voila, si tu as des idées

Merci a toi Nico et a plus ? :)

Re: besoin d'aide pour mon programme en court de création

Publié : mer. 04/août/2010 17:00
par nico
Ouvre le programme et appuie sur la croix, tu as une
Fenêtre de message qui apparais, clique sur « non » et recommence l’opération, que ce passe t-il ?, la fenêtre ce referme illico, blizzard je ne pige pas le problème, je pense que sa vient de WindowEvent() ou de EventGadget()mais la je ne comprend pas la chose tu voie ?
Cela marche normalement chez moi!

Re: besoin d'aide pour mon programme en court de création

Publié : ven. 06/août/2010 15:02
par dayvid
tu la fais plusieurs fois et bien comme je t'es dit ?
clique sur la croix, sur non, recommence plusieur fois
non sa marche chez toi ?

pas chez moi en tous qu'à

bien sinon j'avance et je suis arriver jusque la
il suffit de lancer le programme, copier des fichier
et sa apparais dans le programme mais ya une ligne
vide a la fin et je sais pas comment l'enlever :?

voici le programme entier:

http://sd-2.archive-host.com/membres/up ... pier_11.7z

et le code:

Code : Tout sélectionner

;{ les variables et liste globales
Global Fichier$, thread_programme_presse_papier, Type_de_donnee$
Global couleur_bouton_1, couleur_bouton_2, couleur_bouton_3, nom_bouton_1$, nom_bouton_2$, nom_bouton_3$
Global NewList ListeFichier.s(), NewList BasedeDonneePressePapier.s()
Global ListeFichier$, BaseDeDonneePressePapier$
;}

;{ constante fond texte
#FONT_NORMAL = %00000000
#FONT_BOLD = %00000001
#FONT_ITALIC = %00000010
#FONT_UNDERLINE = %00000100
#FONT_STRIKEOUT = %00001000
;}

Enumeration
  #Window_0
  #Menu_Window_0
  #Menu_Window_0_EfacerLaListeDuPressePapier
  #Menu_Window_0_OuvrirUneListeDePressePapier
  #Menu_Window_0_EnregistrerLaListeDuPressePapier
  #Menu_Window_0_QuitterLePressePapier
  #Menu_Window_0_Annuler
  #Menu_Window_0_Restaurer
  #Menu_Window_0_Couper
  #Menu_Window_0_Copier
  #Menu_Window_0_Coller
  #Menu_Window_0_Supprimer
  #Menu_Window_0_Apercus
  #Menu_Window_0_Rechercher
  #Menu_Window_0_cetypedelementsParOrdreAlphabetique
  #Menu_Window_0_cetypedelementsParOrdreAlphabetiqueInversser
  #Menu_Window_0_cetypedelementsParTailleDuPlusGrandAuPlusPetit
  #Menu_Window_0_cetypedelementsParTailleDuPlusPetitAuPlusGrand
  #Menu_Window_0_cetypedelementsParDateDuPlusRescentAuMoinRescent
  #Menu_Window_0_cetypedelementsParDateDuMoinsRescentAuPlusRescent
  #Menu_Window_0_touslestypedelementsParOrdreAlphabetique
  #Menu_Window_0_touslestypedelementsParOrdreAlphabetiqueInversser
  #Menu_Window_0_touslestypedelementsParTailleDuPlusGrandAuPlusPetit
  #Menu_Window_0_touslestypedelementsParTailleDuPlusPetitAuPlusGrand
  #Menu_Window_0_touslestypedelementsParDateDuPlusRescentAuMoinRescent
  #Menu_Window_0_touslestypedelementsParDateDuMoinsRescentAuPlusRescent
  #Menu_Window_0_Option
  #Menu_Window_0_AideSurLePressePapier
  #StatusBar_Window_0
  #MenuImage_Menu_Window_0_EfacerLaListeDuPressePapier
  #MenuImage_Menu_Window_0_OuvrirUneListeDePressePapier
  #MenuImage_Menu_Window_0_EnregistrerLaListeDuPressePapier
  #MenuImage_Menu_Window_0_QuitterLePressePapier
  #MenuImage_Menu_Window_0_Annuler
  #MenuImage_Menu_Window_0_Restaurer
  #MenuImage_Menu_Window_0_Couper
  #MenuImage_Menu_Window_0_Copier
  #MenuImage_Menu_Window_0_Coller
  #MenuImage_Menu_Window_0_Supprimer
  #MenuImage_Menu_Window_0_Apercus
  #MenuImage_Menu_Window_0_Rechercher
  #MenuImage_Menu_Window_0_Option
  #MenuImage_Menu_Window_0_AideSurLePressePapier
  #Menu_Window_0_Popup_Menu_Couper
  #Menu_Window_0_Popup_Menu_Copier
  #Menu_Window_0_Popup_Menu_Coller
  #Menu_Window_0_Popup_Menu_Supprimer
  #Menu_Window_0_Popup_Menu_Apercus
  #Popup_Menu_Window_0_Couper
  #Popup_Menu_Window_0_Copier
  #Popup_Menu_Window_0_Coller
  #Popup_Menu_Window_0_Supprimer
  #Popup_Menu_Window_0_Apercus
  #Tree_2
  #Text_4
  #ListIcon_7
  #Text_8
  #image
  #PopupMenu
  #Window_1
  #Button_5
  #Button_6
  #Button_7
  #Text_16
  #Text_17
  #Image_0
  #Image_1
EndEnumeration

;{ les outils à inclure
;- Image Plugins
UsePNGImageDecoder()

;- Image Globals
Global Image0, Image1

;- Catch Images
Image0 = CatchImage(#Image_0, ?Image0)
Image1 = CatchImage(#Image_1, ?Image1)

;- Images
DataSection
  Image0:
  IncludeBinary "icônes\attention 3.png"
  Image1:
  IncludeBinary "icônes\question 3.png"
EndDataSection

;- sons Globals
Global sons0

InitSound()

UseOGGSoundDecoder()

longueur_sons_0 = ?fin_sons0 - ?sons0
longueur_sons_1 = ?fin_sons1 - ?fin_sons0

;- Catch sound
sons0 = CatchSound(0, ?sons0, longueur_sons_0)
sons1 = CatchSound(1, ?fin_sons0, longueur_sons_1)

;- sons
DataSection
  sons0:
  IncludeBinary "sons ogg\attention 3.ogg"
  fin_sons0:
  IncludeBinary "sons ogg\question 2.ogg"
  fin_sons1:
EndDataSection

;- images
UsePNGImageDecoder()

DataSection
  MenuImage_Menu_Window_0_EfacerLaListeDuPressePapier:
  IncludeBinary "icônes\filenew2.png"
  MenuImage_Menu_Window_0_OuvrirUneListeDePressePapier:
  IncludeBinary "icônes\ouvrire.png"
  MenuImage_Menu_Window_0_EnregistrerLaListeDuPressePapier:
  IncludeBinary "icônes\saveicon.png"
  MenuImage_Menu_Window_0_QuitterLePressePapier:
  IncludeBinary "icônes\1431.ico"
  MenuImage_Menu_Window_0_Annuler:
  IncludeBinary "icônes\annuler.ico"
  MenuImage_Menu_Window_0_Restaurer:
  IncludeBinary "icônes\restaurer.ico"
  MenuImage_Menu_Window_0_Couper:
  IncludeBinary "icônes\cuticon.png"
  MenuImage_Menu_Window_0_Copier:
  IncludeBinary "icônes\copyicon.png"
  MenuImage_Menu_Window_0_Coller:
  IncludeBinary "icônes\pasteicon.png"
  MenuImage_Menu_Window_0_Supprimer:
  IncludeBinary "icônes\error.png"
  MenuImage_Menu_Window_0_Apercus:
  IncludeBinary "icônes\jeueditor.png"
  MenuImage_Menu_Window_0_Rechercher:
  IncludeBinary "icônes\rechercher.ico"
  MenuImage_Menu_Window_0_Option:
  IncludeBinary "icônes\prefferences.ico"
  MenuImage_Menu_Window_0_AideSurLePressePapier:
  IncludeBinary "icônes\aide (2).ico"
  Popup_Menu_Window_0_Couper:
  IncludeBinary "icônes\cuticon.png"
  Popup_Menu_Window_0_Copier:
  IncludeBinary "icônes\copyicon.png"
  Popup_Menu_Window_0_Coller:
  IncludeBinary "icônes\pasteicon.png"
  Popup_Menu_Window_0_Supprimer:
  IncludeBinary "icônes\error.png"
  Popup_Menu_Window_0_Apercus:
  IncludeBinary "icônes\jeueditor.png"
EndDataSection

;}

;renvoi les fichiers contenus dans le press-papier dans files()
Procedure.s getClipboardFiles()
  
  AddElement(ListeFichier())
  ListeFichier() = GetClipboardText()
  
  Protected hDrop, i.i, fileName.s
  
  If OpenClipboard_(0) And IsClipboardFormatAvailable_(#CF_HDROP)
    hDrop = GetClipboardData_(#CF_HDROP)
    Repeat
      fileName = Space(1024)
      DragQueryFile_(hDrop, i, @fileName, 1024)
      fileName = Trim(fileName)
      If fileName <> ""
        AddElement(ListeFichier())
        ListeFichier() = fileName
        ListeFichier$ + ListeFichier() + Chr(13) + Chr(10)
      EndIf
      i + 1
    Until fileName = ""
    CloseClipboard_()
    ProcedureReturn ListeFichier$
  EndIf
  ProcedureReturn "Aucune adresse de fichier n'est présent dans le presse papier"
EndProcedure

Procedure RechercheAvencer(chaine_a_rechercher$)
For pointeur = 0 To ListSize(ListeFichier()) ; je vais rechercher dans charque élément la "chaine_a_rechercher$"

If SelectElement(ListeFichier(), pointeur) ; si le pointeur est est bien sur un élément (pas en dehor de la liste)
chaine_a_rechercher$ =  ListeFichier() ; la "chaine_de_recherche$" est changer avec l'élément courent de la liste
Else
Break ; sinon c'est que il n'y a plus d'élément pour la recherche (ont est a la fin de la liste)
EndIf

; ont éfféctue une recherche de l'élément actuelle de la "ListeFichier()" dans la base de donnée du presse papier
For pointeur_2 = 0 To ListSize(BaseDeDonneePressePapier()) ; je vais rechercher dans charque élément la "chaine_a_rechercher$"
If SelectElement(BaseDeDonneePressePapier(), pointeur_2) ; si le pointeur est est bien sur un élément (pas en dehor de la liste)
element_courent_base_de_donnee_presse_papier$ = BaseDeDonneePressePapier()
If element_courent_base_de_donnee_presse_papier$ = chaine_a_rechercher$ ; si l'élément de la "chaine_a_rechercher$" est = à l'élément courent de la base de donnee du presse papier
; ont ne l'ajoute pas puisque il éxiste déja
Break ; ont quitte cette boucle puisque ont à trouver l'élément que l'ont rechechait et ont passe a l'élément suivent de "chaine_a_rechercher$"
Else
Continue ; sinon ont continue la recherche jusqu'a la fin de la liste de la base de donnée du presse papier
EndIf

Else
; si ont arrive ici, sa veut dire que ont a rien trouvé donc ont enregistre l'élément du presse papier de windows dans le programme presse papier

; je met le pointeur a la fin de la liste et j'enregistre l'élément
SelectElement(BaseDeDonneePressePapier(), ListSize(BaseDeDonneePressePapier()))
AddElement(BasedeDonneePressePapier())
BasedeDonneePressePapier() = chaine_a_rechercher$
BaseDeDonneePressePapier$ + chaine_a_rechercher$ + Chr(13) + Chr(10)
AddGadgetItem(#Tree_2, 1, BaseDeDonneePressePapier())
Break ; sinon c'est que il n'y a plus d'élément pour la recherche (ont est a la fin de la liste ou c'est qu'elle est vide)
EndIf

Next

Next

EndProcedure

Procedure CreateFont(Name$,Size,Style)
  If (Style & #FONT_BOLD)
    bold = 700
  EndIf
  If (Style & #FONT_ITALIC)
    italic = 1
  EndIf
  If (Style & #FONT_UNDERLINE)
    underline = 1
  EndIf
  If (Style & #FONT_STRIKEOUT)
    strikeout = 1
  EndIf
  ProcedureReturn CreateFont_(Size,0,0,0,bold,italic,underline,strikeout,0,0,0,0,0,Name$)
EndProcedure

Procedure.l MyLabeledImage(ImageNumber.l, Width.l, Height.l, Color.l, TColor.l, Label.s, Font.s, Bold.l, Italic.l, FontSize.l)
  Attributes = #FONT_NORMAL
  If Bold
    Attributes = Attributes | #FONT_BOLD
  EndIf
  If Italic
    Attributes = Attributes | #FONT_ITALIC
  EndIf
  Normal = CreateFont(Font, FontSize, #FONT_NORMAL)
  Bold = CreateFont(Font, FontSize, #FONT_BOLD)
  Italic = CreateFont(Font, FontSize, #FONT_ITALIC)
  Bold_Italic = CreateFont(Font, FontSize, #FONT_BOLD | #FONT_ITALIC)
  Select Attributes
    Case #FONT_NORMAL
      FontToUse = Normal
    Case #FONT_BOLD
      FontToUse = Bold
    Case #FONT_ITALIC
      FontToUse = Italic
    Case #FONT_BOLD | #FONT_ITALIC
      FontToUse = Bold_Italic
    Default
  EndSelect
  
  ImageID.l = CreateImage(ImageNumber, Width, Height)
  StartDrawing(ImageOutput(ImageNumber))
  Box(0, 0, Width, Height, Color)
  FrontColor(RGB(Red(TColor),Green(TColor),Blue(TColor)))
  DrawingFont(FontToUse)
  DrawingMode(1)
  If TextWidth(Label) < Width
    XPos.l = (Width - TextWidth(Label)) / 2
  Else
    XPos.l = 4
  EndIf
  If TextWidth(" M") < Height
    YPos.l = (Height - TextWidth(" M")) / 2 - 2
  Else
    YPos.l = 0
  EndIf
  DrawText(XPos, YPos,Label)
  StopDrawing()
  ProcedureReturn ImageID
EndProcedure

Procedure boite_de_dialogue_effacer_liste_presse_papier()
  If OpenWindow(#Window_1, 437, 276, 437, 157, "Attention...",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
    PlaySound(0)
    SetWindowColor(#Window_1, RGB(255, 255, 255))
    ButtonImageGadget(#Button_5, 117, 125, 95, 25, MyLabeledImage(1, 95, 25, #PureCOLOR_SystemColor, 884736, "Oui", "cambria", 0, 0, 12))
    ButtonImageGadget(#Button_7, 223, 125, 95, 25, MyLabeledImage(2, 95, 25, #PureCOLOR_SystemColor, 1835263, "Non", "cambria", 0, 0, 12))
    TextGadget(#Text_16, 67, 11, 361, 105, ""+ Chr(13) +""+ Chr(13) +""+ Chr(13) +"Vous êtes bien certain de vouloir tout éffacer ?", #PB_Text_Center)
    TextGadget(#Text_17, 9, 11, 58, 105, "")
    SetGadgetColor(#Text_16, #PB_Gadget_BackColor, RGB(255, 255, 255))
    SetGadgetColor(#Text_16, #PB_Gadget_FrontColor, 16713984)
    SetGadgetColor(#Text_17, #PB_Gadget_BackColor, RGB(255, 255, 255))
    ImageGadget(#Image_0, 20, 40, 38, 38, Image0)
    
  EndIf
  
  Repeat ; Start of the event loop
    
    Event_2 = WindowEvent() ; This line waits until an event is received from Windows
    GadgetID_2 = EventGadget()
    
    If GadgetID_2 = #Button_5
      DeleteFile("Bouton cliquer.txt")
      OpenFile(1, "Bouton cliquer.txt")
      WriteString(1, "Oui")
      ClearGadgetItems(#ListIcon_7)
      AddGadgetItem(#ListIcon_7, -1, "")
      CloseFile(1)
      Event_2 = #PB_Event_CloseWindow
    ElseIf GadgetID_2 = #Button_7
      DeleteFile("Bouton cliquer.txt")
      OpenFile(1, "Bouton cliquer.txt")
      WriteString(1, "Non")
      CloseFile(1)
      Event_2 = #PB_Event_CloseWindow
    EndIf
    
  Delay(1)
  Until Event_2 = #PB_Event_CloseWindow ; End of the event loop
  CloseWindow(#Window_1)
EndProcedure

Procedure boite_de_dialogue_quitter()
  If OpenWindow(#Window_1, 437, 276, 437, 157, "Question...",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
    PlaySound(1)
    SetWindowColor(#Window_1, RGB(255, 255, 255))
    ButtonImageGadget(#Button_5, 117, 125, 95, 25, MyLabeledImage(1, 95, 25, #PureCOLOR_SystemColor, 884736, "Oui", "cambria", 0, 0, 12))
    ButtonImageGadget(#Button_7, 223, 125, 95, 25, MyLabeledImage(2, 95, 25, #PureCOLOR_SystemColor, 16713984, "Non", "cambria", 0, 0, 12))
    TextGadget(#Text_16, 67, 11, 361, 105, ""+ Chr(13) +""+ Chr(13) +""+ Chr(13) +"Vous êtes bien certain de vouloir quitter ?", #PB_Text_Center)
    TextGadget(#Text_17, 9, 11, 58, 105, "")
    SetGadgetColor(#Text_16, #PB_Gadget_BackColor, RGB(255, 255, 255))
    SetGadgetColor(#Text_16, #PB_Gadget_FrontColor, RGB(255, 0, 0))
    SetGadgetColor(#Text_17, #PB_Gadget_BackColor, RGB(255, 255, 255))
    ImageGadget(#Image_1, 20, 40, 38, 38, Image1)
    
  EndIf
  
  Repeat ; Start of the event loop
    
    Event_2 = WindowEvent() ; This line waits until an event is received from Windows
    GadgetID_2 = EventGadget()
    
    If GadgetID_2 = #Button_5
      DeleteFile("Bouton cliquer.txt")
      OpenFile(1, "Bouton cliquer.txt")
      WriteString(1, "Oui")
      End
      CloseFile(1)
      Event_2 = #PB_Event_CloseWindow
    ElseIf GadgetID_2 = #Button_7
      DeleteFile("Bouton cliquer.txt")
      OpenFile(1, "Bouton cliquer.txt")
      WriteString(1, "Non")
      CloseFile(1)
      Event_2 = #PB_Event_CloseWindow
    EndIf
    
  Until Event_2 = #PB_Event_CloseWindow ; End of the event loop
  CloseWindow(#Window_1)
EndProcedure

Procedure SetClipboardFile(List ListeFichier2.s())
  Protected hDrop.DROPFILES, *dat, add.i, hMem.i, *buff
  
  If OpenClipboard_(0)
    ;on vide le presse papier
    EmptyClipboard_()
    
    ;on ajoute met tous les fichiers dans une zone mémoire (avec le chr(0))
    FirstElement(ListeFichier2())
    ForEach ListeFichier2()
      If *dat
        add = MemorySize(*dat)
      Else
        add = 0
      EndIf
      *dat = ReAllocateMemory(*dat, add+Len(ListeFichier2())+1)
      PokeS(*dat+add, ListeFichier2(), Len(ListeFichier2()))
      PokeB(*dat+add+Len(ListeFichier2()), 0)
    Next
    hDrop\pFiles = SizeOf(DROPFILES)
    
    hMem = GlobalAlloc_(#GMEM_MOVEABLE, SizeOf(DROPFILES)+MemorySize(*dat))
    *buff = GlobalLock_(hMem)
    CopyMemory(@hDrop, *buff, SizeOf(DROPFILES))
    CopyMemory(*dat, *buff+SizeOf(DROPFILES), MemorySize(*dat))
    GlobalUnlock_(hMem)
    SetClipboardData_(#CF_HDROP, hMem)
    CloseClipboard_()
    ProcedureReturn 1
  EndIf

ProcedureReturn 0
EndProcedure

Procedure Clipboard(lParam.i)

Delay(100)

  Repeat
    Fichier$ = getClipboardFiles()
    If Fichier$ <> "Aucune adresse de fichier n'est présent dans le presse papier"
      ; si ya bien une ou plusieur adresse de fichier dans le presse papier
      Type_de_donnee$ = "fichier"
    Else
      ; si ya pas d'adresse de fichier dans le presse papier, ont regarde si c'est pas une image
      
      If GetClipboardImage(#image)
        ; si ya bien une image dans le presse papier
        Type_de_donnee$ = "image"
      Else
        ; si ya pas d'image dans le presse papier
        
        If GetClipboardText()
          ; si ya un texte dans le presse papier
          Type_de_donnee$ = "texte"
        Else
          ; si ya pas de texte dans le presse papier, c'est que ya rien du tous
          Type_de_donnee$ = "vide"
        EndIf
        
      EndIf
      
    EndIf
    
    If Type_de_donnee$ = "fichier"
    
    If getClipboardFiles()
    RechercheAvencer(chaine_a_rechercher$)
    EndIf
    
    ElseIf Type_de_donnee$ = "image"
    
    ElseIf Type_de_donnee$ = "texte"
    
    ElseIf Type_de_donnee$ = "vide"
    ; ici, ont ne f ait rien du tout
    EndIf
    
    Delay(100) ; ont attent un peut pour ne pas que sa ail trop vite
  Until Quit = 1
  
EndProcedure

Procedure Programme_presse_papier()
  If OpenWindow(#Window_0, 538, 271, 550, 397, "presse papier ++", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    SmartWindowRefresh(#Window_0, #True)
    If CreateImageMenu(#Menu_Window_0, WindowID(#Window_0), #PB_Menu_ModernLook)
      MenuTitle("Fichier")
      MenuItem(#Menu_Window_0_EfacerLaListeDuPressePapier, "Efacer la liste du presse papier", CatchImage(#MenuImage_Menu_Window_0_EfacerLaListeDuPressePapier, ?MenuImage_Menu_Window_0_EfacerLaListeDuPressePapier))
      MenuBar()
      MenuItem(#Menu_Window_0_OuvrirUneListeDePressePapier, "Ouvrir une liste de presse papier", CatchImage(#MenuImage_Menu_Window_0_OuvrirUneListeDePressePapier, ?MenuImage_Menu_Window_0_OuvrirUneListeDePressePapier))
      MenuItem(#Menu_Window_0_EnregistrerLaListeDuPressePapier, "Enregistrer la liste du presse papier", CatchImage(#MenuImage_Menu_Window_0_EnregistrerLaListeDuPressePapier, ?MenuImage_Menu_Window_0_EnregistrerLaListeDuPressePapier))
      MenuBar()
      MenuItem(#Menu_Window_0_QuitterLePressePapier, "Quitter le presse papier", CatchImage(#MenuImage_Menu_Window_0_QuitterLePressePapier, ?MenuImage_Menu_Window_0_QuitterLePressePapier))
      MenuTitle("Edition")
      MenuItem(#Menu_Window_0_Annuler, "Annuler", CatchImage(#MenuImage_Menu_Window_0_Annuler, ?MenuImage_Menu_Window_0_Annuler))
      MenuItem(#Menu_Window_0_Restaurer, "Restaurer", CatchImage(#MenuImage_Menu_Window_0_Restaurer, ?MenuImage_Menu_Window_0_Restaurer))
      MenuBar()
      MenuItem(#Menu_Window_0_Couper, "Couper", CatchImage(#MenuImage_Menu_Window_0_Couper, ?MenuImage_Menu_Window_0_Couper))
      MenuItem(#Menu_Window_0_Copier, "Copier", CatchImage(#MenuImage_Menu_Window_0_Copier, ?MenuImage_Menu_Window_0_Copier))
      MenuItem(#Menu_Window_0_Coller, "Coller", CatchImage(#MenuImage_Menu_Window_0_Coller, ?MenuImage_Menu_Window_0_Coller))
      MenuBar()
      MenuItem(#Menu_Window_0_Supprimer, "Supprimer", CatchImage(#MenuImage_Menu_Window_0_Supprimer, ?MenuImage_Menu_Window_0_Supprimer))
      MenuBar()
      MenuItem(#Menu_Window_0_Apercus, "Aperçus", CatchImage(#MenuImage_Menu_Window_0_Apercus, ?MenuImage_Menu_Window_0_Apercus))
      MenuBar()
      MenuItem(#Menu_Window_0_Rechercher, "Rechercher", CatchImage(#MenuImage_Menu_Window_0_Rechercher, ?MenuImage_Menu_Window_0_Rechercher))     
      ;{       OpenSubMenu("Classer ")
      ;       OpenSubMenu("ce type d'éléments")
      ;       MenuItem(#Menu_Window_0_cetypedelementsParOrdreAlphabetique, "Par ordre alphabetique")
      ;       MenuItem(#Menu_Window_0_cetypedelementsParOrdreAlphabetiqueInversser, "Par ordre alphabetique inversser")
      ;       MenuBar()
      ;       MenuItem(#Menu_Window_0_cetypedelementsParTailleDuPlusGrandAuPlusPetit, "Par taille du plus grand au plus petit")
      ;       MenuItem(#Menu_Window_0_cetypedelementsParTailleDuPlusPetitAuPlusGrand, "Par taille du plus petit au plus grand")
      ;       MenuBar()
      ;       MenuItem(#Menu_Window_0_cetypedelementsParDateDuPlusRescentAuMoinRescent, "Par date du plus rescent au moin rescent")
      ;       MenuItem(#Menu_Window_0_cetypedelementsParDateDuMoinsRescentAuPlusRescent, "Par date du moins rescent au plus rescent")
      ;       CloseSubMenu()
      ;       OpenSubMenu("tous les types d'éléments")
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParOrdreAlphabetique, "Par ordre alphabetique")
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParOrdreAlphabetiqueInversser, "Par ordre alphabetique inversser")
      ;       MenuBar()
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParTailleDuPlusGrandAuPlusPetit, "Par taille du plus grand au plus petit")
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParTailleDuPlusPetitAuPlusGrand, "Par taille du plus petit au plus grand")
      ;       MenuBar()
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParDateDuPlusRescentAuMoinRescent, "Par date du plus rescent au moin rescent")
      ;       MenuItem(#Menu_Window_0_touslestypedelementsParDateDuMoinsRescentAuPlusRescent, "Par date du moins rescent au plus rescent")
      ;}
      MenuTitle("Réglages")
      MenuItem(#Menu_Window_0_Option, "Option", CatchImage(#MenuImage_Menu_Window_0_Option, ?MenuImage_Menu_Window_0_Option))
      MenuTitle("Aide")
      MenuItem(#Menu_Window_0_AideSurLePressePapier, "Aide sur le presse papier", CatchImage(#MenuImage_Menu_Window_0_AideSurLePressePapier, ?MenuImage_Menu_Window_0_AideSurLePressePapier))
    EndIf
    If CreatePopupImageMenu(#PopupMenu, #PB_Menu_ModernLook)
      MenuItem(#Menu_Window_0_Popup_Menu_Couper, "Couper", CatchImage(#Popup_Menu_Window_0_Couper, ?Popup_Menu_Window_0_Couper))
      MenuItem(#Menu_Window_0_Popup_Menu_Copier, "Copier", CatchImage(#Popup_Menu_Window_0_Copier, ?Popup_Menu_Window_0_Copier))
      MenuItem(#Menu_Window_0_Popup_Menu_Coller, "Coller", CatchImage(#Popup_Menu_Window_0_Coller, ?Popup_Menu_Window_0_Coller))
      MenuBar()
      MenuItem(#Menu_Window_0_Popup_Menu_Supprimer, "Supprimer", CatchImage(#Popup_Menu_Window_0_Supprimer, ?Popup_Menu_Window_0_Supprimer))
      MenuBar()
      MenuItem(#Menu_Window_0_Popup_Menu_Apercus, "Aperçus", CatchImage(#Popup_Menu_Window_0_Apercus, ?Popup_Menu_Window_0_Apercus))
    EndIf
    If CreateStatusBar(#StatusBar_Window_0, WindowID(#Window_0))
      AddStatusBarField(0)
      StatusBarText(#StatusBar_Window_0, 0, "''")
    EndIf
    TreeGadget(#Tree_2, 10, 30, 220, 315, #PB_Tree_AlwaysShowSelection)
    AddGadgetItem (#Tree_2, 1, "Texte", 0, 0)
    AddGadgetItem (#Tree_2, 2, "Fichier", 0, 0)
    AddGadgetItem (#Tree_2, 3, "Image", 0, 0)
    TextGadget(#Text_4, 10, 10, 220, 15, "Elément actuel du presse papier:", #PB_Text_Center)
    ListIconGadget(#ListIcon_7, 240, 30, 304, 315, "Données copier", 90, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines)
    ;SendMessage_(GadgetID(#ListIcon_7), #LVM_SETCOLUMNWIDTH, 0, #LVSCW_AUTOSIZE_USEHEADER)
    AddGadgetColumn(#ListIcon_7, 1, "Date de copie", 80)
    AddGadgetColumn(#ListIcon_7, 2, "Type de donnée", 90)
    AddGadgetColumn(#ListIcon_7, 3, "Taille", 40)
    AddGadgetItem (#ListIcon_7, -1, "", 0, 0)
    TextGadget(#Text_8, 240, 10, 300, 15, "Lien actuel de l'élément du presse papier:", #PB_Text_Center)
    ;Gadget Resizing
        PureRESIZE_SetGadgetResize(#Tree_2, 1, 1, 0, 1)
        PureRESIZE_SetGadgetResize(#Text_4, 1, 1, 0, 0)
        PureRESIZE_SetGadgetResize(#ListIcon_7, 1, 1, 1, 1)
        PureRESIZE_SetGadgetResize(#Text_8, 1, 1, 1, 0)
    ;Window Minimum Size
        PureRESIZE_SetWindowMinimumSize(#Window_0, 554, 401)
  EndIf
  
  CreateThread(@Clipboard(),0)
  
  ;{- Event loop
  Repeat
    
    Select WindowEvent()
        ; ///////////////////
      Case #PB_Event_Gadget
        Select EventGadget()
          Case #Tree_2
          Case #Text_4
          Case #ListIcon_7
            Select EventType()
              Case #PB_EventType_RightClick
                DisplayPopupMenu(#PopupMenu,WindowID(#Window_0))
            EndSelect
          Case #Text_8
        EndSelect
        ; /////////////////
      Case #PB_Event_Menu
        Select EventMenu()
          Case #Menu_Window_0_EfacerLaListeDuPressePapier
          DisableWindow(#Window_0, 1)
          boite_de_dialogue_effacer_liste_presse_papier()
          DisableWindow(#Window_0, 0)
          StickyWindow(#Window_0, 1)
          StickyWindow(#Window_0, 0)
          Case #Menu_Window_0_OuvrirUneListeDePressePapier
          Case #Menu_Window_0_EnregistrerLaListeDuPressePapier
          Case #Menu_Window_0_QuitterLePressePapier
          DisableWindow(#Window_0, 1)
          boite_de_dialogue_quitter()
          DisableWindow(#Window_0, 0)
          StickyWindow(#Window_0, 1)
          StickyWindow(#Window_0, 0)
          Case #Menu_Window_0_Annuler
          Case #Menu_Window_0_Restaurer
          Case #Menu_Window_0_Couper
          Case #Menu_Window_0_Copier
          Case #Menu_Window_0_Coller
          Case #Menu_Window_0_Supprimer
          Case #Menu_Window_0_Apercus
          Case #Menu_Window_0_Rechercher
;           Case #Menu_Window_0_cetypedelementsParOrdreAlphabetique
;           Case #Menu_Window_0_cetypedelementsParOrdreAlphabetiqueInversser
;           Case #Menu_Window_0_cetypedelementsParTailleDuPlusGrandAuPlusPetit
;           Case #Menu_Window_0_cetypedelementsParTailleDuPlusPetitAuPlusGrand
;           Case #Menu_Window_0_cetypedelementsParDateDuPlusRescentAuMoinRescent
;           Case #Menu_Window_0_cetypedelementsParDateDuMoinsRescentAuPlusRescent
;           Case #Menu_Window_0_touslestypedelementsParOrdreAlphabetique
;           Case #Menu_Window_0_touslestypedelementsParOrdreAlphabetiqueInversser
;           Case #Menu_Window_0_touslestypedelementsParTailleDuPlusGrandAuPlusPetit
;           Case #Menu_Window_0_touslestypedelementsParTailleDuPlusPetitAuPlusGrand
;           Case #Menu_Window_0_touslestypedelementsParDateDuPlusRescentAuMoinRescent
;           Case #Menu_Window_0_touslestypedelementsParDateDuMoinsRescentAuPlusRescent
          Case #Menu_Window_0_Option
          Case #Menu_Window_0_AideSurLePressePapier
        EndSelect
        ; ////////////////////////
      Case #PB_Event_CloseWindow
        Select EventWindow()
          Case #Window_0
          Debug BaseDeDonneePressePapier$
          boite_de_dialogue_quitter()
        EndSelect
    EndSelect
    
    ; pour éviter le petit delais d'attente au démarrage du programme
    
    passage + 1
    
    If passage < 100
    Else
    Delay(1)
    EndIf
    
  ForEver
  ;
  ;}
EndProcedure

Programme_presse_papier()
bon jais pas finie évidement et je vais faire des modifications
sur ce système qui me conviens pas très bien encore
si vous avez des idée, aides, merci

a bientôt :D

Re: besoin d'aide pour mon programme en court de création

Publié : sam. 07/août/2010 15:51
par dayvid
Salut, :D

Je suis arriver par miracle jusque ici mais franchement je rame un peut :cry:

Le but est que quand ya qu'elle que chose dans le presse papier
des fichier pour le moment, ya une ligne qui s'ajoute dans le tree 2
avec tous les fichier les uns a la suite des autres, sa c'est plus ou
moins fait mais c'est pas sa encore, ensuite le plus dure, comment
je fait pour que quand le clique sur une ligne dans le tree 2
que la liste des fichier apparais dans la listicone les un en dessous
des autres, dois-je faire une espèce d'extraction de chaque fichier ?

Comment je peut faire, pourriez vous s'il vous plait améliorer cella
je pense que vous vous saurez comment faire car moi je rame la :(

je fait de mon mieux pour tous faire moi même mais des fois je bloque :)
merci d'avense :D

Re: besoin d'aide pour mon programme en court de création

Publié : mar. 10/août/2010 13:59
par dayvid
bijour :)

Si je n’ai pas eu de réponse, c'est surement parce que cella vous semblais mieux comme sa
ce qui n'est pas faut mais bon j'ai réussi à avancer un peux quand même
J’ai fait comme dit mais je vous avoue que j’ai du corriger des bug car sa marchais
pas du tous comme je le voulais :cry:

Bien cependant pourquoi quand je redimensionne la fenêtre sa bug méchant méchant :twisted:

De plus pour mon system de tree gadget, je souhaiterais
que vous corriger les divers soucis qu’il y a

Ne supprimer pas les lignes de code mais mettez-les plutôt en commentaire car comme
sa je pourrais mieux saisir le problème

A oui et aussi, je ne sais pas comment je fais pour faire en sorte que quand je clique dans le tree
sur les trois lien « fichier, texte et image » rien ne s’affiche dans la listicon
comment je fait pour mémoriser les liens (leur numéro) car il change quand d’autre
élément apparaissent, j’ai essayer le « setgadgetdata, getgadgetdata » mais j’ai pas réussi :wink:

S’il vous plait pourriez vous corrigiez tout les soucis et améliorer mon code pour
que je puisse continuer, j’ai crée le code mais il faudrait l’améliorer :wink:

merci de bien vouloir m’aider et si vous avez des idée et
même des critique n’hésitez pas surtout :D
a plus

Re: besoin d'aide pour mon programme en court de création

Publié : ven. 13/août/2010 14:30
par dayvid
pourquoi personne ne répond :cry:
j'ai fait quelle que chose de mal c sa :?:

ba moi je voie pas, pourquoi vous ne m'aider pas ? :|

Re: besoin d'aide pour mon programme en court de création

Publié : ven. 13/août/2010 19:33
par case
S’il vous plait pourriez vous corrigiez tout les soucis et améliorer mon code pour
que je puisse continuer, j’ai crée le code mais il faudrait l’améliorer :wink:
:mrgreen:

non on peux pas corriger tout les soucis et optimiser ton code, c'est a toi de le faire , c'est ca être programmeur :)

Re: besoin d'aide pour mon programme en court de création

Publié : mar. 17/août/2010 13:50
par dayvid
Mais cher pas faire :( :cry: :oops: :|