WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

msgbox schließen wenn Fenster noch offen ist?

 

fip1982
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 04.12.10
Wohnort: München
Version: ---
     Beitrag Verfasst am: 04.12.2010, 17:24     Titel: msgbox schließen wenn Fenster noch offen ist?
  Antworten mit Zitat      
Hallo alle zusammen.

Ich bin gerade dabei ein m-File zu schreiben welches ein Such-Algorithmus ausführt. Da dieser recht lange dauern kann (bis zu 30sekunden) wollte ich den übereifrigen Benutzer mit einer Messagebox informieren das er doch bitte warten soll.
Aus diesem Grund hab ich zu Begin des m-Files eine msgbox erstellt welche am Ende des m-Files wieder geschlossen werden soll.
Siehe Code:
Code:
% zu Begin des m-Files wird die msgbox erstellt
h_msg=msgbox('Bitte warten','Info Fenster');
% zum unterdrücken des OK-Buttons
hc=get(h_msg,'Children');
set(hc(2),'Visible','off');
.
.
.
 % jetzt komt der eigentliche Programcode
.
.
.
% am Ende des m-Files soll das Fenster geschlossen werden falls die msgbox noch offen ist
if ???
  close (h_msg);
end
 


Ist der Suchalgorithmus fertig so soll die msgbox geschlossen werden. Dabei möchte ich überprüfen ob der Benutzer nicht vorher das Fenster schon geschlossen hat da es sonst zu einer Fehlermeldung kommt.

Als Hinweis:
- Den Befehl "close all" kann ich nicht benutzen da ich nebenbei noch ein Plot offen habe.
- Und für die If-Abfrage habe ich auch schon den Befehl "ishandle(h_msg)" ausprobiert -> dieser gibt mir jedoch immer 1 (True) zurück egal ob die msgbox noch offen ist oder schon geschlossen wurde.

Ich wär überglücklich wenn mir jemand dabei helfen könnte und dafür bedank ich mich schoneinmal im Vorraus Wink

mfg, fip1982
Private Nachricht senden Benutzer-Profile anzeigen


Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 04.12.2010, 18:23     Titel:
  Antworten mit Zitat      
Hallo,

dann will ich dich mal glücklich machen Wink
Code:

h = msgbox('hallo');

if ishandle(h)
     delete(h);
end
 


Zitat:

Und für die If-Abfrage habe ich auch schon den Befehl "ishandle(h_msg)" ausprobiert -> dieser gibt mir jedoch immer 1 (True) zurück egal ob die msgbox noch offen ist oder schon geschlossen wurde.


Kann ich nicht nachvollziehen, klappt bei mir ohne Probleme im obigen Beispiel.

MFG

Sco
Private Nachricht senden Benutzer-Profile anzeigen
 
MatLabNooB
Forum-Guru

Forum-Guru


Beiträge: 262
Anmeldedatum: 27.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.12.2010, 18:44     Titel:
  Antworten mit Zitat      
um übereifrige Benutzer im schacht zu halten und ihnen die zeit zu vertreiben lohnt sich auch immer ne schöne Progressbar ^^ siehe
Code:


gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
fip1982
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 04.12.10
Wohnort: München
Version: ---
     Beitrag Verfasst am: 04.12.2010, 19:23     Titel:
  Antworten mit Zitat      
Hey Leute

das ging ja jetzt echt schnell mit den Antworten.

@ MatLabNooB:

Nach dem du geschrieben hast das es bei dir geht, hab ich es nun doch nochmal ausprobiert und siehe da jetzt funktioniert es auch. Sehr komisch ehrlich gesagt...hab jetzt seit 2h probiert das Problem zu lösen bzw. im Netz antworten darauf zu finden aber ohne Erfolg.
Glaub fast das es an Matlab liegt und ich es einfach neustarten hab müssen. Vieleicht ist er auch mit den Brakepoints nicht klar gekommen.

Auf jeden Fall dank ich dir / euch ganz herzlich für die schnelle Antwort und kann nun endlich weiter machen.

@ Sco:

Die "waitbar" hätte ich auch am liebsten benutzt aber ich verwende in dem Such-Algorithmuss "fminsearch" und gebe dieser Funktion keine maximale Anzahl an Iterationen vor und kann somit auch nicht im Vorfeld bestimmen wie oft er die Schleife durchläuft.
Und soweit ich weis muss ich für die "waitbar" den Status berechnen wie weit das Programm schon ist um dann bei 100% die waitbar zu schließen!?
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.