Code du potar Slider, [Resolu] OpenWindow et molette

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Code du potar Slider, [Resolu] OpenWindow et molette

Message par Ar-S »

Oui je préfère cette version ;)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Code du potar Slider, [Resolu] OpenWindow et molette

Message par graph100 »

C'est sympa là ;)

Mais par contre, ca commence à faire bcp de code pour chaque modif ^^
Tu peux faire un code dans le 1er post, et le mettre à jour à chaque modif, ca seras moins dur à lire ! mais fait toujours un post pour dire qu'il y a une maj
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Code du potar Slider, [Resolu] OpenWindow et molette

Message par GallyHC »

graph100> c'est pas faut, je mettre maintenant a jour dans le poste principal et indiquere la mise a jour.

je me demande si une version horizontal serais bien ou pas. et deux eme question y a t'il une facon simple de faire une rotation a une image a 90°?

merci,
gallyhc
Dernière modification par GallyHC le sam. 03/mars/2012 19:53, modifié 1 fois.
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Code du potar Slider, [Resolu] OpenWindow et molette

Message par graph100 »

J'ai testé de changer la valeur min du slider et il y a une légère erreur avec la molette, une mauvaise parenthèse.
Suit la correction :

Code : Tout sélectionner

Procedure.l DMXGadget_Event(event.l, evenp.l, eveng.l)
;
  Protected i.l
  Protected lMosY.l

  If event = #PB_Event_Gadget
    For i=1 To numDMXSlider
      If eveng = DMXSlider(i)\lCanva_01
        If DMXSlider(i)\disable = 0 Or DMXSlider(i)\actived = #False
          If evenp = #PB_EventType_MouseWheel
            DMXSlider(i)\value + (GetGadgetAttribute(DMXSlider(i)\lCanva_01, #PB_Canvas_WheelDelta) * DMXSlider(i)\WheelZoom) * DMXSlider(i)\pas
            If DMXSlider(i)\value < DMXSlider(i)\min
              DMXSlider(i)\value = DMXSlider(i)\min
            ElseIf DMXSlider(i)\value > DMXSlider(i)\max
              DMXSlider(i)\value = DMXSlider(i)\max
            EndIf
            
            DMXSlider(i)\state = (DMXSlider(i)\min - DMXSlider(i)\value + (DMXSlider(i)\max - DMXSlider(i)\min)) / DMXSlider(i)\pas
            
            DMXSliderGadget_Draw(DMXSlider(i)\gadget)
            ProcedureReturn DMXSlider(i)\gadget
          EndIf
          If evenp = #PB_EventType_LeftButtonDown Or (evenp = #PB_EventType_MouseMove And GetGadgetAttribute(DMXSlider(i)\lCanva_01, #PB_Canvas_Buttons) & #PB_Canvas_LeftButton)
            lMosY = GetGadgetAttribute(DMXSlider(i)\lCanva_01, #PB_Canvas_MouseY) - (DMXSlider(i)\hb / 2)
            If lMosY < 0
              lMosY = 0
            EndIf
            
            If lMosY > DMXSlider(i)\h - DMXSlider(i)\hb
            	lMosY = DMXSlider(i)\h - DMXSlider(i)\hb
            EndIf
            
            DMXSlider(i)\value = DMXSlider(i)\min + (DMXSlider(i)\max - DMXSlider(i)\min) - (lMosY * DMXSlider(i)\pas)
            
            DMXSlider(i)\state = lMosY
            DMXSliderGadget_Draw(DMXSlider(i)\gadget)
            ProcedureReturn DMXSlider(i)\gadget
          EndIf
        EndIf
      EndIf
    Next i
  EndIf
  ProcedureReturn -1

EndProcedure
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Code du potar Slider, [Resolu] OpenWindow et molette

Message par GallyHC »

Merci j'ai corriger je fais encore quelque modifs et je mettrais la mise a jour :)
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Code du potar Slider, [Resolu] OpenWindow et molette

Message par GallyHC »

Bonjour tous,

Je me demander si il y a une methode simple pour faire une rotation d'une image a 90° pour faire un slider verttical aussi je ne sais pas si perso et dans mon soft de controle j'en aurais besoin mais cela pourrait etre utile un jour :)

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Code du potar Slider, [Resolu] OpenWindow et molette

Message par Ar-S »

Voilà une procédure d'Ollivier.

Code : Tout sélectionner

Procedure.I RotateImage2(Image.I) 
	Protected Result.I 
	Protected SourceLarg.I 
	Protected SourceHaut.I 
	Protected DestLarg.I 
	Protected DestHaut.I 
	SourceLarg = ImageWidth(Image) 
	SourceHaut = ImageHeight(Image) 
	DestLarg = SourceHaut 
	DestHaut = SourceLarg 
	Result = CreateImage(-1, DestLarg, DestHaut) 
	For Y = 0 To (SourceHaut - 1) 
    For X = 0 To (SourceLarg - 1) 
      StartDrawing(ImageOutput(Image) ) 
        C = Point(X, Y) 
      StopDrawing()     
      StartDrawing(ImageOutput(Result) ) 
        Plot(DestLarg - Y - 1, X, C) 
      StopDrawing()      
    Next X 
  Next Y 
	ProcedureReturn Result 
EndProcedure 
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Code du potar Slider, [Resolu] OpenWindow et molette

Message par Ar-S »

Avec un exemple sans procédure.

Code : Tout sélectionner

UseJPEGImageDecoder()
UseJPEGImageEncoder()

Enumeration
  #S
  #D
EndEnumeration

Img = LoadImage(#S,  "F:\tonimage.jpg")
  
SourceLarg = ImageWidth(#S) 
SourceHaut = ImageHeight(#S) 
DestLarg = SourceHaut 
DestHaut = SourceLarg 

CreateImage(#D, DestLarg, DestHaut) 
For Y = 0 To (SourceHaut - 1) 
  For X = 0 To (SourceLarg - 1) 
    StartDrawing(ImageOutput(#S) ) 
      C = Point(X, Y) 
    StopDrawing()     
    StartDrawing(ImageOutput(#D) ) 
      Plot(DestLarg - Y - 1, X, C) 
    StopDrawing()      
  Next X 
Next Y 

	WW = ImageWidth(#D) 
	HH = ImageHeight(#D) 
	
  OpenWindow(0, 0, 0, WW, HH, "", $80000001) 
	ImageGadget(0, 0, 0, WW, HH, ImageID(#D)) 
	
  Repeat 
  Until WaitWindowEvent() = #PB_Event_Gadget 
	CloseWindow(0) 
	FreeImage(#S)  : FreeImage(#D) 

C'est très lent ! Lance le programme avec le debug et attends (plusieurs secondes pour une petite image !)
ton image s'affichera. il existe probablement des méthodes plus performantes mais j'ai pas trop le temps de chercher.
Dernière modification par Ar-S le lun. 05/mars/2012 16:01, modifié 2 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Code du potar Slider, [Resolu] OpenWindow et molette

Message par GallyHC »

Merci Ar-s> c'est deja plus ou moin ce que je pense mais je cherche une solution quand je disait simple j'aurais du dire "rapide" mais c'est deja une piste je vais refechier a cela. sinon ce serais de faire tout les calcul X et Y et inverce mais je ne sais pas si c une bonne ou mauvaise solution mais c'est ce que j'aurais fait en VB6 lol

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Code du potar Slider, [Resolu] OpenWindow et molette

Message par Ar-S »

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Code du potar Slider, [Resolu] OpenWindow et molette

Message par GallyHC »

Comment te dire heuuuuuu, merci :)
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: Code du potar Slider, [Resolu] OpenWindow et molette

Message par Le Soldat Inconnu »

Tss pourquoi allez chez les anglais :mrgreen:

http://www.purebasic.fr/french/viewtopic.php?f=8&t=1237
Tu trouveras dans ma lib :
- Rotation d'image à 90, 180, 270°
- Rotation d'image avec l'angle que tu veux (et avec antialiasing)
- Symétrie d'image

Restons français ! :mrgreen:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Code du potar Slider, [Resolu] OpenWindow et molette

Message par graph100 »

parfaitement d'accord LSI ;)

@GallyHC : dans mon include sur les gadgets, il y a avec l'imageEx Gadget une routine de rotation. Je l'ai modifiée pour une utilisation facile avec des images, regarde si tu veux ^^ (le code n'étais pas de moi, peut etre un mélange de LSI et d'un type du fofo anglais)
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Avatar de l’utilisateur
GallyHC
Messages : 1708
Inscription : lun. 17/déc./2007 12:44

Re: Code du potar Slider, [Resolu] OpenWindow et molette

Message par GallyHC »

Bonjour,

J'ai mis a jour avec une selection multiple des potars voir le premier post :)

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Code du potar Slider, [Resolu] OpenWindow et molette

Message par graph100 »

franchement tu me bluffe là ;) c'est génial comme fonction !
idée pour aller plus loin :

-> tu permets au programmateur de faire des groupes de potar différents : on peut faire plusieurs groupe de déplacement différent (et permet aussi de modifier la couleur du rectangle de sélection ;)

-> ajoute la touche alt par exemple pour faire des groupes à déplacement identique (ou bien à déplacement identique en % -> ils arrivent tous en haut en même temps qq soit leur position de départ). Je veux dire : lorsque tu ajoutes un potar au groupe avec alt : sa position n'est pas changé, mais lorsque tu bouges un potar du groupe, tous bougent avec un déplacement identique ;)

je pense que bien sur, les groupes ne devraient pas méler des Ctrl et des alt : ca devrait réinit le groupe.

gg !
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Répondre