Page 2 sur 2

Re: Fermer programme en arriére-plan

Publié : mer. 23/déc./2015 18:00
par Marc56
Dans mon desk, la fenêtre d'info en bas à gauche est en pure pb, aucune API, mais j'ai renoncé à l'effet de transparence.

Pour la mettre en bas à droite c'est facile: il suffit de déduire sa taille des infos données par desktopheight et destktopwidth.

J'ai fais une procédure et je lui passe le texte, la couleur et le timeout.
Pour le timeout: un eventimer lui est passé dès l'ouverture.
L'utilisateur peut la refermer en cliquant n'importe où dessus.
(la fenetre de fin d chrono je ne lui met pas de timoute au cas où l'utilisateur soit parti)

Simple.
:)

Il y a une api qui permet de déplacer une fenetre sans bordure (cherche dans l'historique du forum fr et us: déplacer une fenetre sans bordure).

Re: Fermer programme en arriére-plan

Publié : mer. 23/déc./2015 18:07
par venom
Oui mais avec la demo les API c'est mort :wink:






@++

Re: Fermer programme en arriére-plan

Publié : mer. 23/déc./2015 18:09
par Marc56
C'est le moment d'offrir cadeau de noël à Fred: acheter une licence :)
79€ pour une licence à vie de ce produit, c'est rien comparé à VisualStudio, Delphi etc :wink:

Re: Fermer programme en arriére-plan

Publié : mer. 23/déc./2015 18:36
par JohnJohnsonSHERMAN
Et sinon, comment je fais sans api? (a part acheter une license)?
J'ai essayé avec un canvas, mais le probléme est que, mettons que je me place au centre du canvas, je déplace et hop, le coin supérieur gauche de la fenetre vient sous le curseur, au lieu de suivre les mouvements de la souris... je sais pas si c'est assez clair comme explication...

Re: Fermer programme en arriére-plan

Publié : jeu. 24/déc./2015 1:40
par Ar-S
sans api c'est mort avec la souris, au pire tu peux la déplacer avec les flèches via les raccourcis clavier en pb
Avec api c'est tout simple

Code : Tout sélectionner

