<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title></title>
</head>
<body style="font-family:Arial;font-size:14px">
<p>Would this small example fit your needs ?<br>
<br>
function handler(win,x,y,ibut)<br>
global _keypress<br>
if or(ibut==(37:40))<br>
_keypress=ibut;<br>
end<br>
endfunction<br>
<br>
function key=waitforkeypress()<br>
global _keypress<br>
set(gcf(),'event_handler','handler','event_handler_enable','on')<br>
_keypress=0;<br>
while ~_keypress<br>
sleep(1)<br>
end<br>
set(gcf(),'event_handler_enable','off')<br>
key=_keypress;<br>
endfunction<br>
<br>
while 1<br>
select waitforkeypress()<br>
case 37<br>
disp('left')<br>
case 38<br>
disp('up')<br>
case 39<br>
disp('right')<br>
case 40<br>
disp('down') <br>
break<br>
end<br>
end<br>
<br>
S.<br>
<br>
Jens <<a href="mailto:j.s.strom@hslmg.de">j.s.strom@hslmg.de</a>> a écrit :</p>
<blockquote style="border-left:2px solid blue;margin-left:2px;padding-left:12px;" type="cite">
<div class="moz-cite-prefix">Hello,<br>
My event_handler experiments with the Scilab help example in "Event handler functions" (see below) led to nothing. I can see the "event" at the bottom of the graphic window but I cannot arrest it in a variable. I tried this:<br>
<br>
<div class="refsection">
<div class="programlisting">
<table border="0" width="100%">
<tbody>
<tr>
<td width="98%">
<pre class="scilabcode">
<span class="scilabfkeyword">function</span> <span class="scilabfunctionid">my_eventhandler</span><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">win</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">x</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">y</span><span class="scilabdefault">, </span><span class="scilabinputoutputargs">ibut</span><span class="scilabopenclose">)</span>
<span class="scilabskeyword">if</span> <span class="scilabinputoutputargs">ibut</span><span class="scilaboperator">==-</span><span class="scilabnumber">1000</span> <span class="scilabskeyword">then</span> <span class="scilabckeyword">return</span><span class="scilabdefault">,</span><span class="scilabskeyword">end</span>
<span class="scilabopenclose">[</span><span class="scilabinputoutputargs">x</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">y</span><span class="scilabopenclose">]</span><span class="scilaboperator">=</span><a class="scilabcommand" href="xchange.html" link="external" rel="nofollow" target="_top">xchange</a><span class="scilabopenclose">(</span><span class="scilabinputoutputargs">x</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">y</span><span class="scilabdefault">,</span><span class="scilabstring">'i2f'</span><span class="scilabopenclose">)</span>
<a class="scilabmacro" href="xinfo.html" link="external" rel="nofollow" target="_top">xinfo</a><span class="scilabopenclose">(</span><a class="scilabcommand" href="msprintf.html" link="external" rel="nofollow" target="_top">msprintf</a><span class="scilabopenclose">(</span><span class="scilabstring">'Event code %d at mouse position is (%f,%f)'</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">ibut</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">x</span><span class="scilabdefault">,</span><span class="scilabinputoutputargs">y</span><span class="scilabopenclose">))</span>
<span class="scilabfkeyword">endfunction</span>
<a class="scilabcommand" href="plot2d.html" link="external" rel="nofollow" target="_top">plot2d</a><span class="scilabopenclose">()</span>
<span class="scilabid">fig</span> <span class="scilaboperator">=</span> <a class="scilabmacro" href="gcf.html" link="external" rel="nofollow" target="_top">gcf</a><span class="scilabopenclose">()</span> <span class="scilabdefault">;</span>
<span class="scilabid">fig</span><span class="scilaboperator">.</span><span class="scilabfield">event_handler</span> <span class="scilaboperator">=</span> <span class="scilabstring">'my_eventhandler'</span> <span class="scilabdefault">;</span>
<span class="scilabid">fig</span><span class="scilaboperator">.</span><span class="scilabfield">event_handler_enable</span> <span class="scilaboperator">=</span> <span class="scilabstring">"on"</span> <span class="scilabdefault">;</span>
<span class="scilabcomment">//now:</span>
<span class="scilabcomment">// - move the mouse over the graphic window</span>
<span class="scilabcomment">// - press and release keys shifted or not with Ctrl pressed or not</span>
<span class="scilabcomment">// - press button, wait a little release</span>
<span class="scilabcomment">// - press and release button</span>
<span class="scilabcomment">// - double-click button</span>
<span class="scilabid">fig</span><span class="scilaboperator">.</span><span class="scilabfield">event_handler_enable</span> <span class="scilaboperator">=</span> <span class="scilabstring">"off"</span> <span class="scilabdefault">;</span> <span class="scilabcomment">//suppress the event handler</span>
</pre></td>
<td valign="top"><a href="scilab://scilab.execexample/"></td>
<td valign="top"><a href="scilab://scilab.editexample/"></td>
</tr>
</tbody>
</table>
</div>
</div>
<br>
I fear I must retire to <br>
<pre style="font-family:Courier New;font-style:normal;font-size:13.0;">
<span style="color:rgb(0,0,0);">m</span><span style="color:rgb(92,92,92);">=</span><span style="color:rgb(174,92,176);text-decoration:underline;">evstr</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(50,185,185);">x_dialog</span><span style="color:rgb(74,85,219);">(...)</span>
</pre>
Jens<br>
<br>
<br>
<br>
----------------------------------------------------------------------------<br>
<br>
Am 13.08.2014 11:12, schrieb mottelet [via Scilab / Xcos - Mailing Lists Archives]:</div>
<blockquote cite="mid:20140813111024.Horde.Hc-sr4Z-24Ie7jJkRN_21g1@webmail2.utc.fr" style="border-left:2px solid #CCCCCC;padding:0 1em" type="cite">
<p>Hello,<br>
<br>
IMHO, the only way to trap a keypress and get the ascii (?) code is to use the event_handler callback of a figure :<br>
<br>
function handler(x,y,ibut)<br>
//<br>
endfunction<br>
<br>
f=gcf();<br>
f.event_handler='handler';<br>
f.event_handle_enable='on';<br>
<br>
On my computer, I have the following mapping <br>
<br>
left arrow pressed : ibut=37 (released=-37)<br>
up arrow : 38<br>
right arrow 39<br>
down arrow 40<br>
<br>
The problem is that you need to have a figure opened, and that this figure must have the focus.<br>
<br>
S.</p>
<p>Jens <<a href="/user/SendEmail.jtp?type=node&node=4031030&i=0" link="external" moz-do-not-send="true" rel="nofollow" target="_top">[hidden email]</a>> a écrit :</p>
<blockquote style="border-left:2px solid #CCCCCC;padding:0 1em; border-left:2px solid #CCCCCC;padding:0 1em" type="cite">
<p>Hi Samuel,<br>
ASCII representation of up, down etc. would help me if I knew a Scilab<br>
command which puts the ascii value into a variable. input() is definitely<br>
unable to do so.<br>
<br>
Jens<br>
<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://mailinglists.scilab.org/Scilab-users-Recognition-of-cursor-key-as-input-tp4031013p4031026.html" link="external" moz-do-not-send="true" rel="nofollow" target="_blank">http://mailinglists.scilab.org/Scilab-users-Recognition-of-cursor-key-as-input-tp4031013p4031026.html</a><br>
Sent from the Scilab users - Mailing Lists Archives mailing list archive at Nabble.com.<br>
_______________________________________________<br>
users mailing list<br>
<a href="/user/SendEmail.jtp?type=node&node=4031030&i=1" link="external" moz-do-not-send="true" rel="nofollow" target="_top">[hidden email]</a>.<a href="orghttp://lists.scilab.org/mailman/listinfo/users" target="_blank">orghttp://lists.scilab.org/mailman/listinfo/users</p>
</blockquote>
<p><br>
</p>
<br>
_______________________________________________<br>
users mailing list<br>
<a href="/user/SendEmail.jtp?type=node&node=4031030&i=2" link="external" moz-do-not-send="true" rel="nofollow" target="_top">[hidden email]</a><br>
<a href="http://lists.scilab.org/mailman/listinfo/users" link="external" moz-do-not-send="true" rel="nofollow" target="_top">http://lists.scilab.org/mailman/listinfo/users</a><br>
<br>
<br>
<hr color="#CCCCCC" noshade size="1">
<div style="color:#444; font: 12px tahoma,geneva,helvetica,arial,sans-serif;">
<div style="font-weight:bold">If you reply to this email, your message will be added to the discussion below:</div>
<a href="http://mailinglists.scilab.org/Scilab-users-Recognition-of-cursor-key-as-input-tp4031013p4031030.html" link="external" moz-do-not-send="true" rel="nofollow" target="_top">http://mailinglists.scilab.org/Scilab-users-Recognition-of-cursor-key-as-input-tp4031013p4031030.html</a></div>
<div style="color:#666; font: 11px tahoma,geneva,helvetica,arial,sans-serif;margin-top:.4em;line-height:1.5em">To unsubscribe from [Scilab-users] Recognition of cursor key as input, <a href="" link="external" moz-do-not-send="true" rel="nofollow" target="_top">click here</a>.<br>
<a href="http://mailinglists.scilab.org/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml" link="external" moz-do-not-send="true" rel="nofollow" style="font:9px serif" target="_top">NAML</a></div>
</blockquote>
<p><br>
</p>
<hr align="left" width="300">
<p>View this message in context: <a href="http://mailinglists.scilab.org/Scilab-users-Recognition-of-cursor-key-as-input-tp4031013p4031031.html">Re: Recognition of cursor key as input</a><br>
Sent from the <a href="http://mailinglists.scilab.org/Scilab-users-Mailing-Lists-Archives-f2602246.html">Scilab users - Mailing Lists Archives mailing list archive</a> at Nabble.com.</p>
</blockquote>
<p><br>
<br></p>
</body>
</html>