Page 1 sur 1

si regis est là peux t'il me repondre svp ..

Publié : dim. 27/mars/2005 13:03
par bernard13
bonjour et joyeuse paques

voila je suis entrain d'etudier comment crée un skin
j'ai pris comme exemple un bout de code que le SOLDAT INCONNU( regis pour les intimes) a avais ecris c'etait pour connaitre la vitesse d'un disque dur
j'ai repris le code et j'ai garder que la skin que j'etudie mais j'ai des petites questions a demander :

Couleur = GetSysColor_(#COLOR_3DFACE)
que veux dire cette ligne je sais qu'elle sait afficher la couleur de fond mais comment changer la couleur de fond ?

pourquoi mettre :
#WS_BORDER | #WS_SYSMENU | #WS_MINIMIZEBOX |
au lieu de #PB_Window_BorderLess | #PB_Window_SystemMenu |#PB_Window_MaximizeGadget ?

et aussi
If OpenWindow(0, 0, 0, #WinX + 2 * #Bordure, #WinY,
qui eux m'expliquer le code svp

merci si regis viens sur le forum qi il peux me repondre
j'ai juste changer des couleur mais c'est tout

merci
Jbernard

Code : Tout sélectionner


 Procedure de la librairie ColorEffect 

Procedure.l ColorLuminosity2(Couleur, Echelle.f) ; Eclaicir ou foncer une couleur 
  Protected Rouge, Vert, Bleu 
  
  Rouge = Red(Couleur) * Echelle 
  Vert = Green(Couleur) * Echelle 
  Bleu = Blue(Couleur) * Echelle 
  
  If Rouge > 155 : Rouge =155 : EndIf 
  If Vert > 255 : Vert = 255 : EndIf 
  If Bleu > 155 : Bleu = 155 : EndIf 
  
  ProcedureReturn RGB(Rouge, Vert, Bleu) 
EndProcedure 
;



;- Debut de l'exemple 

; Création de la fenêtre et de la GadgetList 
#WinX = 200 
#WinY = 125 
#Bordure = 2 

If OpenWindow(0, 0, 0, #WinX + 2 * #Bordure, #WinY, #PB_Window_BorderLess | #WS_BORDER | #WS_SYSMENU | #WS_MINIMIZEBOX | #PB_Window_ScreenCentered, "Disque dur") = 0 Or CreateGadgetList(WindowID()) = 0 
  End 
EndIf 

; Couleur de fond de la fenêtre 
Couleur = GetSysColor_(#COLOR_3DFACE) 

 

; Titre 
CreateImage(1, #WinX + 2 * #Bordure, 25) 
StartDrawing(ImageOutput()) 
For n = 0 To 24
   Line(0, n, #WinX + 2 * #Bordure, 0, ColorLuminosity2(Couleur, 1.1 - 0.2 * n / 24)) 
  Next 
  ; On dessine le texte du titre 
  LoadFont(0, "Arial", 9, #PB_Font_Bold) 
  DrawingFont(FontID()) 
  FrontColor(0, 0, 255) 
  DrawingMode(1) 
  Locate(50, 5) 
  DrawText("Exemple de skin ")
  
StopDrawing() 

  
; On affiche les gadgets 
ImageGadget(0, 0, 0, #WinX + 2 * #Bordure, 25, UseImage(1)) 

ImageGadget(#PB_Any, #Bordure, #WinY - #Bordure * 2 - 21 - 2, #WinX, 2, UseImage(0)) ; Bordure de séparation 
ButtonGadget(4, #Bordure, #WinY - #Bordure - 21, #WinX, 21, "Quitter") 


Repeat 
  Event = WaitWindowEvent() 
  
  If Event = #PB_EventGadget 
    Select EventGadgetID() ; Gadgets 
      
      Case 0 ; On clique sur le titre 
        SendMessage_(WindowID(), #WM_NCLBUTTONDOWN, #HTCAPTION, 0) ; On déplace la fenêtre tant que le bouton de la souris reste appuyé 
        
      Case 4 ; Appui sur le bouton quitter 
        Event = #PB_EventCloseWindow 
    EndSelect 
  EndIf 
  
  
Until Event = #PB_EventCloseWindow 

End

Re: si regis est là peux t'il me repondre svp ..

Publié : dim. 27/mars/2005 14:07
par Oliv
Bon je sais que l'orthographe et la conjugaison ne sont pas ton fort, et tout le monde fait des fautes sur le forum, moi le premier mais relis toi quand même :
bernard13 a écrit : le SOLDAT INCONNU a avais ecris c'etait
là tu as QUATRE verbes à la suite 8O

Sinon joyeuses paques à toi aussi et
Couleur = GetSysColor_(#COLOR_3DFACE)
Renvoi la couleur de windows pour cet élement : http://msdn.microsoft.com/library/defau ... scolor.asp

Pour le reste je ne peux pas te répondre :oops:

Publié : dim. 27/mars/2005 14:14
par bernard13
merci Oliv
desoler pour les fautes ...

Publié : dim. 27/mars/2005 14:30
par Le Soldat Inconnu
Couleur = GetSysColor_(#COLOR_3DFACE)
ce code renvoir la couleur de élément 3D de win, soit typiquement la couleur de fond des fenêtres.
pour changer la couleur de fond, regarde sur 2DEV, il y a un exemple si je ne me trompe pas

Code : Tout sélectionner

OpenWindow(0, 0, 0, #WinX + 2 * #Bordure, #WinY, #PB_Window_BorderLess | #WS_BORDER | #WS_SYSMENU | #WS_MINIMIZEBOX | #PB_Window_ScreenCentered, "Disque dur")
arf, un peu d'API windows
#WS_BORDER donne un cadre noir autour de la fenêtre

#WS_SYSMENU crée le systemmenu pour la fenêtre (faire clic droit sur le bouton de la fenêtre dans la barre des tâches)
il te suffit d'essayer pour comprendre la différence avec #PB_Window_SystemMenu (avec cette valeur, on ne peut pas faire de fenêtre sans bordure)

Code : Tout sélectionner

OpenWindow(0, 0, 0, 200, 200, #PB_Window_BorderLess | #WS_SYSMENU | #PB_Window_ScreenCentered, "Test")

Repeat
  
Until WaitWindowEvent() = #PB_Event_CloseWindow

OpenWindow(0, 0, 0, 200, 200, #PB_Window_BorderLess | #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Test")

Repeat
  
Until WaitWindowEvent() = #PB_Event_CloseWindow

If OpenWindow(0, 0, 0, #WinX + 2 * #Bordure, #WinY,
qui eux m'expliquer le code svp
La tu abuses, il n'y a a rien de compliquer, les valeurs des constantes sont au début du code
#WinX = 200 : taille de la fen en x
#WinY = 125 : taille de la fen en y
#Bordure = 2 : taille d'une zone vide autour de la fen pour faire une bordure
tu n'as qu'à changer ces valeurs pour changer les dimensions de la fenêtre ;) et tu comprendras de suite

le SOLDAT INCONNU( regis pour les intimes)
hum, bof, c'est soit Régis avec une majuscule soit le Le Soldat Inconnu mais y'a pas de pour les intimes qui tiennes :lol:

Publié : dim. 27/mars/2005 14:38
par bernard13
merci regis pour ton aide

Publié : dim. 27/mars/2005 17:50
par gansta93
bernard13 a écrit :merci regis pour ton aide
C'est pas Régis avec la majuscule et un E accent aigu ? :lol: