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

set(handle.myname, 'visible','off') hat oftmals Störungen

 

JohnnyChoclate
Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 18.02.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2014, 14:45     Titel: set(handle.myname, 'visible','off') hat oftmals Störungen
  Antworten mit Zitat      
Hallo zusammen,

in meinem GUI habe ich einige Popups die erst nach Aufruf von vorherigen Callbacks öffnen. So befindet sich in einem Callback folgender Code:
Code:

function laenge_popup_Callback(hObject, eventdata, handles)
set(handles.text2,'Visible', 'on')
set(handles.breite_popup,'Visible', 'on')
set(handles.breite_popup,'String', num2cell(list))

guidata(hObject, handles);
 


Leider öffnet sich der popup nicht immer Sad

Ich habe es auch schon mit
Code:
findobj('tag', 'breite_popup')
versucht, weil ich vermutet habe er findet das Popup nicht. Leider ohne Erfolg.

Hat jemand eine Idee an was das liegen könnte?

LG
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.10.2014, 15:10     Titel:
  Antworten mit Zitat      
Hallo,

ist das Verhalten bei gleicher Nutzung der GUI immer gleich?
Falls ja, bitte reproduzierbaren Code und Schritte zur Reproduktion zur Verfügung stellen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
JohnnyChoclate
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 18.02.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.10.2014, 18:09     Titel:
  Antworten mit Zitat      
Das Problem ist das ich die Regelmäßigkeit des Fehlers nicht sehe und glaube das es nicht immer gleich ist. Es ist auch nicht auf eine bestimmte Nutzung (bestimmtes Popup) alleine zurückzuführen. Es kommt auch vor, dass mal ein anderes Popup wie im Beispiel, nicht angesprochen wird. (Ich habe mehrere Popups die sich jeweils erst öffnen wenn ihr Vorgänger angesprochen wurde.)

Ich weiß leider nicht was du genau mit Reproduktion meinst, allerdings habe ich noch eine Idee für den Fehler. Das Problem tritt nie im ersten Durchlauf ein und meist erst nach mehreren Durchgängen. Wenn ein Popup neu belegt wird, setze ich die handles der Popups die darauf folgen wieder auf null. Hier ein Beispiel:

Code:

handles.hoehe=0;
set(handles.text4,'Visible', 'off')
set(handles.hoehe_popup,'Visible', 'off')
set(handles.hoehe_popup,'String', '-')


Denke aber eigentlich das ich sie richtig überschreibe und komischerweise gibt es auch nie ein Problem mit dem
Code:
set(handles.text,'visible','on')
sondern nur mit
Code:
set(handles.popup,'visible','on')
?!

Ich hoffe es einigermaßen gut beschrieben zu haben und es kommt mir wirklich "spanisch" vor. Wenn noch jemand eine Idee hätte wäre ich sehr dankbar!!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 08.10.2014, 18:35     Titel:
  Antworten mit Zitat      
Hallo,

"Reproduktion" heißt, dass ich das Problem nachvollziehen können möchte, um der Ursache auf die Spur zu kommen. Dazu wäre zusammenhängender, ausführbarer Code hilfreich.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
JohnnyChoclate
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 18.02.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2014, 07:12     Titel:
  Antworten mit Zitat      
Hallo Harald,

Vielen Dank das du einen Blick darauf wirfst!!!


Im Anhang der Code.

Die Fehler treten aber nur im ersten Teil auf. Also bei nachträglichen Änderung bis Codezeile 480.

GUI.m
 Beschreibung:

Download
 Dateiname:  GUI.m
 Dateigröße:  24.72 KB
 Heruntergeladen:  380 mal
GUI.fig
 Beschreibung:

Download
 Dateiname:  GUI.fig
 Dateigröße:  20.39 KB
 Heruntergeladen:  356 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 09.10.2014, 18:25     Titel:
  Antworten mit Zitat      
Hallo,

ich musste die GUI zunächst umbenennen, damit sie überhaupt startet. In der OpeningFcn wird versucht, ein Bild zu laden, das nicht vorhanden ist. So war "reproduzierbar" nicht gemeint.

Bitte versuche, das Beispiel auf das wesentliche Problem zu reduzieren. Du wirst sicher verstehen, dass ich mich ungern durch x Schaltflächen und 600 Zeilen Code durchwühlen möchte.
Bitte auch genau sagen, was in welcher Reihenfolge geklickt werden soll, damit man das Problem nachvollziehen kann.

Zitat:
Die Fehler treten aber nur im ersten Teil auf. Also bei nachträglichen Änderung bis Codezeile 480.

Das heißt jetzt was?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
JohnnyChoclate
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 18.02.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2014, 12:44     Titel:
  Antworten mit Zitat      
Ich glaube ich komme dem ganzen schön langsam auf die Spur...

Die Fehlermeldung lautet:

Warning: popupmenu control requires that Value be an integer within String range
Control will not be rendered until all of its parameter values are valid

und ich denke der Fehler liegt in diesem Codeabschnitt beim Abfragen des Popup's. In diesem Popup werden nur Zahlenwerte ausgewählt.

Code:
function nplatten_popup_Callback(hObject, eventdata, handles)
val = get(hObject,'Value');
string_list = get(hObject,'String');
handles.p = str2double(string_list{val});


