Page 2 sur 3

Publié : jeu. 29/juil./2004 18:52
par Chris
Euhhh!!!

Comment on l'arrête ton carré ???
:snipersmile: :2gunfire:

Publié : jeu. 29/juil./2004 18:57
par Chris
Faut quand même avoir l'esprit tordu pour vouloir qu'un gros carré rose complètement incontrolable vienne se balader n'importe où sur l'écran :lol:

Publié : jeu. 29/juil./2004 19:04
par Oliv
il suffit de faire un click droit sur la barre des taches et de cliquer sur "fermer" :wink: ou alors tu évites de sésactiver le débugger

Publié : jeu. 29/juil./2004 19:10
par Oliv

Code : Tout sélectionner

#Principale=0 

x.l : y.l 

hWnd1 = OpenWindow(#Principale,0,0,100,100, #PB_Window_borderless , "Carré") 

himg = CreateImage(0,100,100) ; Cré et colorise le rectangle 
StartDrawing(ImageOutput()) 
  Box(0,0,100,100,RGB(Random(255),Random(255),Random(255))) 
StopDrawing() 

 hBrush1.l = CreatePatternBrush_(himg) ; Affiche le rectangle dans la fenêtre 
 SetClassLong_(hWnd1 ,#GCL_HBRBACKGROUND, hBrush1) 
 InvalidateRect_(hWnd1, #NULL, #TRUE) 
  
 SetWindowPos_(WindowID(), -1, 0, 0, 0, 0, #SWP_NOSIZE) ; Met la fenêtre toujours au premier plan 
  
 AddKeyboardShortcut(#Principale,#PB_Shortcut_Escape,0)
 
Repeat 
 Select WindowEvent() 
   Case #PB_Event_Closewindow 
     End
   Case #PB_event_Menu
     End
 EndSelect
 x + Random(10)-5 : y + Random(10)-5
 MoveWindow(x,y) 
 Delay(10)
ForEver 
Voilà, maintenant la couleur change à chaque lancement et en appuyant sur echap on quitte :P

Publié : jeu. 29/juil./2004 19:27
par Chris
Tiens, je l'ai juste modifié pour que le carré rebondisse sur les bords de l'écran. (J'aime bien, quand ça rebondit sur le bord de l'écran :lol: )

On pourrait même peut-être envisager de mettre ça dans un thread, pour éviter que le carré s'arrête quand on sélectionne une fenêtre.

Code : Tout sélectionner

#Principale=0 

xMax = GetSystemMetrics_(#SM_CXSCREEN)
yMax = GetSystemMetrics_(#SM_CYSCREEN)
DepX = 6 : DepY = 8

x.l : y.l 

hWnd1 = OpenWindow(#Principale,0,0,100,100, #PB_Window_BorderLess , "Carré") 

himg = CreateImage(0,100,100) ; Cré et colorise le rectangle 
StartDrawing(ImageOutput()) 
Box(0,0,100,100,RGB(Random(255),Random(255),Random(255))) 
StopDrawing() 

hBrush1.l = CreatePatternBrush_(himg) ; Affiche le rectangle dans la fenêtre 
SetClassLong_(hWnd1 ,#GCL_HBRBACKGROUND, hBrush1) 
InvalidateRect_(hWnd1, #Null, #True) 
  
SetWindowPos_(WindowID(), -1, 0, 0, 0, 0, #SWP_NOSIZE) ; Met la fenêtre toujours au premier plan 
  
AddKeyboardShortcut(#Principale,#PB_Shortcut_Escape,0) 
  
Repeat 
  Select WindowEvent() 
    Case #PB_Event_CloseWindow 
      End 
    Case #PB_Event_Menu 
      End 
  EndSelect 
  
  x + DepX : y + DepY
  If x >= xMax-100 Or x <=0 : DepX = -DepX : EndIf
  If y >= yMax-100 Or y <=0 : DepY = -DepY : EndIf
  
  ;x + Random(30)-5 : y + Random(30)-5 
  MoveWindow(x,y) 
  Delay(10) 
ForEver 

Publié : jeu. 29/juil./2004 19:49
par Oliv
Vos désirs sont des ordres maitre

Code : Tout sélectionner

Procedure Carre(par.b)
  #Principale=0 

  xMax = GetSystemMetrics_(#SM_CXSCREEN) 
  yMax = GetSystemMetrics_(#SM_CYSCREEN) 
  DepX = 6 : DepY = 8 

  x.l : y.l 

  hWnd1 = OpenWindow(#Principale,0,0,100,100, #PB_Window_BorderLess , "Carré") 

  himg = CreateImage(0,100,100) ; Cré et colorise le rectangle 
  StartDrawing(ImageOutput()) 
  Box(0,0,100,100,RGB(Random(255),Random(255),Random(255))) 
  StopDrawing() 

  hBrush1.l = CreatePatternBrush_(himg) ; Affiche le rectangle dans la fenêtre 
  SetClassLong_(hWnd1 ,#GCL_HBRBACKGROUND, hBrush1) 
  InvalidateRect_(hWnd1, #Null, #True) 
    
  SetWindowPos_(WindowID(), -1, 0, 0, 0, 0, #SWP_NOSIZE) ; Met la fenêtre toujours au premier plan 
    
  AddKeyboardShortcut(#Principale,#PB_Shortcut_Escape,0) 
    
  Repeat 
    Select WindowEvent() 
      Case #PB_Event_CloseWindow 
        End 
      Case #PB_Event_Menu 
        End 
    EndSelect 
    
    x + DepX : y + DepY 
    If x >= xMax-100 Or x <=0 : DepX = -DepX : EndIf 
    If y >= yMax-100 Or y <=0 : DepY = -DepY : EndIf 
    
    ;x + Random(30)-5 : y + Random(30)-5 
    MoveWindow(x,y) 
    Delay(10) 
  ForEver
EndProcedure

Debug CreateThread(@Carre(),0)
Par contre ça ne fonctionne plus si on enlève le debug :?: (je connait pas trop les threads moi, d'ailleurs je ne vois pas de différence avec ou sans thread sur mon PC)

Publié : jeu. 29/juil./2004 20:08
par Chris
Ben non, quand on y réfléchi, ça peut pas servir à grand-chose, puisque le carré est déjà dans un thread différent des autres applications ouvertes.

Chui vraiment c.., parfois :lol:

Publié : ven. 30/juil./2004 7:31
par brossden
Bonjour à tous !

Nouveau défit si vous l'acceptez !

Comment remplacer le rectangle ou carré par une forme quelconque exemple un trait en diagonale, un cercle ou une combinaison des deux ....

Là vous allez peut être caler !! lol

NB : J'ai réellement besoin de cela ce n'est pas un caprice même si je le tourne sous forme de jeux !

Publié : ven. 30/juil./2004 10:11
par Le Soldat Inconnu
facile, il suffit de mettre un masque sur la fenêtre avec ce code par exemple :

http://perso.wanadoo.fr/lesoldatinconnu ... cifique.pb

mais on peut aussi utiliser la lib SkinWin de Danilo, la il suffit de faire une image avec une coleur fixé comme transparente et de l'appliqué à la fen, la lib fait le reste ;)

Publié : ven. 30/juil./2004 10:48
par Oliv
C'est vrai que la lib de Danilo est pas mal, par contre, si c'est pas trop embêtant, pourquoi ça :?: :?: :?:

Publié : ven. 30/juil./2004 13:16
par brossden
Le Sodat Inconnu tu merites à etre connu !
Ton code est type top, [pil poil] ce que je cherchais.
Vous êtes tous de chefs ! (je n'en ai jamais douté !)

Publié : ven. 30/juil./2004 13:19
par Le Soldat Inconnu
j'ai pas suivi Oliv ?

pour la lib, j'ai un doute, je sais plus si c'est skinwin ou une autre ...

Publié : ven. 30/juil./2004 13:37
par Oliv
La lib c'est bien skinwin, ma question je la posais à brossden, car je me demande à quoi est-ce que ça peut servir

Publié : ven. 30/juil./2004 13:40
par Le Soldat Inconnu
ben par exemple faire une arraignée qui se ballade sur le haut de l'écran sous windows :lol:

Publié : ven. 30/juil./2004 14:16
par brossden
Le Soldat Inconnu, saurais tu faire cette fameuse araignée ?