Multiple callbacks to one callback

Hi, everyone,
I'm doing an app in the App designer and I got the following problem. I have some components and I need to do some process (always the same) when any of the components value changes. I would like to know if there is a way to put everything together in the same callback. This is something that will help me to avoid repetition of lines in the code.
I'm doing something like
ValueChanged callback in component one
Calculation ComponentOne.Value+ComponentTwo.Value
ValueChanged callback in component two
Calculation ComponentOne.Value+ComponentTwo.Value
What I would like to do is
ValueChanged callback in component one or two
Calculation ComponentOne.Value+ComponentTwo.Value
Thanks in advance

1 comentario

Mario Malic
Mario Malic el 7 de Oct. de 2020
Write it in a helper function, and in the callback, call the function

Iniciar sesión para comentar.

 Respuesta aceptada

Mohammad Sami
Mohammad Sami el 8 de Oct. de 2020
You can assign the same function as callback to multiple ui components.
Inside you function you will need to be able to access the properties under app directly.
function CommonValueChanged(app, event)
app.ComponentOne.Value + app.ComponentTwo.Value
end

5 comentarios

Hi Mohammad, I created a Third component to prove your solution but it doesn't changes the value in ComponentThree.
methods (Access = private)
function CommonValueChanged(app,event)
app.ComponentThree.Value=app.ComponentOne.Value + app.ComponentTwo.Value;
end
end
I don't know what is missing or maybe I misunderstood your solution.
Mohammad Sami
Mohammad Sami el 8 de Oct. de 2020
What is the type of component three ? Also just to verify the callback for component one and two are set to CommonValueChanged ?
Component Three it's a Numeric editfield
But are you saying this?
methods (Access = private)
function CommonValueChanged(app,event)
app.ComponentThree.Value=app.ComponentOne.Value + app.ComponentTwo.Value;
end
end
function ComponentTwoValueChanged(app, event)
CommonValueChanged(app,event);
end
function ComponentTwoValueChanged(app, event)
CommonValueChanged(app,event);
end
That works but I don't want that because there are two callbacks and I just want one common callback. Imagine that you want to do the same for say 15 components , in that case it would be neccesary to write 15 callbacks and I think it's to much code.
Mohammad Sami
Mohammad Sami el 9 de Oct. de 2020
Thats not what I meant.
You can right click on each component on the right hand pane.
For the first component, click add value changed fcn to create a callback. For the second component, Click Select Exisiting Callback and set it to same callback as one.
I have also attached a small demo.
Juan Ruiz Osorio
Juan Ruiz Osorio el 9 de Oct. de 2020
Perfect!. That's exactly what I was looking for,
Thank you,Mohammad.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Develop Apps Using App Designer en Centro de ayuda y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by