2013-01-23 8 views
6

ich ein waitbar wie dies bin mit:Abbruch aktuelle Skript auf waitbar Schließen

h = waitbar(0,'Please wait...'); 
for i=1:100, % computation here % 
    waitbar(i/100) 
    % other operation here 
end 
close(h) 

Ich mag würde dieses Skript stoppen, wenn der Benutzer die waitbar schließen (klickt auf die X des Fensters), ohne hinzufügen zu müssen a Abbrechen-Schaltfläche.

Gibt es eine Möglichkeit, es zu tun?

Antwort

5

Sie können testen, ob h ein gültiges Handle ist, und andernfalls die Schleife beenden. Fügen Sie den folgenden in der Schleife:

if ~ishandle(h) 
    break 
end 
1

Sie so etwas wie dies versuchen:

if ishandle(h), 
    close(h); 
    % Your code here 
else 
    %waitbar has been closed by the user 
    % call throw, return, or break 
end 

Hoffe, dass es hilft,

+0

close (h) schließt das waitbar nicht das Skript – dynamic

+0

Ja, den Code ist nicht vollständig in dem Sinne, Sie überprüfen im Grunde, ob die Warteleiste geschlossen ist oder nicht. Je nachdem, wo Sie es verwenden, folgen Sie der Anweisung "return" oder "break" oder "throw" – Kiran

+0

@KiranChandrashekhar: Ich sehe nicht, wie das auf das Fenster reagiert, das von einem Benutzer geschlossen wird - Sie müssen Überprüfen Sie, ob der Griff nicht mehr existiert. – Jonas

Verwandte Themen