<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">Le 20/12/2016 22:24, Samuel Gougeon a
écrit :<br>
</div>
<blockquote cite="mid:5859A1A0.4040306@free.fr" type="cite">
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
<br>
If i understand well your question -- rather the same than Jens's
one, that likes loops too, mainly "while" ones embeding xclick()
:) --, i would answer the same that i did to him:<br>
A callback is a local (asynchronous) script that is executed each
time that the interactive component defining it is activated.<br>
So here, each time you press the x^2 button, each time its
callback is executed.<br>
<br>
In the callback, the instruction <br>
<pre><span>x = evstr(e.string);
</span></pre>
<span>is not robust, because at the moment the button is pressed,
the variable "e"</span><br>
<span>may no longer exist. Clearing it or overwriting it with
something else </span><span><span> in the meantime<br>
</span>does</span><span> not affect the graphic component. "e"
is just a handle (while delete(e) would really<br>
delete the component).<br>
For a robust implementation, <tt>gcbo.string</tt></span><span>
is required instead.</span><br>
</blockquote>
<br>
OK, here, the button should refer to the edit area. So gcbo is not
the whole thing.<br>
When writing things, either the button should depend on the edit
area, or at least<br>
should have a way to get its handle. .tag and findobj() can be used
to do that :<br>
Here is a robust implementation:<br>
<pre style="font-family:Monospaced;font-style:normal;font-size:12.0;"><span style="color:rgb(0,0,0);">f</span> <span style="color:rgb(92,92,92);">=</span> <span style="color:rgb(0,0,0);">scf</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(50,185,185);">uicontrol</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">f</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">style</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">edit</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(255,170,0);">...</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">position</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(74,85,219);">[</span><span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">100</span> <span style="color:rgb(188,143,143);">20</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(255,170,0);">..</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">tag</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">editArea</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(50,185,185);">uicontrol</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">f</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">style</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">text</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(255,170,0);">...</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">position</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(74,85,219);">[</span><span style="color:rgb(188,143,143);">200</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">100</span> <span style="color:rgb(188,143,143);">20</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(255,170,0);">..</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">string</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(255,170,0);">..</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">tag</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">dispArea</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span>
<span style="color:rgb(50,185,185);">uicontrol</span><span style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">f</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">style</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">pushbutton</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(255,170,0);">...</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">string</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">$x^2$</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span><span style="color:rgb(255,170,0);">...</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">position</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(74,85,219);">[</span><span style="color:rgb(188,143,143);">100</span> <span style="color:rgb(188,143,143);">0</span> <span style="color:rgb(188,143,143);">100</span> <span style="color:rgb(188,143,143);">20</span><span style="color:rgb(74,85,219);">]</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(255,170,0);">...</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">callback</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(0,0,0);">,</span> <span style="color:rgb(255,170,0);">..</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">e = findobj(""tag"",""editArea"");</span><span style="color:rgb(188,143,143);">"</span> <span style="color:rgb(92,92,92);">+</span> <span style="color:rgb(255,170,0);">..</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">t = findobj(""tag"",""dispArea"");</span><span style="color:rgb(188,143,143);">"</span> <span style="color:rgb(92,92,92);">+</span> <span style="color:rgb(255,170,0);">..</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">x = evstr(e.string);</span><span style="color:rgb(188,143,143);">"</span> <span style="color:rgb(92,92,92);">+</span> <span style="color:rgb(255,170,0);">..</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">y = x^2;</span><span style="color:rgb(188,143,143);">"</span> <span style="color:rgb(92,92,92);">+</span> <span style="color:rgb(255,170,0);">..</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">t.string = string(y);</span><span style="color:rgb(188,143,143);">"</span> <span style="color:rgb(92,92,92);">+</span> <span style="color:rgb(255,170,0);">..</span>
<span style="color:rgb(188,143,143);">"</span><span style="color:rgb(188,143,143);">plot2d(x, y, style = -1);</span><span style="color:rgb(188,143,143);">"</span><span style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;
</span></pre>
HTH<br>
Samuel<br>
<br>
</body>
</html>