Demonbholder 420 Postado Junho 25, 2011 Share Postado Junho 25, 2011 (editado) Opa galerinha, refiz a calculadora agora, só pra ver o quanto eu melhorei. Ai vai o código: require("wx") MeuPalco = wx.wxFrame(wx.NULL, wx.wxID_ANY, "Calculadora WxLua", wx.wxDefaultPosition, wx.wxSize(200,250), wx.wxDEFAULT_FRAME_STYLE + wx.wxRESIZE_BOX + wx.wxRESIZE_BORDER + wx.wxMAXIMIZE_BOX) ButtonWx_table = {} OperationsWx = {"=", "+", "*", "/", "-", "^", "%", "."} Operation_log = false Number_log = 0 PositionWx = -1 for ID, Operation in ipairs(OperationsWx) do PositionWx = ID % 5 == 1 and PositionWx +1 or PositionWx table.insert(ButtonWx_table, wx.wxButton(MeuPalco, ID, Operation, wx.wxPoint((ID - PositionWx*5 -1)*30+15, 120 +PositionWx*30), wx.wxSize(30, 30))) end for i = 0, 9 do local n = i >= 5 and i - 5 or i table.insert(ButtonWx_table, wx.wxButton(MeuPalco, i+100, tostring(i), wx.wxPoint(n*30+15, i > 4 and 90 or 60), wx.wxSize(30, 30))) end TextWx1 = wx.wxTextCtrl(MeuPalco, wx.wxID_ANY, "", wx.wxPoint(15, 10), wx.wxSize(120, 30), wx.wxTE_READONLY) ButtonWx1 = wx.wxButton(MeuPalco, wx.wxID_ANY, "C", wx.wxPoint(140, 10), wx.wxSize(30, 30), wx.wxTE_READONLY) ButtonWx1:Connect(wx.wxID_ANY, wx.wxEVT_COMMAND_BUTTON_CLICKED, function() TextWx1:Clear() Number_log = 0 Operation_log = false end) MeuPalco:Connect(wx.wxID_ANY, wx.wxEVT_MAXIMIZE, function() MeuPalco:SetSize(200, 250) end) for _, Button in pairs(ButtonWx_table) do if Button:GetId() >= 100 then Button:Connect(wx.wxID_ANY, wx.wxEVT_COMMAND_BUTTON_CLICKED, function() TextWx1:WriteText(tostring(Button:GetId()-100)) end) else Button:Connect(wx.wxID_ANY, wx.wxEVT_COMMAND_BUTTON_CLICKED, function() Operate(OperationsWx[button:GetId()]) end) end end function Operate(signal) if signal == "." then if TextWx1:GetValue() ~= "" and not string.find(TextWx1:GetValue(), "%.") then TextWx1:WriteText(signal) end return true elseif not Operation_log then if TextWx1:GetValue() ~= "" then if #TextWx1:GetValue() > 1 or string.sub(TextWx1:GetValue(), 1, 1) ~= "-" then if signal ~= "=" then Operation_log = signal Number_log = TextWx1:GetValue() TextWx1:Clear("") end end else if signal == "-" then TextWx1:WriteText("-") end end return true elseif signal ~= "=" then return true end loadstring("i = " .. Number_log .. Operation_log .. TextWx1:GetValue())() TextWx1:Clear() TextWx1:WriteText(tostring(i)) Operation_log = false return true end MeuPalco:Show(true) wx.wxGetApp():MainLoop() Download Scan Imagem É isso ai, valeu. Editado Julho 24, 2012 por Demonbholder Atualização Link para o comentário https://xtibia.com/forum/topic/159631-calculadora-wxlua/ Compartilhar em outros sites More sharing options...
Samuel2011 1 Postado Junho 25, 2011 Share Postado Junho 25, 2011 muito bom bholder :button_ok: Link para o comentário https://xtibia.com/forum/topic/159631-calculadora-wxlua/#findComment-1052323 Compartilhar em outros sites More sharing options...
noobinhu 38 Postado Junho 25, 2011 Share Postado Junho 25, 2011 boa, interessante eu n conhecia wxlua antes de vc vir me perguntar sobre.. n deve ser muito usado no mercado, vc poderia começar aprender C++, C#, .NET, java, python, alguma linguagem com mais mercado (sugestão) ;p mas uma coisa eu digo e acho muito bacana SEMPRE, SEMPRE que eu falo que comecei programar com LUA, nego olha como um diferencial. pq? pq lua geralmente é usado por jogos tal, e jogos é uma área que exige uma puta lógica e raciocinio Link para o comentário https://xtibia.com/forum/topic/159631-calculadora-wxlua/#findComment-1052350 Compartilhar em outros sites More sharing options...
tibiaa4e 86 Postado Novembro 10, 2011 Share Postado Novembro 10, 2011 Vendo esse codigo lembrei de eu me ferrando em JAVA via notepad ++ Não conhecia esse interpretador, interessante para treinar programacao. Acho interessante que lua pra mim é quase perfeita tem a multi plataforma do JAVA, simplicidade de um Delphi e Basic e muito poderosa além de leve Além de ser Brasileira LUA por enquanto além de jogos está usando usada muito em hardware E realmente da um diferencial para um trabalho Deveria ser fixado esse topico. Fico feliz de fuçar no forum e achar coisas além de tutoriais falhos de codigos simples Link para o comentário https://xtibia.com/forum/topic/159631-calculadora-wxlua/#findComment-1130685 Compartilhar em outros sites More sharing options...
Henrique Moura 193 Postado Novembro 10, 2011 Share Postado Novembro 10, 2011 Semelhante a lib GTK para Python. Muito bem bolado. abs Link para o comentário https://xtibia.com/forum/topic/159631-calculadora-wxlua/#findComment-1130697 Compartilhar em outros sites More sharing options...
72asdf 2 Postado Dezembro 28, 2011 Share Postado Dezembro 28, 2011 muito obrigado pela contribuição. Link para o comentário https://xtibia.com/forum/topic/159631-calculadora-wxlua/#findComment-1163455 Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Julho 23, 2012 Autor Share Postado Julho 23, 2012 (editado) Tópico e código refeitos. Nova versão Obs: Agora é possível adicionar as operações que vc quiser na tabela OperationsWx. Se você quer, por exemplo, que multiplique o primeiro número por 4 e depois divida pelo segundo número, vc adicionaria isso: "*4/" Abç. Editado Julho 23, 2012 por Demonbholder Link para o comentário https://xtibia.com/forum/topic/159631-calculadora-wxlua/#findComment-1299196 Compartilhar em outros sites More sharing options...
Posts Recomendados