Перейти к содержимому


Фотография

[OC] "Лёгкая" библиотека GUI

gui

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 62

#61 Оффлайн   neon_bones

neon_bones
  • Пользователи
  • Сообщений: 1
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Отправлено 02 Июль 2018 - 09:24

Ребят, помогите разобраться с событиями в этой библиотеке. У меня есть программа, которая должна уметь принимать сообщения по модему и писать его в лейбл. Решить ее выходит только с помощью огромного костыля в виде таймера и pullSignal, который просто каждую секунду слушает событие модема и перерисовывает лейбл. При использовании событий почему-то выкидывает или nil, или вообще ничего.



#62 Оффлайн   man_cubus

man_cubus
  • Пользователи
  • Сообщений: 20
  • Уровень сигнала: 50,68%
  • В игре: 409 час. 51 мин.
  • ГородKiev

Награды

     

Отправлено 02 Июль 2018 - 12:37

огромного костыля в виде таймера и pullSignal

Родина дала тебе event.listen, используй его мудро!

 

Вот пример кода

local valid_users = {["man_cubus"] = true}

local function valid(name)
  return valid_users[name]
end

function common.motion_handler(...)
local evt = {...}
  -- evt[1] всегда равно "motion" потому что именно это событие мы и будем слушать,
  -- остальные поля в соответствии с описанием события на ocdoc.cil.li
  if valid(evt[6]) then
    common.red_actions.process_sensor(evt[2]) --[[эта функция тут не показана,
    но evt[2] - это будет адрес сенсора движения, от которого поймано сообщение]]
  end
end

common.event.listen("motion", common.motion_handler)

Сообщение отредактировал man_cubus: 02 Июль 2018 - 12:48

  • neon_bones это нравится

#63 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Автор темы
  • Гуру
  • Сообщений: 1 229
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   5                              

Отправлено 05 Июль 2018 - 21:43

Ребят, помогите разобраться с событиями в этой библиотеке. У меня есть программа, которая должна уметь принимать сообщения по модему и писать его в лейбл. Решить ее выходит только с помощью огромного костыля в виде таймера и pullSignal, который просто каждую секунду слушает событие модема и перерисовывает лейбл. При использовании событий почему-то выкидывает или nil, или вообще ничего.

Просто создаешь объект Event, в обработчик которого вставляешь изменение лейбы:

function onEvent(receiverAddress, senderAddress, port, distance, message)
  Label1.caption=message
  Label1:redraw()
end

Event1=Form1:addEvent("modem_message", onEvent)






Темы с аналогичным тегами gui

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных