Arsilex Posted January 30, 2013 Share Posted January 30, 2013 Bueno tengo un problema con mi panel con un grild lo que pasa es que se crea pero no baja aqui dejo el codigo for id, dxGUIElement in ipairs (getElementsByType("dxScrollBar")) do local x = 0 local y = 0 if getElementData(dxGUIElement,"parent") then x = getElementData(getElementParent(dxGUIElement),"x") y = getElementData(getElementParent(dxGUIElement),"y") end if not getElementData(dxGUIElement,"horizontal") then dxDrawRectangle(getElementData(dxGUIElement,"x")+x+5-1, getElementData(dxGUIElement,"y")+y,getElementData(dxGUIElement,"width"), getElementData(dxGUIElement,"height")+2,tocolor(50,50,50,130)) dxDrawRectangle(getElementData(dxGUIElement,"x")+x+5, getElementData(dxGUIElement,"y")+y + ((getElementData(dxGUIElement,"height")/2)*getElementData(dxGUIElement,"scroll")),getElementData(dxGUIElement,"width"), getElementData(dxGUIElement,"height")/2,tocolor(155,155,155,200)) else dxDrawRectangle(getElementData(dxGUIElement,"x")+x+5, getElementData(dxGUIElement,"y")+y,getElementData(dxGUIElement,"width"), getElementData(dxGUIElement,"height"),tocolor(50,50,50,130)) dxDrawRectangle(getElementData(dxGUIElement,"x")+x+5+ ((getElementData(dxGUIElement,"width")/2)*getElementData(dxGUIElement,"scroll")), getElementData(dxGUIElement,"y")+y ,getElementData(dxGUIElement,"width")/2, getElementData(dxGUIElement,"height"),tocolor(155,155,155,200)) end end for id, dxGUIElement in ipairs (getElementsByType("dxGridList")) do local x = 0 local y = 0 if getElementData(dxGUIElement,"parent") then x = getElementData(getElementParent(dxGUIElement),"x") y = getElementData(getElementParent(dxGUIElement),"y") end dxDrawImage( getElementData(dxGUIElement,"x")+x, getElementData(dxGUIElement,"y")+y, getElementData(dxGUIElement,"width"), getElementData(dxGUIElement,"height"), "images/grid.png") local no = #getElementChildren( dxGUIElement ) for id, item in ipairs (getElementChildren( dxGUIElement )) do local delta = 0 if getElementData(dxGUIElement,"scrollbar") then local delta = getElementData(getElementData(dxGUIElement,"scrollbar"),"scroll")*no*1.5*15 end delta = delta/2 if (((id)*1.5*15)-delta) <= (getElementData(dxGUIElement,"height")+22.5) and (((id)*1.5*15)-delta) >= 0 then setElementData(item,"shown",true) if getElementData(item,"state") == "hovered" then dxDrawRectangle(getElementData(dxGUIElement,"x")+x,3+ getElementData(dxGUIElement,"y")+y + math.max(((id-1)*1.5*15)-delta,0),getElementData(dxGUIElement,"width")-3,getItemShowingHeight(item),tocolor(255,255,255,100)) end if getElementData(item,"state") == "clicked" then dxDrawRectangle(getElementData(dxGUIElement,"x")+x,3+ getElementData(dxGUIElement,"y")+y + math.max(((id-1)*1.5*15)-delta,0),getElementData(dxGUIElement,"width")-3,getItemShowingHeight(item),tocolor(0,0,0,100)) for id, el in ipairs(getElementChildren(getElementParent(item))) do setElementData(el,"clicked",nil) end setElementData(item,"clicked",true) end if getElementData(item,"clicked") then dxDrawRectangle(getElementData(dxGUIElement,"x")+x,3+ getElementData(dxGUIElement,"y")+y + math.max(((id-1)*1.5*15)-delta,0),getElementData(dxGUIElement,"width")-3,getItemShowingHeight(item),tocolor(128,255,0,100)) end if getElementData(item,"colored") then dxDrawColoredText(getElementData(item,"text"),getElementData(dxGUIElement,"x")+x+3,3+ getElementData(dxGUIElement,"y")+y + math.max(((id-1)*1.5*15)-delta,0),getElementData(dxGUIElement,"width")+getElementData(dxGUIElement,"x")+x-3,getElementData(dxGUIElement,"y")+y + math.min(getElementData(dxGUIElement,"height"),((id)*1.5*15)-delta)-3,tocolor(255,255,255,255),1.3,"default","left", getItemAlign(math.max(((id-1)*1.5*15)-delta,0)) ,true) else dxDrawText(getElementData(item,"text"),getElementData(dxGUIElement,"x")+x+3,3+ getElementData(dxGUIElement,"y")+y + math.max(((id-1)*1.5*15)-delta,0),getElementData(dxGUIElement,"width")+getElementData(dxGUIElement,"x")+x-3,getElementData(dxGUIElement,"y")+y + math.min(getElementData(dxGUIElement,"height"),((id)*1.5*15)-delta)-3,tocolor(255,255,255,255),1.3,"default","left", getItemAlign(math.max(((id-1)*1.5*15)-delta,0)) ,true) end setElementData(item,"width",getElementData(dxGUIElement,"width")) setElementData(item,"height",15*1.5) setElementData(item,"x",getElementData(dxGUIElement,"x")+x) setElementData(item,"y",2+ getElementData(dxGUIElement,"y")+y + math.max(((id-1)*1.5*15)-delta,0)) else setElementData(item,"shown",false) end end esta es la funcion function dxCreateGridList (x,y,width,height,relative,parent) if x and y and height and width then if relative then if parent then x = x*getElementData(parent,"x") y = y*getElementData(parent,"y") else x = x * sx y = y* sy end end local element = createElement("dxGridList") setElementParent(element,parent or dxRootElement) setElementData(element,"x",x) setElementData(element,"y",y) setElementData(element,"width",width) setElementData(element,"height",height) setElementData(element,"filepath",filepath) setElementData(element,"parent",parent) setElementData(element,"state","normal") return element else outputDebugString("ERROR: expected arguments are missing (dxCreateGridList)") end end function dxCreateScrollBar (x,y,width,height,horizontal, relative,parent) if x and y and height and width then if relative then if parent then x = x*getElementData(parent,"x") y = y*getElementData(parent,"y") else x = x * sx y = y* sy end end local element = createElement("dxScrollBar") setElementParent(element,parent or dxRootElement) setElementData(element,"x",x) setElementData(element,"y",y) setElementData(element,"scroll",0) setElementData(element,"horizontal",horizontal) setElementData(element,"width",width) setElementData(element,"height",height) setElementData(element,"filepath",filepath) setElementData(element,"parent",parent) setElementData(element,"state","normal") addEventHandler("onClientDXClick",element, function() local cx,cy = getCursorPosition() cx = cx * sx cy = cy * sy local x = 0 local y = 0 if getElementData(source,"parent") then x = getElementData(getElementParent(source),"x") y = getElementData(getElementParent(source),"y") end if getElementData(source,"horizontal") then cx = cx - getElementData(source,"x") - x cx = cx - (getElementData(source,"scroll")*getElementData(source,"width")/2) if cx >= 0 and cx <= ((getElementData(source,"width")/2)) then setElementData(source,"attachOffset",cx) end else cy = cy - getElementData(source,"y") - y cy = cy - (getElementData(source,"scroll")*getElementData(source,"height")/2) if cy >= 0 and cy <= ((getElementData(source,"height")/2)) then setElementData(source,"attachOffset",cy) end end end ) return element else outputDebugString("ERROR: expected arguments are missing (dxCreateButton)") end end se crea la barra de bajar pero no baja los items que hay en el grild Link to comment
Recommended Posts