Is there a existing way to get access to a class instance structure while having access only to the object handle??

2 visualizzazioni (ultimi 30 giorni)
Hello, I am new to OOP, GUI's and Matlab. With that upfront, I am developing a GUI using classes I've developed. I have a callback routine like this:
set(ebDx.eBx,'Callback',{@ebDx_Callback,handles});
...
...
[end of main]
function ebDx_Callback(objH,~,handles)
objH.classMethod % this crashes... I am assigning a field to a struct
My question: is there an easy way to get access to the structure for which objH is the handle (a double).
  1 Commento
Walter Roberson
Walter Roberson il 29 Mar 2013
Is ebDx.eBx a handle to an edit box, or a handle to a class? If it is a handle to a class, then how is the Callback getting activated? If it is a handle to an edit box, then where does the class come into this?

Accedi per commentare.

Risposte (2)

Sean de Wolski
Sean de Wolski il 29 Mar 2013
s = get(objH) %?
Perhaps you could show a minimal class that throws the error. Also, have you seen Steve's blog on GUIs made with classes?
  2 Commenti
David Conway
David Conway il 29 Mar 2013
Sean,
Thanks for the quick response. However, I have tried that. That function returns the properties associated with the graphics object, edit box, in this case, and not the structure variable associated with the class instance: tag, value, string, etc.
Sean de Wolski
Sean de Wolski il 29 Mar 2013
Huh, I'm not clear? Please provide a minimal working example. Perhaps a simple class with one figure and editbox.

Accedi per commentare.


Darik
Darik il 29 Mar 2013
It looks to me like ebDx is a handle object, and ebDx.eBx is a uicontrol handle? (Those are awful variable names, by the way)
If that's the case, you want something like
set(ebDx.eBx,'Callback',@(uicontrol_handle, event)ebDx_Callback(ebDx, uicontrol_handle, event, handles))
function ebDx_Callback(object_handle, uicontrol_handle, ~,handles)
object_handle.classMethod (...)

Categorie

Scopri di più su Environment and Settings in Help Center e File Exchange

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by