Miroshka Автор темы 5 Опубликовано: 16 октября, 2017 (изменено) Вот код, его написал boob: local forms = require('forms') local w, h = require('component').gpu.getResolution() local main=forms.addForm() main.border=1 main.H=15 main.W=43 main.left=math.floor((w-main.W)/2) main.top=math.floor((h-main.H)/2) textfield=main:addEdit(3,2) textfield.text = {} textfield.H=11 textfield.W=39 local btn_sumbit=main:addButton(29,13,'Sumbit',function() local file = io.open('file.txt', 'a') file:write(table.concat(textfield.text,'\n')..'\n') file:close() textfield.text = {} textfield:redraw() end) local btn_exit=main:addButton(6,13,'Exit',forms.stop) forms.run(main) file.txt - сюда должны сохраняться отзывы, они уже сохраняються, или нужно что то добавишь и тогда начнут? Где лежит этот файл и как его открыть что бы посмотреть? И еще "прописать в автозапуск, убрать кнопку выхода и запретить прерывания. И в бой." хелп с этим, это нужно прописывать в edit cmnt.lua, я уже открывал. Выходит что когда открываеться гуи, в поле можно что то писать, НО если нажать в другое место - окно зависает, ты можешь писать в другом месте, но окно будет продолжать весеть, то же самое если нажать выход или отправить. Хелп! Или же вариант Asior'a function zpOtz(name) print("Тут вы можете оставить свой отзыв\nДля сохранения отзыва нажмите Enter") local text = io.read() if text ~= "" then local file = io.open("../Otz.txt", "a") print("Идет сохранение вашего отзыва") print(io.write(name.." > "..text.."\n")) io.close(file) end end Только при его запуске выскакивает https://imgur.com/a/l4FQC Running... и всё. Дальше - ничего не происходит. Памагите, а скора буду плакать - эта не шутки!!! Изменено 16 октября, 2017 пользователем Miroshka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 16 октября, 2017 Памагите, а скора буду плакать - эта не шутки!!! просто запустить "код Асиора" - этого мало. Это не программа, а функция. Ее, как минимум, еще и вызвать нужно. В общем, жди, может кто-то и напишет тебе готовую прогу полноценную с инсталляцией автоматической всех либ и пр., это проще в 100 раз, чем объяснить, как это сделать человеку, который новичок в этом. И с обработчиком отзывов, типа показать отзывы за период, или показать последние десять отзывов, заблокировать ник (спамер), очистить отзывы, и тд. и т.п. и прочее. Сейчас пока ты ничего в этом топике не выяснишь и не добьешься. Лучше пока почитай документацию по луа и ОС. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Miroshka Автор темы 5 Опубликовано: 16 октября, 2017 В общем, жди, может кто-то и напишет тебе готовую прогу полноценную с инсталляцией автоматической всех либ и пр., это проще в 100 раз, чем объяснить, как это сделать человеку, который новичок в этом. Честно - на это я и расчитывал. Ибо писать программы такого уровня я сам еще не могу, ибо только начинаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 16 октября, 2017 (изменено) Эмм. Сколько ж тут всего то ...Короче, я написал обыкновенную функцию, которая при обычном копировании просто не сработает, так как её не вызывают. Вызвать функцию и заставить её работать можно по её имени в моем случае просто надо после кода функции вставить её название и все. function zpOtz(name) ... end zpOtz('Asior') Вот и все. Тогда программа выполнится. Я как то упустил этот момент решив что это то должен знать любой кто хоть немного изучал программирование и не обязательно на lua.P.S. Всетаки разработать программу для торговли прям по ходу дела уча lua это довольно мм ... тяжело, не находите? Может потренироваться сначала на чем-то попроще? Всетаки торговля это такое дело ... пара непредвиденных исключений и ты банкрот, и ресурсов нету и репутация копает могилу. Ну буду надеяться что ваш интузиазм не потухнет и вскоре можно будет на новом сервере увидеть вашу программу в полном действии. Изменено 17 октября, 2017 пользователем Totoro Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Miroshka Автор темы 5 Опубликовано: 16 октября, 2017 (изменено) @@Asior Не выходит. Сначала сделал так: https://pastebin.com/vJeHGccb потом сделал так, ибо была ошибка из-за ... https://pastebin.com/BQaY8YKR в итоге оба раза: https://imgur.com/a/M2boI Скорей всего я не так вставил сам код, ибо он опять же - не запустился, а именно функция. Изменено 16 октября, 2017 пользователем Miroshka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Miroshka Автор темы 5 Опубликовано: 16 октября, 2017 @@Asior А знаешь что... Добавь кнопку, и что бы по нажатию этой кнопки выскакивала эта функция! Вот! И это уже будет конечная остановка, те моя проблема будет - решена. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 17 октября, 2017 (изменено) О_о ппц. Вас не смущает что у вас теперь 2 функции с одним и тем же названием? Уберите нафиг и не позорьтесь в последнем варианте 11 и 12 строчки. Кстати не надо мне цитировать все это в личку, я всеравно в почтовый ящик из телефона не могу войти. Насчет кнопки - вариант работы уже показал Doob, я к сожалению сейчас ну никак не могу создать нечто похожее, но иначе, да еще и без ошибок (доступа к компьютеру ближайшие 8 месяцев не предвидится). Хотя нужен же хоть какой-то вариант реализации так? Ну тогда держите немного кода.pastebin.com/CFvegLMyИ да, логику хоть немного включайте. Я то не могу ни копировать, ни вставлять, ни цитировать. Изменено 17 октября, 2017 пользователем Totoro Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Alex 4 683 Опубликовано: 17 октября, 2017 Вызвать функцию и заставить её работать можно по её имени в моем случае просто надо после кода функции вставить её название и все.function zpOtz(name) ... end zpOtz('Asior') хах, как ты написал, так он и сделал добросовестно. https://i.imgur.com/krANVxT.png Почему-то вспомнилась легенда про императора Николая 1-го, что мол, он как линейку приложил, и когда чертил, палец случайно обвел на линейке, так ж/дорогу и построили с изгибом сейчас я уже почти уверен, что та легенда - правда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Zer0Galaxy 2 187 Опубликовано: 17 октября, 2017 (изменено) В 5-м посте, скрипт - баг https://imgur.com/a/SGzPO. Нажимаешь Exit - не можешь писать в том окне, а начинает вне него, и оно не изчезает. Нажимаешь отправить - то же самое. Никакого бага. Просто для того, что бы начать писать нужно кликнуть по окошку ввода. А Exit - вообще выход из программы. Что ты там писать собрался? Изменено 17 октября, 2017 пользователем Zer0Galaxy Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS 1 900 Опубликовано: 17 октября, 2017 (изменено) Фига тут драма разыгралась, программка-то простая совсем. Держи мой вариант: для начала запускаешь инсталлер всех библиотек: pastebin run ryhyXUKZЗатем запускаешь следующий код: local buffer = require("doubleBuffering") local GUI = require("GUI") local event = require("event") -------------------------------------------------------------- local mainContainer = GUI.fullScreenContainer() mainContainer:addChild(GUI.panel(1, 1, mainContainer.width, mainContainer.height, 0x002440)) local layout = mainContainer:addChild(GUI.layout(1, 1, mainContainer.width, mainContainer.height, 1, 1)) local label = layout:addChild(GUI.label(1, 1, 40, 1, 0xE1E1E1, ""):setAlignment(GUI.alignment.horizontal.center, GUI.alignment.vertical.top)) local input = layout:addChild(GUI.input(1, 1, 40, 5, 0xE1E1E1, 0x444444, 0x888888, 0xE1E1E1, 0x262626, nil, "Напишите ваш отзыв здесь")) layout:addChild(GUI.button(1, 1, 40, 3, 0x336DBF, 0xE1E1E1, 0xE1E1E1, 0x336DBF, "Отправить отзыв")).onTouch = function(mainContainer, object, eventData) if input.text:len() > 0 then local file = io.open("/Otzivi.txt", "a") file:write("Отзыв от пользователя " .. eventData[6] .. ": " .. input.text .. "\n") file:close() input.text, label.text = "", "Ваш отзыв отправлен" mainContainer:draw() buffer.draw() event.timer(2, function() label.text = "" mainContainer:draw() buffer.draw() end, 1) end end layout:addChild(GUI.button(1, 1, 40, 3, 0x336DBF, 0xE1E1E1, 0xE1E1E1, 0x336DBF, "Выйти")).onTouch = function() mainContainer:stopEventHandling() buffer.clear(0x0) buffer.draw(true) end -------------------------------------------------------------- mainContainer:draw() buffer.draw(true) mainContainer:startEventHandling() Вуаля, результат: Все отзывы хранятся в файлике с соответствующим именем в корне диска. Читай любым удобным способом: Изменено 17 октября, 2017 пользователем ECS 3 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Miroshka Автор темы 5 Опубликовано: 17 октября, 2017 @@Asior Всё практически хорошо, но пару но: 1. Когда отправляешь отзыв и открываешь файл, в котором должен сохраниться отзыв Otz.txt - там ничего нет. 2. И можно как-нибудь подогнать этот код под сервер? В плане.. Любой человек сможет закрыть программу на ctrl+alt+c, и открыть файл с отзывами, но это еще ладно, можно не публиковать название файла и никто не узнает, программу то - закрывают. https://imgur.com/a/jsCaO Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Miroshka Автор темы 5 Опубликовано: 17 октября, 2017 (изменено) @@ECS Сразу не заметил пост. Установил библиотеку, и выскакивает ошибка - https://imgur.com/a/WfIFm И вопрос про закрытие программы на ctrl alt c - еще в силе. Вообще без понятия как это убрать.. Клаву сломать, что бы не смогли ввести сочетание - не смогут отзыв написать.. Изменено 17 октября, 2017 пользователем Miroshka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS 1 900 Опубликовано: 17 октября, 2017 Установил библиотеку, и выскакивает ошибка - https://imgur.com/a/WfIFm Это твоя ошибка, ко мне отношения она не имеет. Проверил на чистом компе, все без проблем устанавливается: И вопрос про закрытие программы на ctrl alt c - еще в силе. Юзай следующий код - и все будет в шоколаде: event.shouldInterrupt = function() return false end event.shouldSoftInterrupt = event.shouldInterrupt Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Miroshka Автор темы 5 Опубликовано: 17 октября, 2017 (изменено) Памагите Помогите идиоту подключить библиотеку ивентов, и покажите куда вставить этот код: event.shouldInterrupt = function() return false end event.shouldSoftInterrupt = event.shouldInterrupt И программа - так и не работает. Ошибка в скрине выше. Изменено 17 октября, 2017 пользователем Miroshka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
ECS 1 900 Опубликовано: 17 октября, 2017 (изменено) Ошибка при запуске программы. Начнем с того, что на твоем скриншоте возникла ошибка с запуском скрипта после загрузки с pastebin.com, и ни в коем случае не при запуске самой программы после окончания работы инсталлера: Во-вторых, скрипт 7PjKsdNa скидывал тебе не я, и с какой стати ты сообщаешь мне об ошибке в чужом софте - не ясно. Вообще, если быть предельно корректным, то это не ошибка, а банальная приватность пасты: Если совсем туго с самостоятельным анализом ситуации, то могу вообще прям по действиям расписать: Ввводишь в консоль команду pastebin run ryhyXUKZ Открываешь новый файл (скажем, через edit <имя_файла>) и средней кнопкой мыши вставляешь скинутый выше код с содержимым окна Если требуется отключение ctrl+c, то после строчек с requir'ами вставляешь все той же средней кнопкой мыши скинутый код для отключения ctrl+c Сохраняешь файл путем нажатия ctrl+s, выходишь из редактора через ctrl+w Запускаешь сохраненную программу Неужели это так сложно? Могу в таком случае скинуть полностью собранную софтину с отключением прерываний (тык), но тогда ты ничему не научишься и будешь бездумно доставать форумчан и далее. Изменено 17 октября, 2017 пользователем ECS 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 17 октября, 2017 Хмм, я тут покопался в своем коде и реально он не сохранял! Тут уже опять моя ошибка, к сожалению не могу поправить код на пастебине (заблокировал зараза) но ошибка исправляется так: Надо заменить в коде следующее io.write на file:write io.close на file:close ну бывает, забыл. Все это конечно не актуально и довольно убого выглядит по сравнению с вариантами выше Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Miroshka Автор темы 5 Опубликовано: 18 октября, 2017 ну бывает, забыл. Все это конечно не актуально и довольно убого выглядит по сравнению с вариантами выше За то я понимаю твой единственный код, и (спасибо что разрешил) буду постепенно модифицировать его, те учиться на нём (Хотя бы освою базовые функции) Только вот еще решаю проблему с автозапуском на OpenOC. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Fingercomp 4 398 Опубликовано: 18 октября, 2017 За то я понимаю твой единственный код, и (спасибо что разрешил) буду постепенно модифицировать его, те учиться на нём (Хотя бы освою базовые функции) Только вот еще решаю проблему с автозапуском на OpenOC. https://fingercomp.gitbooks.io/oc-cookbook/content/openos/autorun.html 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах