Глобальное имя объекта с оператором for в lua (Sudoku EditBox) - PullRequest
0 голосов
/ 28 апреля 2019

Я пытаюсь сделать решение судоку с использованием Lua, для формы и компонентов графического интерфейса я использую Cheat Engine Lua Script Engine.Теперь я пытаюсь сделать поля редактирования 9x9, используя этот код:

local ctop = 10  -- top of first row
local cleft = 10 
local i

for i=1,9 do  --------------------- column 1
local edtboxname = 'edtbox'..i
local edtbox = createEdit(pnUp)
_G[edtboxname] = edtbox
edtbox.setSize(20,20)
edtbox.Aligment = 'taCenter'
edtbox.Left = cleft
edtbox.Top = ctop
ctop=ctop+25
if i == 9 then
 ctop = 10
 cleft = 32
end
end

for i=10,18 do  --------------------- column 2
local edtboxname = 'edtbox'..i
local edtbox = createEdit(pnUp)
_G[edtboxname] = edtbox
edtbox.setSize(20,20)
edtbox.Aligment = 'taCenter'
edtbox.Left = cleft
edtbox.Top = ctop
ctop=ctop+25
if i == 18 then
ctop = 10
cleft = 54
end
end

-- and so on until column 9

-- 1. So, how I make it simple with one for..do statement ?.

 local ctop = 10
 local cleft = 10
 local i

 for i=1,81 do  --------------------- column 1 to 9
 local edtboxname = 'edtbox'..i
 local edtbox = createEdit(pnUp)
 _G[edtboxname] = edtbox
 edtbox.setSize(20,20)
 edtbox.Aligment = 'taCenter'
 edtbox.Left = cleft
 edtbox.Top = ctop
 ctop=ctop+25
 if i == 9 then
  ctop = 10
  cleft = 32    --- or cleft = cleft+22 
                --- start a new column, give space 2 to next column
  ...
  ...
  if i == 18 then 
  ctop = 10
  cleft = 54    --- or cleft = cleft+22 
                --- start a new column, give space 2 to next column
  ..
  ..            --- till i = 81 on column 9  
  end
  end
  end
Как установить все поля редактирования, принимают только цифры от 1 до 9? Как определить имена идентификаторов для каждого столбца и строк, которые содержат 9 полей редактирования?.

Спасибовы

...