then Streamline the codes to below(error on line 48)
Code: Select all
Structure imgInfo
  ImgFromRect.rect
  ImgDrawRect.rect
  DrawOrNot.l
EndStructure
Structure Buttons
  ImgUrl.s
  ImgID.l
  ImgMouseOn.imgInfo
  ImgMouseOut.imgInfo
  ImgMouseDown.imageInfo
EndStructure
Structure skinInfo
  GlobalSkinImageID.l
  CloseButton.Buttons
  MaxButton.Buttons
  NomalButton.Buttons
  MinButton.Buttons
EndStructure
Global skin.skinInfo
Procedure getRectFromStr(Str.s,*rc.rect)
  If CountString(str,",")=3
    *rc\left=Val(StringField(str,1,","))
    *rc\top=Val(StringField(str,2,","))
    *rc\right=Val(StringField(str,3,","))
    *rc\bottom=Val(StringField(str,4,","))
  EndIf
  ProcedureReturn #True
EndProcedure
Procedure getImgInfoFromStr(Str.s,*ii.imgInfo)
  If CountString(str,"#")=2
    getRectFromStr(StringField(str,1,"#"),*ii\ImgFromRect)
    getRectFromStr(StringField(str,2,"#"),*ii\ImgDrawRect)
    *ii\DrawOrNot=Val(StringField(str,3,"#"))
  EndIf
EndProcedure
Procedure getButtonsFromStr(str.s,*bs.Buttons,imgId.l=0)
  If CountString(str,"|")=3
    getImgInfoFromStr(StringField(str,1,"|"),*bs\ImgMouseOut)
    getImgInfoFromStr(StringField(str,2,"|"),*bs\ImgMouseOn)
    getImgInfoFromStr(StringField(str,3,"|"),*bs\ImgMouseDown)
    temp.s=StringField(str,4,"|")
    *bs\ImgUrl=temp
  EndIf
EndProcedure
Procedure getSkinInfo(*sk.SkinInfo)
  getButtonsFromStr("144,1,180,18#-38,1,37,17#1|144,19,180,36#-38,1,37,17#1|144,37,180,54#-38,1,37,17#1|",*sk\CloseButton,*sk\GlobalSkinImageID)
  getButtonsFromStr("144,1,180,18#-38,1,37,17#1|144,19,180,36#-38,1,37,17#1|144,37,180,54#-38,1,37,17#1|",*sk\NomalButton,*sk\GlobalSkinImageID)
  getButtonsFromStr("144,1,180,18#-38,1,37,17#1|144,19,180,36#-38,1,37,17#1|144,37,180,54#-38,1,37,17#1|",*sk\MaxButton,*sk\GlobalSkinImageID)
  getButtonsFromStr("144,1,180,18#-38,1,37,17#1|144,19,180,36#-38,1,37,17#1|144,37,180,54#-38,1,37,17#1|",*sk\MinButton,*sk\GlobalSkinImageID)
EndProcedure
getSkinInfo(skin)