Kann es sein das ich mit der Funktion cellstr die string_list ansprechen muss?
Private Nachricht senden Benutzer-Profile anzeigen
 
JohnnyChoclate
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 18.02.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2014, 12:50     Titel:
  Antworten mit Zitat      
Oder liegt es daran das ich die Werte erst belegen sollte?!


http://www.gomatlab.de/string-in-popupmenu-t1534.html
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.10.2014, 13:12     Titel:
  Antworten mit Zitat      
Hallo,

Mir scheint es so, als ob value irgendwann ungültig gesetzt würde.
Gib mal
Code:
ein und lasse das dann nochmal laufen.
Damit kannst du sehen, wo genau die Warnung herkommt.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
JohnnyChoclate
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 18.02.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2014, 14:57     Titel:
  Antworten mit Zitat      
Ich habe
Code:
gerade im command window und in der opening function eingefügt. Ich weiß leider nicht wo ich die Zeilenangaben ausgegeben bekomme? Question

Entschuligung für mein Unwissen! Rolling Eyes
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.10.2014, 15:15     Titel:
  Antworten mit Zitat      
Hallo,

wenn du den Code danach laufen lässt, dann sollte er an der Stelle stehenbleiben, wo das Problem auftritt.
Sicherheitshalber auch noch
Code:
im Command Window eingeben.

Diese Einstellungen kannst du auch unter HOME --> Editor --> Breakpoints anpassen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
JohnnyChoclate
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 18.02.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2014, 15:51     Titel:
  Antworten mit Zitat      
Danke Harald für die Antwort. Bin mir bloß nicht sicher ob ich mich freuen soll... Jetzt gehts so richtig ans eingemachte und ich steige voll aus! Crying or Very sad

Code:
Warning: popupmenu control requires that Value be an integer within String range
Control will not be rendered until all of its parameter values are valid
> In Vibwood_GUI_mit_EURO_5>einlesen_Callback at 542
  In gui_mainfcn at 95
  In Vibwood_GUI_mit_EURO_5 at 42
  In @(hObject,eventdata)Vibwood_GUI_mit_EURO_5('einlesen_Callback',hObject,eventdata,guidata(hObject))
  In openfigLegacy at 120
  In gui_mainfcn>local_openfig at 286
  In gui_mainfcn at 158
  In Vibwood_GUI_mit_EURO_5 at 42


Das ist die Fehlermeldung. Wobei die in Zeile 42 noch in der GUI Mainfunktion ist und ich die nicht verändert habe.... Denke also der Knackpunkt ist in Zeile 120 und der lautet:

Code:
for i=isvis_idx(:)'
    119% Focus figures in order; the final figure ends up on top.
    120 figure(fig(i));
end
 


Allerdings kann ich mit dieser Aussage nichts anfangen.... Ich denke für dich als Profi ist das auch nicht genug Information....
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.10.2014, 15:59     Titel:
  Antworten mit Zitat      
Hallo,

ich würde schon vermuten, dass es an selbstgeschriebenem Code liegt.

Was z.B. passieren kann: ein popupmenu wird mit 4 Strings belegt, und der 4. wird ausgewählt --> value = 4.
Nun wird das popupmenu mit neuen Strings gefüttert, aber nur noch 3. Die Auswahl 4 macht keinen Sinn mehr --> Warnung. Man sollte hier also unmittelbar vorher value anpassen.

Wie gesagt:
das entscheidende dürfte hier sein:
Zitat:
> In Vibwood_GUI_mit_EURO_5>einlesen_Callback at 542


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
JohnnyChoclate
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 20
Anmeldedatum: 18.02.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.10.2014, 16:14     Titel:
  Antworten mit Zitat      
Du hast schon recht der Entscheidende ist der Fehler 542, aber das Problem ist das der handle.popup nicht aufgeht und ich gar keine Auswahl treffen kann

Siehe Bild: Im Einen wird der Popup nicht geöffnet im Anderen schon.

Deine Idee mit der unterschiedlich großen Auswahl an Strings leuchtet mir ein!
Bei einem Durchlauf ist mir beim Breite popup aufgefallen, sobald beim nächsten mal die Reduzierung der Strings erfolgt, das tatsächlich der Fehler erscheint!!

Hast du einen Vorschlag wie ich den Fehler beheben kann!!

Vielen Dank Harald!!! Du bist ein Matlab GOTT !!!

Muss jetzt leider ins Wochenende abtauchen. Schönes Wochenende

ohne fehler.png
 Beschreibung:

Download
 Dateiname:  ohne fehler.png
 Dateigröße:  2.48 KB
 Heruntergeladen:  303 mal
mit fehler.png
 Beschreibung:

Download
 Dateiname:  mit fehler.png
 Dateigröße:  2.6 KB
 Heruntergeladen:  303 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.10.2014, 20:26     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
sobald beim nächsten mal die Reduzierung der Strings erfolgt, das tatsächlich der Fehler erscheint!!

Wenn die Anzahl der Strings verändert wird (oder besser unmittelbar zuvor), dann muss Value auf eine Ganzzahl zwischen 1 und der Anzahl der Strings gesetzt werden.
Code:

neuerInhalt = {'str1'; 'str2', ...};
set(handles.popup, 'Value', numel(neuerInhalt)) % <-- oder auch auf 1 setzen
set(handles.popup, 'String', neuerInhalt)
 

Grüße,
Harald
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 - 2024 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.