Difference between revisions of "Terminate (event)"

From ComputerCraft Wiki
Jump to: navigation, search
m
(Less confusing example for newbies. Also removed the comment that was implying to override os.pullEvent if you wish to capture this event)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{NeedsWork|A demonstration on the use and handling of this event would be beneficial. ''[[User:AfterLifeLochie|AfterLifeLochie]] 16:13, 30 November 2012 (MSK)''}}
 
 
 
{{Event
 
{{Event
 
|name=terminate
 
|name=terminate
|desc=Fired when CTRL+T is held to terminate the running program.
+
|desc=Fired when CTRL+T is held for at least 1 second. '''NOTE:''' This event cannot be captured with an unmodified [[os.pullEvent]], [[os.pullEventRaw]] or [[coroutine.yield]] should be used whenever possible instead of overriding os.pullEvent
 
}}
 
}}
 
{{Example
 
{{Example
|desc=This overides the [[os.pullEvent]] function to display a custom message when a program is terminated
+
|desc=This loop listens for the terminate event and exits the program when found, cleaning the screen first
|code=function os.pullEvent(_sFilter)
+
|code=while true do
  local event = { os.pullEventRaw(_sFilter) }
+
  local event = os.pullEventRaw()
  if event[1] == "terminate" then
+
  if event == "terminate" then
    error("Terminate Event Found", 0)
+
    term.clear()
  end
+
    term.setCursorPos(1,1)
  return unpack(event)
+
    return
end
+
  else
 +
    print("Still running!")
 +
  end
 +
end
 
}}
 
}}

Latest revision as of 09:48, 28 October 2013



Grid Modem.png  Event terminate
Fired when CTRL+T is held for at least 1 second. NOTE: This event cannot be captured with an unmodified os.pullEvent, os.pullEventRaw or coroutine.yield should be used whenever possible instead of overriding os.pullEvent
Returned Object 1 Nothing


Grid paper.png  Example
This loop listens for the terminate event and exits the program when found, cleaning the screen first
Code
while true do
  local event = os.pullEventRaw()
  if event == "terminate" then
    term.clear()
    term.setCursorPos(1,1)
    return
  else
    print("Still running!")
  end
end