Hello!<br><br>I've been having some issues with UCW lately. Maybe someone can help me out.<br><br>1) Component initialization<br><br>Have some problems embedding components which require initialization parameters that are not available.
<br><br>Example: I would like to do the following:<br><br>(defcomponent welcome-component (simple-window-component)<br>  ((menu :accessor welcome-component.menu :component<br>     (standard-menu :title "Operaciones"
<br>            :items<br>            `(("Requests" .  ,(lambda () (switch-component (welcome-component.body <reference to <span>welcome-component instance being created></span>) 'requests)))))<br>...
<br>
<br>But the welcome-component instance is not available and at the same time the 'items' initform is required. Besides, I have to indicate that the menu slot is a component, so I have to instance something there. Am I correct?
<br><br>So, when this happens (and this is happenning quite often), I do:<br>(defcomponent welcome-component (simple-window-component)<br>  ((menu :accessor welcome-component.menu :component<br>     (standard-menu :title "" :items nil))              <--- I DO THIS JUST TO SAY I HAVE A COMPONENT IN MENU, maybe there's a better way
<br>   )<br><br>and then:<br><br>(defmethod initialize-instance :after ((comp welcome-component) &key)<br>  (setf (welcome-component.menu comp)<br>     (make-instance 'standard-menu :title "Sections"<br>

            :items<br>            `(("Clients" .  ,(lambda () (switch-component (welcome-component.body comp) 'clients)))))))<br><br>where I can access the welcome-component instance through the 'comp symbol.
<br><br>Maybe you can give me some advise about better idiom here.<br><br>2) Iterate and macrolet problems (binding issues)<br><br>Sometimes some symbols seem to  be unbound when I use iterate or macrolet. In general, I can fix that using lambda, but maybe you know why that happens and how to fix it.
<br><br>Examples:<br>This won't work:<br><br>(:render ()<br>        (<:p (<:as-html (menu.title standard-menu)))<br>        (<:ul<br>        (iter<br>          (for (item-name .  item-func) in (menu.items standard-menu))
<br>             (<ucw:a :action (funcall item-func) (<:as-html item-name))))))<br><br>because item-func does not get bound when referring it from the <ucw:a action.<br><br>The replacement:<br>  (:render ()<br>        (<:p (<:as-html (
menu.title standard-menu)))<br>        (<:ul<br>         (mapcar  #'(lambda (item)<br>              (destructuring-bind (item-name . item-func) item<br>                (<ucw:a :action (funcall item-func) (<:as-html item-name))))
<br>              (menu.items standard-menu)))))<br><br>And then it works.<br><br>Same problem and solution with macrolet.<br><br>3) Have a problem with this piece of code:<br>         (<ucw:a :action (funcall item-func) (<:as-html item-name)))
<br><br>The problem is that item-func is suppossed to be a cc/function, so I guess that won't work if the item-func is doing something cc/related like calling other component. <br><br>So my question is: Is there any way of creating a lambda/cc? And how could I call it from the 
<br><ucw:a :action ?<br><br>Note that I'm having issues and I am *assumming* that that is the problem (as I'm switching a container component from inside item-func and it doesn't work), but I don't really know.
<br><br>If I'm correct, then I would love to provide a lambda/cc construct to the client.<br><br>Well, that's all :)<br><br>Thank you very much!<br><br>Mariano