Need to test the validity of an application handle
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Richard
am 23 Mär. 2023
Bearbeitet: Adam Danz
am 24 Mär. 2023
I call a data application from my main application and store the data app handle in a main app local variable.. The data app has a Close button which first sets the handle to [] (by using the callingApp handle and then deletes itself. This works fine, no problem.
The probem occurs when the user closes the data app window using the "X" in the upper r/h corner. This action does execute the delete callback, but I'm unable to add code to this callback to also empty the data app handle. I'd prefer the user not use the "X", but it's impossible to prevent him from doing so inadvertently.
Isvalid would do the trick, but it's not available in 2022b. I could upgrade to 2023a, but I'd prefer not doing so at this time. An solutions?
0 Kommentare
Akzeptierte Antwort
Adam Danz
am 23 Mär. 2023
Bearbeitet: Adam Danz
am 24 Mär. 2023
> I'd prefer the user not use the "X", but it's impossible to prevent him from doing so inadvertently.
You can set the [x] close button to be unresponsive to clicks.
uif = uifigure('CloseRequestFcn',[])
Or display an alert box to inform the user to use the app's close button
uif = uifigure('CloseRequestFcn',@(f,~)uialert(f,'Use the app''s close button','No-Can-Do'))
To close these figures
close(uif,'force')
% or
delete(uif)
or, if you lose the handle, this deletes all figures
close all force
Weitere Antworten (1)
Walter Roberson
am 24 Mär. 2023
Isvalid would do the trick, but it's not available in 2022b.
2 Kommentare
Walter Roberson
am 24 Mär. 2023
I am running R2022b. isvalid() exists in a large number of methods, including handle class; https://www.mathworks.com/help/matlab/ref/handle.isvalid.html
If it is telling you that you need one of those toolboxes, we might guess that whatever app.hWdataPoint is is not a handle. What shows up for class(app.hWdataPoint) at that point ? And ishandle(app.hWdataPoint) and isa(app.hWdataPoint, 'handle') ?
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!