<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>