Jump to content

Tengo un problema :S


Arsilex

Recommended Posts

Bueno tengo un problema con mi panel con un grild lo que pasa es que se crea pero no baja :S

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 :S

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...