Nach dem Umstieg von BlitzBasic auf PureBasic und langen Studieren der Hilfe sowie
etliche Fragen hier im Forum habe Ich mein erstes kleines Projekt fertiggestellt.
Wodurch Ich viel über die eigenheiten von Purbasic, seiner Pointer Structuren und Proceduren gelernt habe. An dieser Stelle ein Danke an das Forum hier für die Fachliche Hilfe.
Ich hoffe Ihr zerreist mich nicht gleich in der Luft aber dennoch möchte Ich euch das Modul hier Vorstellen, um Fehler ,Ideen oder Verbesserungen von euch aufgezeigt zu bekommen
Zum Modul selbst:
; Befehlsübersicht
;
; Im_SetSliderValue (Slider,Maximum,Page[,Minimum])
; Im_SetSliderPos (Slider,Position)
; Im_GetSliderPos (Slider)
;
; Im_NewImageGadget (X Position, Y Position,Breite,Höhe[,Image, Scrollbar,Rahmen])
; Im_SetFactorToGadget (Gadget,Scalierung[,flag]) Flag=#PB_Image_Raw/#PB_Image_Smooth
; Im_SetImageToGadget (Gadget,Image[,flags])
; 1=setzt Image Propotional 2=fit Image to Gadget 3=fit Gadget to Image 4=cut Image to Gadget
;
; Im_GraImagetoGadget (Gadget,Image,X Position,Y Position[,Breite,Höhe])
; Breite und Höhe sind Optional wenn diese gesetzt werden passt sich das Gadget der größe an
; Im_LinkImageToGadget (Gadget,Image)
; verlinkt ein Image zum Gadget, wird für Slider oder Zoom benötigt
; Im_HideImageGadget (Gadget,flags) 0/1=Sichtbar/versteckt
;
; Im_ResizeImageGadget (Gadget,X Position,Y Position ,Breite,Höhe)
; wenn die breite oder höhe <> #PB_Ignore ist Muß das Image wieder neu gesetzt werden
; mit Im_SetImageToGadget ausser es wurde Im_LinkImageToGadget benutzt
; Im_SetBackcolorGadget (Gadget,Color)
; Im_UpdateImageGadget (Gadget)
; Im_GetSliderImageGadget (Gadget,Slider) Slider=#SliderH\#SliderV
Code: Alles auswählen
EnableExplicit
UseJPEGImageDecoder()
;hier ein Image Laden (Minimum 1024*768)
Define Bild.s=OpenFileRequester("Bild Datei Laden Minimum 1024*768 größe !", "", "*.jpg",0)
Define OrginalImage=LoadImage(#PB_Any,Bild.s)
;Define OrginalImage=LoadImage(#PB_Any,"d:\Grafik\Bilder&Filme\unreal.bmp")
Dim sGadget(5)
If OpenWindow(0, 0, 0, 855, 600, "ImageGadget Modul v0.8 ", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
;Gadget 1
sGadget(0)= Im_NewImageGadget(#PB_Any,10,30, 200,200,1,0,#PB_Image_Raised)
TextGadget(0, 10, 0, 200, 30, "ImageGadget mit erhobenen Rahmen und SetImageToGadget=1 (Fit Proportional)", #PB_Text_Center)
;Im_ResizeImageGadget(sGadget(0),0,30,100,#PB_Ignore)
Im_SetImageToGadget(sGadget(0),OrginalImage,1)
; Gadget 2
sGadget(1)= Im_NewImageGadget(#PB_Any,220,30, 200,200,1,0,#PB_Image_Border)
TextGadget(1, 220, 0, 200, 30, "ImageGadget mit vertieften Rahmen und SetImageToGadget=2 (Fit to Gadget)", #PB_Text_Center)
Im_SetImageToGadget(sGadget(1),OrginalImage,2)
; Gadget 3
sGadget(2)= Im_NewImageGadget(#PB_Any,430,30, 202,202,1,0)
TextGadget(2, 430, 0, 200, 30, "ImageGadget ohne Rahmen und GrabImageToGadget ", #PB_Text_Center)
Im_GraImagetoGadget(sGadget(2),OrginalImage,700,0)
; Gadget 4
sGadget(3)= Im_NewImageGadget(#PB_Any,640,30, 80,80,1)
TextGadget(3, 640, 0, 200, 30, "ImageGadget ohne Rahmen und GrabImageToGadget mit Breite/höhe ", #PB_Text_Center)
Im_GraImagetoGadget(sGadget(3),OrginalImage,700,200,202,202)
; Gadget 5
sGadget(4)= Im_NewImageGadget(#PB_Any,10,270, 410,300,1,1)
TextGadget(4, 10, 250, 410, 30, "ImageGadget ohne Rahmen mit Slider und LinkImageToGadget ", #PB_Text_Center)
Im_LinkImageToGadget(sGadget(4),OrginalImage)
Im_ResizeImageGadget(sGadget(4),10,270,#PB_Ignore,#PB_Ignore)
; Gadget 6
Define scale.f=2.0
sGadget(5)= Im_NewImageGadget(#PB_Any,430,270, 410,300,1,1,#PB_Image_Raised)
TextGadget(5, 430, 250, 410, 30, "ImageGadget mit Rahmen sowie Slider und LinkImageToGadget mit Scale=2", #PB_Text_Center)
Im_LinkImageToGadget(sGadget(5),OrginalImage)
Im_SetScaleToGadget(sGadget(5),scale)
ButtonGadget(6, 430,574, 200, 20, "Zoom In")
ButtonGadget(7, 640,574, 200, 20, "Zoom Out")
EndIf
Repeat
Define Event=WaitWindowEvent()
If event = #PB_Event_CloseWindow
Define Quit=#True
EndIf
If event=#PB_Event_Gadget
Select EventGadget()
Case sGadget(0)
Debug "GadgetID="+sGadget(0)
Case sGadget(1)
Debug "GadgetID="+sGadget(1)
Case 6 ;button Zoom In
scale+0.1
If scale>40 : scale=40 : EndIf
Im_SetScaleToGadget(sGadget(5),scale)
Case 7 ;button Zoom Out
scale-0.1
If scale<0.1 : scale=0.1 : EndIf
Im_SetScaleToGadget(sGadget(5),scale)
EndSelect
EndIf
Until Quit=#True
Hier der Download zum ImageGadgetModul