Jump to content

x[dxedit]x small problem


Master_MTA

Recommended Posts

hello all i have gonna to create my own dxlib so i am trying to do something if it wasn't possible you should take  look of my code first   it's work fine without wrong

but i wanna do something better 

function gsplit(text, pattern, plain)
  local splitStart, length = 1, #text
  return function ()
    if splitStart then
      local sepStart, sepEnd = string.find(text, pattern, splitStart, plain)
      local ret
      if not sepStart then
        ret = string.sub(text, splitStart)
        splitStart = nil
      elseif sepEnd < sepStart then
        -- Empty separator!
        ret = string.sub(text, splitStart, sepStart)
        if sepStart < length then
          splitStart = sepStart + 1
        else
          splitStart = nil
        end
      else
        ret = sepStart > splitStart and string.sub(text, splitStart, sepStart - 1) or ''
        splitStart = sepEnd + 1
      end
      return ret
    end
  end
end

 function split(text, pattern, plain)
  local ret = {}
  for match in gsplit(text, pattern, plain) do
    table.insert(ret, match)
  end
  return ret
end

addEventHandler('onClientCharacter',root,function(key)
	for k,v in ipairs(getElementsByType('dxEditBox',resourceRoot))do
		if getElementData(v,'line')==true and dxGetVisible(v)==true then
			local data=getElementData(v,'info')
			local text=data.text..key
				setElementData(v,'info',{
				text=text,
					id=data.id,
					x=data.x,
					y=data.y,
					x1=data.x1,
					y1=data.y1,
					color=data.color,
					postgui=data.postgui,
					textcolor=data.textcolor,
					dxWindow=data.dxWindow
				})
			break
		end
	end
end)
addEventHandler('onClientKey',root,function(button,press)
if press then
if button=='backspace' then
for k,v in ipairs(getElementsByType('dxEditBox',resourceRoot))do
if dxGetVisible(v)==true and getElementData(v,'line') and getElementData(v,'line')==true then
local data=getElementData(v,'info')
text=''
for k,v in ipairs(split(data.text,''))do
if k==#split(data.text,'') then break end
text=text..v
end
				setElementData(v,'info',{
				text=text,
					id=data.id,
					x=data.x,
					y=data.y,
					x1=data.x1,
					y1=data.y1,
					color=data.color,
					postgui=data.postgui,
					textcolor=data.textcolor,
					dxWindow=data.dxWindow
				})
break
end
end
end
end
end)

my problem is in onClientKey event

i wanna to create editbox look like guiEditbox so when i press backspace button it's work but only delete 1 letter i wanna when player press backspace and player didn't left he is finger it will delete  all 

letters in dxeditbox

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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