Je me suis amusé à faire ça.

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Je me suis amusé à faire ça.

Message par Chris »

Je me suis amusé à faire ce truc, mais alors faut pas me demander à quoi ça peut servir, j'en ai pas la moindre idée. :mrgreen:

Code : Tout sélectionner

Enumeration
  #WinMain
EndEnumeration

Enumeration
  #Spin_Taille
  #Btn_Police
  #Cmb_Caracteres
  #Image
EndEnumeration

Macro ChangeSpin(Gadget, valeur)
  a = Val(GetGadgetText(Gadget)) : a + valeur
  
  SetGadgetState(Gadget, a)
  SetGadgetText(Gadget, Str(GetGadgetState(Gadget)))
EndMacro

Procedure CreeImage(Font, Lettre.s, Couleur, Fond)
  If CreateImage(0, 400, 400)
    StartDrawing(ImageOutput(0))
    
    Box(0, 0, GadgetWidth(#Image), GadgetHeight(#Image), RGB($FF,$FF,$FF))
    DrawingMode(#PB_2DDrawing_Transparent)
    DrawingFont(Font)
    H = TextHeight(Lettre) : L = TextWidth(Lettre)
    x = 200 - (L/2) : y = 200 - (H/2)
    DrawText(x, y, Lettre, Couleur, Fond)
    StopDrawing()
  EndIf
  SetGadgetState(#Image, ImageID(0))
  
EndProcedure

FontName.s = "Arial"
FontStyle = #PB_Font_Bold
FontSize = 100
FontColor = $000000

If OpenWindow(#WinMain, 0, 0, 515, 410, "ImageGadget",  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
  
  If CreateGadgetList(WindowID(0))
    ImageGadget(#Image, 5, 5, 400, 400, 0)
    ComboBoxGadget(#Cmb_Caracteres, 410, 5, 45, 200)
    ButtonGadget(#Btn_Police, 460, 5, 50, 20, "Police")
    SpinGadget(#Spin_Taille, 410, 35, 100, 20, 0, 400)
  EndIf
  SetGadgetState(#Spin_Taille, FontSize)
  SetGadgetText(#Spin_Taille, Str(GetGadgetState(#Spin_Taille)))
  
  For i = '!' To 'ÿ'
    If i <> 38 And i <> 127 And i <> 129 And i <> 141 And i <> 143 And i <> 144 And i <> 157
      AddGadgetItem(#Cmb_Caracteres, -1, Chr(i))
    EndIf
  Next
  SetGadgetState(#Cmb_Caracteres, 0)
  Lettre.s = GetGadgetItemText(#Cmb_Caracteres, GetGadgetState(#Cmb_Caracteres),0)
  LoadFont(0, FontName, FontSize, FontStyle)
  CreeImage(FontID(0), Lettre, FontColor, RGB($FF,$FF,$FF))

  Repeat
    
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow : Quit = #True
      Case #PB_Event_Gadget
        Select EventGadget()
          Case #Btn_Police
            Font = FontRequester(FontName, GetGadgetState(#Spin_Taille), #PB_FontRequester_Effects, RGB($0,$0,$0))
            
            If Font
              FontName = SelectedFontName()
              FontSize = SelectedFontSize()
              FontStyle = SelectedFontStyle() : Debug FontStyle
              FontColor = SelectedFontColor()
              
              LoadFont(0, FontName, FontSize, FontStyle)
              CreeImage(FontID(0), Lettre, FontColor, RGB($FF,$FF,$FF))
              
              SetGadgetState(#Spin_Taille, FontSize)
              SetGadgetText(#Spin_Taille, Str(GetGadgetState(#Spin_Taille)))
            EndIf
            
          Case #Spin_Taille
            Select EventType() 
              Case -1
                ChangeSpin(#Spin_Taille, -10)
                LoadFont(0, FontName, GetGadgetState(#Spin_Taille), FontStyle)
                CreeImage(FontID(0), Lettre, FontColor, RGB($FF,$FF,$FF))
                
              Case 1
                ChangeSpin(#Spin_Taille, 10)
                LoadFont(0, FontName, GetGadgetState(#Spin_Taille), FontStyle)
                CreeImage(FontID(0), Lettre, FontColor, RGB($FF,$FF,$FF))
                
            EndSelect
          Case #Cmb_Caracteres
            If EventType() = #CBN_SELCHANGE
              Lettre = GetGadgetItemText(#Cmb_Caracteres, GetGadgetState(#Cmb_Caracteres),0)
              CreeImage(FontID(0), Lettre, FontColor, RGB($FF,$FF,$FF))
              
            EndIf
        EndSelect
        
    EndSelect
  Until Quit
EndIf

End


; jaPBe Version=3.7.8.661
; Build=0
; Language=0x0000 Language Neutral
; FirstLine=0
; CursorPosition=11
; EnableXP
; ExecutableFormat=Windows
; DontSaveDeclare
; EOF
; IDE Options = PureBasic Visual Designer v4.0 Alpha 15 build 651
; VD_UsePB_Any = 0
; VD_IncludeBinaryBitmaps = 1
; VD_IncludeXPskins = 0
Dernière modification par Chris le mar. 28/août/2007 19:34, modifié 1 fois.
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

mais alors faut pas me demander à quoi ça peut servir
:lol: moi non plus :wink:

si pour apprendre a gerer le mode font() :wink:

@++
Dernière modification par venom le mar. 28/août/2007 19:48, modifié 1 fois.
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Et moi ca :
ps : clic mouse pour changer

Code : Tout sélectionner

; SPH(2006-2007)
; PB4 

InitSprite() 
InitMouse() 
InitKeyboard() 

;SetPriorityClass_ ( GetCurrentProcess_ (), #IDLE_PRIORITY_CLASS ) 

If ExamineDesktops() 
   dw.w=DesktopWidth(0) 
   dh.w=DesktopHeight(0) 
Else 
   dw.w=1024 
   dh.w=768 
EndIf 
dw2=dw/2
dh2=dh/2

dw1=dw/4
dw3=(dw/4)*3

OpenScreen(dw,dh,32,"") 

;;;;;;;;;;;
;;;;;;;;;;;
autre:
rr1.f=Random(5)+Random(1000)/1000
rr2.f=Random(5)+Random(1000)/1000
vv1.f=Random(5)+Random(1000)/1000
vv2.f=Random(5)+Random(1000)/1000
bb1.f=Random(5)+Random(1000)/1000
bb2.f=Random(5)+Random(1000)/1000
or1.f=rr1
or2.f=rr2
ov1.f=vv1
ov2.f=vv2
ob1.f=bb1
ob2.f=bb2
cr1.f=0.001+Random(1000)/10000
cr2.f=0.001+Random(1000)/10000
cv1.f=0.001+Random(1000)/10000
cv2.f=0.001+Random(1000)/10000
cb1.f=0.001+Random(1000)/10000
cb2.f=0.001+Random(1000)/10000

a1.f=0.001+Random(1000)/35000
a2.f=0.002+Random(1000)/35000
a3.f=0.003+Random(1000)/35000
a4.f=0.001+Random(1000)/35000
a5.f=0.002+Random(1000)/35000
a6.f=0.003+Random(1000)/35000

;;;;;;;;;;;
Repeat ; Until xmouse<>xmouse2 Or ymouse<>ymouse2 Or KeyboardPushed(#PB_Key_All) 

ExamineMouse() 
xmouse=MouseDeltaX()/55 ; /x : x= sensibilité
ymouse=MouseDeltaY()/55 ; /x : x= sensibilité
;*****
ClearScreen(0)
StartDrawing(ScreenOutput())


;;;;;;;;;;;

For i=0 To dh-1
r1=63+Cos(rr1)*63
r2=63+Sin(rr2)*63
v1=63+Cos(vv1)*63
v2=63+Cos(vv2)*63
b1=63+Sin(bb1)*63
b2=63+Sin(bb2)*63

rr=r1+v1+b1
vv=r2+v2+b2

;LineXY(0,i,dw,i,RGB(b1+b2,r1+r2,v1+v2))
;LineXY(dw2,i,dw,i,RGB(b1+b2,r1+r2,v1+v2))

LineXY(dw2-rr,i,dw2+vv,i,RGB(r1+r2,v1+v2,b1+b2))

rr1+a1
rr2+a2
vv1+a3
vv2+a4
bb1+a5
bb2+a6
Next
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  2



or1+cr1
rr1=or1
or2+cr2
rr2=or2
ov1+cv1
vv1=ov1
ov2+cv2
vv2=ob2
ob1+cb1
bb1=ob1
ob2+cb2
bb2=ob2
;;;;;;;;;;;
StopDrawing() 
;*****
FlipBuffers(1) 

If MouseButton(#PB_MouseButton_Left)<>0
Goto autre
EndIf

ExamineKeyboard() 
Until xmouse<>0 Or ymouse<>0 Or KeyboardPushed(#PB_Key_All) 
End 
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

SPH a écrit :Et moi ca :
ps : clic mouse pour changer
Tu peux pas t'acheter un topic?
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Chris a écrit :
SPH a écrit :Et moi ca :
ps : clic mouse pour changer
Tu peux pas t'acheter un topic?
Tu vois bien que non :wink:
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

En tout cas moi je dis bravo à tous les deux. 8)

Le code de CHRIS pourrait servir à un représentant en FONT.
Pour voir si tel ou tel police va bien avec le costume du client ou bien ses chaussures :D

Quand au code de SPH c'est psychedélique et tres joli.
ça me rappelle un peu les lampe des années 70 avec du liquide dedans.
Un screensaver des années 70 :D

J'ai lu que l'utile est l'ennemi de ce qui est beau.
Exemple, les WC sont bien la piece la plus utile d'une maison, non ! :lol:

Encore bravo
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

Kwai chang caine a écrit :Exemple, les WC sont bien la piece la plus utile d'une maison, non ! :lol:
Oui, On peux se laver les pieds, se rafraichir le visage, etancher sa soif et laver ses fringues !
Ca sert meme de saint siege pour surfer sur le net :wink:
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

Police : Wingdings
Taille : 200
Caractère : J
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

SPH j'adorrrrrrreeeeeeeeeeeee ton effet :P
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

Police : Wingdings
Taille : 200
Caractère : J
petite question :
a quoi peuvent servir ces polices avec des dessins pour lettres ?



@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

wolfjeremy a écrit :SPH j'adorrrrrrreeeeeeeeeeeee ton effet :P
M'ciiii

Les compliments à mon égart ont été si rare ces derniers temps :wink: :twisted:
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

SPH a écrit : M'ciiii

Les compliments à mon égart ont été si rare ces derniers temps :wink: :twisted:
Ha oui, mais moi je suis POUR la MOTIVATION des troupes :P
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

Message par SPH »

wolfjeremy a écrit :
SPH a écrit : M'ciiii

Les compliments à mon égart ont été si rare ces derniers temps :wink: :twisted:
Ha oui, mais moi je suis POUR la MOTIVATION des troupes :P
Deviens modo alors :P
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

J'aime pas sanctionner les gens lol

Je suis modo sur deux site et admin sur un autre, et je déteste faire le méchant qui sanctione lol
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

@Kcc

On peut quand même joindre l'utile à l'agréable. Et la beauté... Que c'est agréable!

Et puis il vaut mieux avoir un beau chiotte qu'une horreur :D

@SPH

Ce n'est pas le modo le souci pour féliciter quelqu'un : ce sont les gens qui regardent, copient, collent, exécutent et zappent sans mettre une appréciation. Si on peut perdre du temps pour downloader un source, on peut en perdre pour répondre!

Personnellement, l'avis de qui que ce soit, modo ou pas, ne changera pas ma perception face à un code qui s'exécute.

@venom

A t'éviter de dessiner un motif précis quand tu as besoin de quelques effets d'affichage symboliques. Tu as un peu de tout: du jeu de cartes aux options d'une fenêtre...
Dernière modification par Ollivier le mar. 28/août/2007 21:27, modifié 2 fois.
Répondre