creating a warning dialog that wait until the user press ok, if the user press x the execution stops

54 vues (au cours des 30 derniers jours)
Im writing a code that creates xlsx file (using writetable function)
I want that if thier is a xlsx file with the same name a warning alert will pop and tell the user: their are files with the same name, are you sure you want to override them? If the user press ok -> the execution of the code continues. If the user press X (get out from the warning dialog window) the execition of the code stops.
in the title : "Wait for Button Press" they say that the following code should work:
f = figure('Position',[500 500 400 300]);
c = uicontrol('String','Continue','Callback','uiresume(f)');
uiwait(f)
disp('Program execution has resumed');
But it does not work. The uiwait, wait untii the user close the figure and not until the user press OK.
I want to do the following:
  1. user press OK -> execution continues
  2. user get out from the warning dialog window -> execution stops
It sounds very simple to me, but somehow I don't succeed to do it,
Someone did something similar?

Réponse acceptée

Simon Chan
Simon Chan le 14 Mai 2023
One possible way is to use function uniconfirm.
fig = uifigure;
selection = uiconfirm(fig,'Overwrite existing excel file','File Operation');
switch selection
case 'OK'
disp('Code to write data into excel file');
case 'Cancel'
return
end
close(fig);

Plus de réponses (1)

Jon
Jon le 11 Mai 2023
Does the behavior demonstrated in my example below do what you want?
for k = 1:10
if k ==3 % condition simulating duplicate file found, just for example
% Display confirmation for file overwrite
selection = questdlg('Overwrite duplicate file?','Duplicate File',...
'Overwrite','Exit','Exit');
if strcmp(selection,'Exit')
break
end
end
% display iteration (just to show something is happening
disp(k)
end
  1 commentaire
gili Maimon
gili Maimon le 14 Mai 2023
Hey Thank you very much!
the problem with this solution that the code after the for loop runs after the user press Exit, and only the code inside the loop do not run because of "break" function.
Do you know a function that will stop execution completly after the user will press Exit? thanl you!
I ruther not insert the full script (that locate anther the for loop) inside an if statment

Connectez-vous pour commenter.

Catégories

En savoir plus sur Migrate GUIDE Apps dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by