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

65 visualizzazioni (ultimi 30 giorni)
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?

Risposta accettata

Simon Chan
Simon Chan il 14 Mag 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);

Più risposte (1)

Jon
Jon il 11 Mag 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 Commento
gili Maimon
gili Maimon il 14 Mag 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

Accedi per commentare.

Categorie

Scopri di più su Interactive Control and Callbacks in Help Center e File Exchange

Prodotti


Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by