Case #WM_LBUTTONDOWN ; on recupere l'evenement d'un clic souris gauche
            SendMessage_(WindowID(#LDVM), #WM_NCLBUTTONDOWN, #HTCAPTION, 0) ; Suivi de la fenetre avec la souris
            
Moralité : achète pb, il en vaut la peine

Re: Fermer programme en arriére-plan

Publié : jeu. 24/déc./2015 10:28
par JohnJohnsonSHERMAN
C´est peut etre possible en fait... j´ai trouvé un truc intéressant : un Code de microdevweb ! http://www.purebasic.fr/french/viewtopi ... =6&t=15696
Bon, la partie Vctordrawing, je jette, m´intéresse pas, de méme pour ce qui a rapport avec son horloge (soit dit au passage, c´est pas un des skins du gadget horloge de chez windows?), par contre, la boucle principale m´intéresse... Alors qu´en pensez-vous?

EDIT : euh je réve ou t´est encore sur les forums pb a 1h du mat´ Ar-S??? :)

Re: Fermer programme en arriére-plan

Publié : jeu. 24/déc./2015 12:00
par JohnJohnsonSHERMAN
En attendant, je suis satisfait de ce qui a été fait!! Voici le code a l'heure actuelle :

Code : Tout sélectionner

If LoadImage(1,"D:\Documents\Programmation\Shermavigator\Play.ICO")
Else
  MessageRequester("Erreur","L'icone ne peut etre chargée !")
EndIf
UsePNGImageDecoder()
LoadImage(2,"D:\Images\Non classées\open.png")
ResizeImage(2,20,15,#PB_Image_Smooth)

If InitSound() = 0
  MessageRequester("Erreur", "Chef, on peut pas initialiser le systéme de son!!",  0)
  End
EndIf

Enumeration
  #icone
  #pause
  #stop
  #open
  #adresse
  #lecture
  #hide
  #quit
  #quitter
  #stat
  #volume
  #deplace
EndEnumeration

LoadImage(#quitter,"D:\Images\Non classées\fermer.png")
OpenWindow(0,11,10,300,150,"SherPlay",  #PB_Window_BorderLess | #PB_Window_ScreenCentered | #PB_Window_BorderLess)
SetWindowColor(0,RGBA(40,80,200,0))
status=#True
lect=#True
progress=0
long=0
Global adresse$ =""
AddSysTrayIcon(#icone,WindowID(0),ImageID(1))
SysTrayIconToolTip(#icone,"SherPlay. Lire de la musique.")
ButtonGadget(#pause, 50, 10, 100, 25, "Pause", #PB_Button_Toggle)
ButtonGadget(#hide, 190, 120, 100, 25, "Masquer")
ButtonImageGadget(#quit, 270,10,20,20,ImageID(#quitter))
TextGadget(#adresse, 10, 50, 270, 20, "Aucune musique chargée.")
SetGadgetColor(#adresse,#PB_Gadget_BackColor,RGB(40,80,200))
TrackBarGadget(#volume, 10, 90, 280, 20, 0, 100, #PB_TrackBar_Ticks)
SetGadgetColor(#volume,#PB_Gadget_BackColor,RGB(40,80,200))
SetGadgetState(#volume,70)
;TextGadget(#stat,10,90,150,20,"NULL")
ButtonImageGadget(#open, 10, 10, 30, 25, ImageID(2))
ButtonGadget(#deplace, 10, 120, 70, 25, "Déplacer")




Repeat
  Event=WaitWindowEvent(5)
  
  Select Event
    Case  #PB_Event_Gadget
      
      Select EventGadget()
          
        Case #deplace ;ca c'est de la merde
          ResizeWindow(0,DesktopMouseX(),DesktopMouseY(),#PB_Ignore,#PB_Ignore)
          
        Case #open ;l'utilisateur ouvre un fichier
          adresse$=OpenFileRequester("Choisissez une musique","D:\Musique\","Tous| *.*",0)
          i=1
          ;Obtention du nom du fichier
          While  Left(souschaine.s,1)<>"\"
            souschaine.s=Right(adresse$,i)
            i+1
          Wend
          
          souschaine=Right(souschaine,Len(souschaine)-1)
          adresse1$=souschaine
          
          SetGadgetText(#adresse,adresse1$)
          SysTrayIconToolTip(#Icone,"SherPlay. Lecture de "+adresse1$+Chr(10)+"Cliquez pour faire réapparaitre la fenetre.")
          ;Chargement et lecture du fichier
          If LoadSound(0, adresse$)
            long=SoundLength(0)
            PlaySound(0, #PB_Sound_Loop)
          Else
            MessageRequester("Merde!","Y'a un probléme. on n'arrive pas a lire ce son... Peut être que c'est pas un format supporté? Seul le .wav est actuellement supporté",0)
          EndIf
          ProgressBarGadget(#lecture, 10, 70, 280, 10, 0, long, #PB_ProgressBar_Smooth)
          SetGadgetColor(#lecture,#PB_Gadget_FrontColor,RGB(20,50,250))
          SetGadgetColor(#lecture,#PB_Gadget_BackColor,RGB(250,230,200))
          
        Case #pause
          If lect=#True
            PauseSound(0)
            lect=#False
          Else
            ResumeSound(0)
            lect=#True
          EndIf
          
        Case #quit
          End
          
        Case #hide
          HideWindow(0,#True)
          
      EndSelect
      
    Case #PB_Event_SysTray    ;Gérer le clic sur l'icone, si la fenétre est visible, la masquer, et inversement
      Select EventGadget()
        Case #icone 
          If status=#True
            HideWindow(0,#True)
            status=#False
          Else
            HideWindow(0,#False)
            status=#True
          EndIf
          
      EndSelect
  EndSelect
  If long <> 0
    SetGadgetState(#lecture,GetSoundPosition(0))
    ;SetGadgetText(#stat, Str(GetSoundPosition(0)))
    SoundVolume(0,GetGadgetState(#volume))
  EndIf  
ForEver
Reste plus qu'a essayer de la rendre déplacable...
Voila, merci a tous!!