Werner Posted 16 hours ago Posted 16 hours ago I am trying to create a calculator with lua as scriptengine. It displays the current version of the gui fine, but I am having problems with the accept loop at the end. At the moment I have only entered a little code for number 1 and 2. The problem is that the textbox shows the number 1 and 2 when I hover over the buttons and not when they are clicked. Also I do not have a proper way of closing the window. Any suggestions to how to improve this accept loop? The code is as follows: -- Get the displays local displays = GetDisplays() -- Create a window local window = CreateWindow("Calculator", 0, 0, 800, 660, displays[1], WINDOW_CENTER | WINDOW_TITLEBAR)-- | WINDOW_RESIZABLE) -- Create User Interface local ui = CreateInterface(window) --Create buttons local sz = window:ClientSize() local x = (sz.x - 120) / 2 local y = 50 local sep = 40 -- Create widget local panel = CreatePanel(50, 50, sz.x - 100, sz.y - 100, ui.background) panel:SetColor(0, 0, 0, 1) panel:SetLayout(1, 1, 1, 1) -- Create text field local textfield = CreateTextField(70, 10, 600, 30,ui.background); textfield:SetText("0"); textfield:SetFontScale(2); textfield:SetColor(0,0,0,1) -- Row 1 local buttonMC = CreateButton("MC", 30, 30, 70, 70, panel); local buttonMR = CreateButton("MR", 110, 30, 70, 70, panel); local buttonM_Plus = CreateButton("M+", 190, 30, 70, 70, panel); local buttonM_Minus = CreateButton("M-", 270, 30, 70, 70, panel); -- Row 2 local buttonCE = CreateButton("CE", 30, 110, 70, 70, panel); local buttonC = CreateButton("C", 110,110, 70, 70, panel); local buttonPct = CreateButton("%", 190, 110, 70, 70, panel); local buttonDivide = CreateButton("/",270, 110, 70, 70, panel); -- Row 3 local button1 = CreateButton("1", 30, 190, 70, 70, panel); local button2 = CreateButton("2", 110, 190, 70, 70, panel); local button3 = CreateButton("3", 190, 190, 70, 70, panel); local buttonMultiply = CreateButton("X", 270, 190, 70, 70, panel); -- Row 4 local button4 = CreateButton("4", 30, 270, 70, 70, panel); local button5 = CreateButton("5", 110, 270, 70, 70, panel); local button6 = CreateButton("6", 190, 270, 70, 70, panel); local button_Minus = CreateButton("-", 270, 270, 70, 70, panel); -- Row 5 local button7 = CreateButton("7", 30, 350, 70, 70, panel); local button8 = CreateButton("8", 110, 350, 70, 70, panel); local button9 = CreateButton("9", 190, 350, 70, 70, panel); local button_Plus = CreateButton("+", 270, 350, 70, 70, panel); -- Row 6 local buttonPlusMinus = CreateButton("+/-", 30, 430, 70, 70, panel); local button0 = CreateButton("0", 110, 430, 70, 70, panel); local buttonDecimal = CreateButton(",", 190, 430, 70, 70, panel); local buttonResult = CreateButton("=", 270, 430, 70, 70, panel); while true do local ev = WaitEvent() if (ev.source == button1 ) then FirstNum = 1; textfield:SetText("1"); elseif (ev.source == button2) then FirstNum = 2; textfield:SetText("2"); end -- elseif EVENT_WINDOWCLOSE then return 0; -- if ev.id == EVENT_WIDGETACTION then -- Print(Widget(ev.source).text) -- elseif ev.id == EVENT_WINDOWCLOSE then -- return 0 -- end end Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.