Allerdings fällt mir eben auf, dass ich es unter PB4 gemacht habe...
Also Aufgabe verfehlt

Code: Alles auswählen
CatchImage(1, ?Links)
CatchImage(2, ?Mitte)
CatchImage(3, ?Rechts)
If OpenWindow(0, 0, 0, 322, 205, "Whatever", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
StringGadget(0, 8, 10, 306, 20, "")
ImageGadget(1, 8, 40, 280, 21, 0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case 0
If EventType() = #PB_EventType_Change
a = Val(GetGadgetText(0))
If a > 0
If CreateImage(0, ImageWidth(1) + ImageWidth(3) + a * ImageWidth(2), 21)
ResizeGadget(1, #PB_Ignore, #PB_Ignore, ImageWidth(1) + ImageWidth(3) + a * ImageWidth(2), 21)
StartDrawing(ImageOutput(0))
DrawImage(ImageID(1), 0, 0)
b = ImageWidth(1)
For i = 0 To a - 1
DrawImage(ImageID(2), b, 0)
b + ImageWidth(2)
Next i
DrawImage(ImageID(3), b, 0)
StopDrawing()
SetGadgetState(1, ImageID(0))
EndIf
EndIf
EndIf
Case 1
If EventType() = #PB_EventType_LeftClick
lOffset = WindowMouseX(0) - GadgetX(1)
tOffset = WindowMouseY(0) - GadgetY(1)
StartMoving = #True
EndIf
EndSelect
Case #WM_MOUSEMOVE
If StartMoving
ResizeGadget(1, WindowMouseX(0) - lOffset, WindowMouseY(0) - tOffset, #PB_Ignore, #PB_Ignore)
EndIf
Case #WM_LBUTTONUP
StartMoving = #False
EndSelect
ForEver
EndIf
End
DataSection
Links:
Data.l $01324D42, $00000000, $00360000, $00280000, $00030000, $00150000, $00010000, $00000018
Data.l $00FC0000, $0EC40000, $0EC40000, $00000000, $00000000, $E2B80000, $7A855BD7, $00748149
Data.l $77560000, $747B5A70, $00A8B186, $6B4A0000, $BDC4A364, $00EFF8CD, $4F3A0000, $DCDFCA4C
Data.l $00F0F3D4, $4E390000, $F7FAE54B, $00F5F8D9, $4F240000, $F7FFD546, $00F0F3D6, $50250000
Data.l $F7FFD547, $00F0F3D6, $50210000, $F7FFD147, $00F0F6D4, $51220000, $F8FFD248, $00F1F7D5
Data.l $53210000, $F7FFD147, $00F1F7D3, $54220000, $F8FFD248, $00F2F8D4, $53290000, $F8FFD948
Data.l $00F2F8DC, $53290000, $F9FFDA48, $00F2F8DC, $53310000, $F5FFDE48, $00F8FDE9, $4F2D0000
Data.l $F7FFE044, $00F5FAE6, $522E0000, $FBFFE346, $00F5FDE6, $522E0000, $FAFFE246, $00F7FFE8
Data.l $5B270000, $EEFFCB4A, $00FCFFE1, $622E0000, $CADBA751, $00FCFFE1, $8C4A0000, $8EA15F79
Data.l $00C3D19C, $DD9B0000, $6A7D3BCA, $00606E39, $00000000
Mitte:
Data.l $01324D42, $00000000, $00360000, $00280000, $00040000, $00150000, $00010000, $00000018
Data.l $00FC0000, $0EC40000, $0EC40000, $00000000, $00000000, $5B0F0000, $3B5B0F3B, $0F3B5B0F
Data.l $DDB43B5B, $D8DDB4D8, $B4D8DDB4, $E6BDD8DD, $E1E6BDE1, $BDE1E6BD, $EADEE1E6, $FCEADEFC
Data.l $DEFCEADE, $ECE0FCEA, $FEECE0FE, $E0FEECE0, $F4E7FEEC, $F6F4E7F6, $E7F6F4E7, $F4E7F6F4
Data.l $F6F4E7F6, $E7F6F4E7, $F5E2F6F4, $F8F5E2F8, $E2F8F5E2, $F6E3F8F5, $F9F6E3F9, $E3F9F6E3
Data.l $F7DEF9F6, $FBF7DEFB, $DEFBF7DE, $F8DFFBF7, $FCF8DFFC, $DFFCF8DF, $F8E5FCF8, $FDF8E5FD
Data.l $E5FDF8E5, $F8E5FDF8, $FDF8E5FD, $E5FDF8E5, $F8ECFDF8, $FAF8ECFA, $ECFAF8EC, $FBEFFAF8
Data.l $FDFBEFFD, $EFFDFBEF, $FAEDFDFB, $F8FAEDF8, $EDF8FAED, $FFF3F8FA, $FEFFF3FE, $F3FEFFF3
Data.l $FFE7FEFF, $F7FFE7F7, $E7F7FFE7, $FFECF7FF, $FCFFECFC, $ECFCFFEC, $FFE0FCFF, $F8FFE0F8
Data.l $E0F8FFE0, $542DF8FF, $45542D45, $2D45542D, $00004554
Rechts:
Data.l $01324D42, $00000000, $00360000, $00280000, $00030000, $00150000, $00010000, $00000018
Data.l $00FC0000, $0EC40000, $0EC40000, $00000000, $00000000, $694B0000, $7B806264, $00ECEFD2
Data.l $AD810000, $768357A0, $00778854, $EEC20000, $AEBB8FE1, $00536430, $EEB10000, $CFE9ACD4
Data.l $00456319, $F4B70000, $EAFFC7DA, $0036540A, $F6CA0000, $E0E6BAF0, $00415C17, $F6CA0000
Data.l $E1E7BBF0, $00425D18, $F3D00000, $E6E3C0F6, $00465A1D, $F4D10000, $E7E4C1F7, $00475B1E
Data.l $F4D40000, $E9E4C4F9, $004A5920, $F5D50000, $EAE5C5FA, $004B5A21, $FAD10000, $E4E9C0F5
Data.l $00485E1E, $FAD10000, $E5EAC1F5, $00485E1E, $FFD10000, $DEEFB8F7, $0037590D, $EFB80000
Data.l $E8F9C2DE, $00416317, $FFD00000, $F0FFCDF3, $0033570D, $FFCD0000, $EBFFC8F0, $002E5208
Data.l $FBD30000, $EDF8D0F0, $0050672F, $FFDF0000, $C7D2AAFC, $004A6129, $DEC70000, $8C8A73E0
Data.l $0068724D, $5C450000, $7A78615E, $00D1DBB6, $00000000
EndDataSection
Code: Alles auswählen
#links=0
#mitte=1
#rechts=2
#result=3
LoadImage(#links, "C:\test\5x40_l.bmp")
LoadImage(#mitte, "C:\test\5x40_m.bmp")
LoadImage(#rechts,"C:\test\5x40_r.bmp")
w=ImageWidth()
h=ImageHeight()
While width<3 Or width>200
width=Val(InputRequester("breite eingeben", "bitte geben sie die breite des buttons ein", "3"))
If width=0
End
EndIf
Wend
If CreateImage(#result, w*width, h)=0
MessageRequester("fehler", "kann image nicht erstellen.")
End
EndIf
UseImage(#result)
StartDrawing( ImageOutput() )
UseImage(#links)
DrawImage( ImageID(), 0,0)
UseImage(#mitte)
For i=1 To width-2
DrawImage(ImageID(), i*w,0)
Next
UseImage(#rechts)
DrawImage( ImageID(), (width-1)*w,0)
StopDrawing()
file.s=SaveFileRequester("save result...", "", "*.bmp|*.bmp",0)
If LCase(GetExtensionPart(file))<>"bmp"
file+".bmp"
EndIf
If file
If SaveImage(#result, file)
RunProgram(file)
EndIf
EndIf
Code: Alles auswählen
[...]
Case 1
If EventType() = #PB_EventType_LeftClick
lOffset = WindowMouseX(0) - GadgetX(1)
tOffset = WindowMouseY(0) - GadgetY(1)
StartMoving = #True
EndIf
EndSelect
Case #WM_MOUSEMOVE
If StartMoving
ResizeGadget(1, WindowMouseX(0) - lOffset, WindowMouseY(0) - tOffset, #PB_Ignore, #PB_Ignore)
EndIf
[...]