Page 1 sur 2
demande d'Aide pour faire un mini paint editor
Publié : mer. 03/mars/2004 9:17
par patmaba
Bonjour, je suis nouveau avec PB.
J'aimerai essayer comme premier exercice, de faire un paint editor comme celui de windows mais avec moins de fonctionnalité.
Mais déjà, je suis confronté à 2 problèmes. Le premier problème est comment définir un toolbar vertical déplaçable. Je n'ai pas trouvé d'exemple dans le répertoire source exemple de PB ni dans l'aide.
Le second problème est l'image comment lorsque l'image est plus grand que la fenêtre de base que les scrollbar apparaissent ou encore que lorsque la fenêtre est redimensionné d'obtenir les srollbar verticales et horizontales
Se serait bien gentil si qq peut me conseiller. Je trouve que PB est un super outil et j'ai hâte de le maîtriser.
Patmaba
merci
Publié : mer. 03/mars/2004 9:28
par Le Soldat Inconnu
Il faut utiliser la bibliotheque de Danilo, elle permet de faire des barres d'outils plus complexe.
http://pureproject.reelmedia.org/module ... eA&show=10
ça s'apelle PureTool
Sinon ,en bonus, pour des tranformations sur les images (contraste, etc...), j'ai posté du code sur le forum et j'ai sur mon site un sélecteur de couleur amélioré avec un exemple d'utilisation en PB.
A+
Publié : mer. 03/mars/2004 9:47
par comtois
un exemple avec une grande image dans la fenêtre
Code : Tout sélectionner
;Forum anglais
;Auteur : Je ne sais plus
Procedure GetMouseX(gadget)
GetCursorPos_(mouse.POINT)
MapWindowPoints_(0,GadgetID(gadget),mouse,1)
ProcedureReturn mouse\x
EndProcedure
Procedure GetMouseY(gadget)
GetCursorPos_(mouse.POINT)
MapWindowPoints_(0,GadgetID(gadget),mouse,1)
ProcedureReturn mouse\Y
EndProcedure
Procedure GetDesktopWidth()
ProcedureReturn GetSystemMetrics_(#sm_cxscreen)
EndProcedure
Procedure GetDesktopHeight()
ProcedureReturn GetSystemMetrics_(#sm_cyscreen)
EndProcedure
Procedure ResizeCallback(hWnd,Message,wParam,lParam)
Resultat = #PB_ProcessPureBasicEvents
If Message = #wm_size
Largeur = lParam & $FFFF
Hauteur = (lParam >> 16 ) & $FFFF
MoveWindow_(GadgetID(1),0,0,Largeur,Hauteur,1)
EndIf
ProcedureReturn Resultat
EndProcedure
OpenWindow( 0,0,0,300,300,#PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_ScreenCentered,"PB_Scrollpaint")
CreateGadgetList(WindowID())
SetWindowCallback(@ResizeCallback())
AreaX = GetDesktopWidth() : AreaY = GetDesktopHeight()
hImg = CreateImage(0,AreaX,AreaY)
StartDrawing(ImageOutput())
For x = 0 To AreaX Step 40
For Y = 0 To AreaY Step 40
Box(x,Y,20,20,RGB(0,0,255)) : Box(x+20,Y,20,20,RGB(0,0,180))
Box(x,Y+20,20,20,RGB(0,0,128)) : Box(x+20,Y+20,20,20,RGB(0,0,80))
Next Y
Next x
StopDrawing()
ScrollAreaGadget(1,0,0,WindowWidth(),WindowHeight(),AreaX,AreaY,10,#PB_ScrollArea_BorderLess)
ImageGadget(2,0,0,AreaX,AreaY,hImg)
CloseGadgetList()
pendown=0
Repeat
Select WaitWindowEvent():
Case #PB_EventCloseWindow: End
Case #WM_LBUTTONDOWN
mx=GetMouseX(2) : my=GetMouseY(2)
mxx=(mx/20)*20 : myy=(my/20)*20
UseImage(0)
StartDrawing(ImageOutput())
Box(mxx,myy,20,20,RGB(255,180,0))
StopDrawing()
SetGadgetState(2, UseImage(0))
pendown=1
Case #WM_LBUTTONUP
pendown=0
Case #WM_MOUSEMOVE
If pendown=1
mx=GetMouseX(2) : my=GetMouseY(2)
mxx=(mx/20)*20 : myy=(my/20)*20
UseImage(0)
StartDrawing(ImageOutput())
Box(mxx,myy,20,20,RGB(255,180,0))
StopDrawing()
SetGadgetState(2, UseImage(0))
EndIf
Case #PB_EventGadget
Select EventGadgetID()
Case 3
End
EndSelect
EndSelect
ForEver
End
Publié : mer. 03/mars/2004 11:35
par patmaba
merci, vous êtes géniaux.
Publié : mer. 03/mars/2004 11:40
par patmaba
quelle est l'url de ton site Le Soldat Inconnu ?
Publié : mer. 03/mars/2004 13:41
par Le Soldat Inconnu
le WWW dans les boutons en bas des messages. voir rubriques "PureBasic"
Publié : mer. 03/mars/2004 15:20
par patmaba
J'ai essayer d'installer la bibliotheque de Danilo.
J'ai suivi les étapes de l'installation du readme.
Maintenant, le compilateur affiche le message compilateur pas près ???
Que faire ?
Publié : mer. 03/mars/2004 16:08
par Anonyme2
Ferme l'éditeur de PureBasic et ouvre le à nouveau.
Publié : mer. 03/mars/2004 18:31
par Patrick88
merci comtois.
patrick
Publié : mer. 03/mars/2004 18:36
par Anonyme2
Je ne suis pas sur, mais j'ai un souvenir d'un code qui faisait un début de Paint, code de Danilo.
Peut-être avec ses librairies, mais pas moyen de me souvenir.
Publié : mer. 03/mars/2004 18:45
par Anonyme2
Ca y est, si tu as installé la librairie de Danilo TOOLBAR Professional, va dans le répertoire Example\TOOLBAR Professional\PurePaint et là il a fait une grande partie de l'éditeur de paint.
Publié : mer. 03/mars/2004 22:38
par patmaba
J'ai fermé l'editeur PB et réouvert. çà marche tjs pas ????
Publié : jeu. 04/mars/2004 6:29
par Anonyme2
Tu as la démo ?
Publié : jeu. 04/mars/2004 8:30
par patmaba
jetravaille sur nt4
Publié : jeu. 04/mars/2004 12:08
par patmaba
de plus ma version est la 3.80