I have recreated the error with similar code as in the program. The parameter 'iBackColor' becomes 0, I don't know why. It works with all versions smaller than PB v6.02.b2.
Code: Select all
EnableExplicit
DeclareModule VectorIcon
EnableExplicit
#iStandardBackground = #PB_Image_Transparent
Declare.i VectorIcon(iSize.i, iBackColor.i = #iStandardBackground)
EndDeclareModule
Module VectorIcon
Procedure.i VectorIcon(iSize.i, iBackColor.i = #iStandardBackground)
Protected iImageNumber.i
Protected rScaleWidth.d = (iSize / 32.0)
Protected rScaleHeight.d = (iSize / 32.0)
Debug "iBackColor = " + iBackColor + " - #iStandardBackground = " + #iStandardBackground + " - #PB_Image_Transparent = " + #PB_Image_Transparent
iImageNumber = CreateImage(#PB_Any, iSize, iSize, 32, iBackColor)
If StartVectorDrawing(ImageVectorOutput(iImageNumber, #PB_Unit_Pixel))
ScaleCoordinates(rScaleWidth, rScaleHeight)
; CorelDraw CurveShape.Curve.
; SubPath 1 of 2.
MovePathCursor(18.9, 6.37)
AddPathLine(16.99, 2)
AddPathLine(15, 2)
AddPathLine(13.09, 6.38)
AddPathLine(11.24, 7.14)
AddPathLine(6.8, 5.4)
AddPathLine(5.39, 6.81)
AddPathLine(7.14, 11.25)
AddPathLine(6.37, 13.1)
AddPathLine(2, 15.01)
AddPathLine(2, 17)
AddPathLine(6.38, 18.91)
AddPathLine(7.14, 20.76)
AddPathLine(5.4, 25.2)
AddPathLine(6.81, 26.61)
AddPathLine(11.25, 24.86)
AddPathLine(13.1, 25.62)
AddPathLine(15.01, 30)
AddPathLine(17, 30)
AddPathLine(18.91, 25.62)
AddPathLine(20.76, 24.86)
AddPathLine(25.2, 26.6)
AddPathLine(26.61, 25.19)
AddPathLine(24.86, 20.75)
AddPathLine(25.62, 18.9)
AddPathLine(30, 16.99)
AddPathLine(30, 15)
AddPathLine(25.62, 13.09)
AddPathLine(24.86, 11.24)
AddPathLine(26.6, 6.8)
AddPathLine(25.19, 5.39)
AddPathLine(20.75, 7.14)
AddPathLine(18.9, 6.37)
; SubPath 2 of 2.
MovePathCursor(15.99, 11)
AddPathCurve(18.76, 11, 20.99, 13.23, 20.99, 15.99)
AddPathCurve(20.99, 18.76, 18.76, 20.99, 15.99, 20.99)
AddPathCurve(13.23, 20.99, 11, 18.76, 11, 15.99)
AddPathCurve(11, 13.23, 13.23, 11, 15.99, 11)
VectorSourceColor($FF0000FF)
FillPath(#PB_Path_Preserve)
ResetPath()
StopVectorDrawing()
EndIf
ProcedureReturn iImageNumber
EndProcedure
EndModule
Procedure Main()
Protected iWindow.i, iMenu.i, iToolbar.i, iStatusBar.i, iImage.i, iSize.i
iWindow = OpenWindow(#PB_Any, #PB_Ignore, #PB_Ignore, 400, 300, "Test")
iMenu = CreateImageMenu(#PB_Any, WindowID(iWindow))
MenuTitle("File")
MenuItem(1, "#iStandardBackground", ImageID(VectorIcon::VectorIcon(16, VectorIcon::#iStandardBackground))) ; ?????
MenuItem(2, "#PB_Image_Transparent", ImageID(VectorIcon::VectorIcon(16, #PB_Image_Transparent))) ; ?????
MenuItem(3, "Default", ImageID(VectorIcon::VectorIcon(16))) ; Use default optional parameter. ; ?????
iToolbar = CreateToolBar(#PB_Any, WindowID(iWindow), #PB_ToolBar_Small)
iImage = VectorIcon::VectorIcon(16) ; Use default optional parameter. ; ?????
ToolBarImageButton(1, ImageID(iImage), #PB_ToolBar_Normal)
FreeImage(iImage)
Repeat : Until (WaitWindowEvent() = #PB_Event_CloseWindow)
EndProcedure
Main()