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

Wertabfrage in Gui

 

Frost34
Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 09.03.10
Wohnort: ---
Version: R2009a
     Beitrag Verfasst am: 22.03.2010, 11:55     Titel: Wertabfrage in Gui
  Antworten mit Zitat      
Hallo,

ich habe ein GUI-Fenster erstellt, in welchem zwei Werte die vom Benutzer in Edit Textfelder eingetragen werden müssen, abgefragt werden und mit Berechneten Werten verglichen Werden müssen. Der Benutzer soll insgesamt fünfmal einen falschen Wert eingeben können und dann soll der Weiter Button aktiviert werden.

Das Gui-Fenster wird über ein anderes geöffnet.

Wenn ich das Fenster öffne und versuche die Werte abzufragen kommt immer ein Fehlermeldung. Ich kann jedoch meinen Fehler nicht finden.

Folgender Fehler wird mir angezeigt.

Code:

??? Error while evaluating uicontrol Callback

??? Attempt to reference field of non-structure array.

Error in ==> aufgabe_1_2>pb_check_Callback at 153
g=get(handles.ed_tg,'String');

Error in ==> gui_mainfcn at 96
        feval(varargin{:});

Error in ==> aufgabe_1_2 at 42
    gui_mainfcn(gui_State, varargin{:});

Error in ==> @(hObject,eventdata)aufgabe_1_2('pb_check_Callback',hObject,eventdata,guidata(hObject))

 
??? Error while evaluating uicontrol Callback


Im Anhang befindet sich der M-File.

Über eure hilfe würe ich mich freuen!

aufgabe_1_2.fig
 Beschreibung:

Download
 Dateiname:  aufgabe_1_2.fig
 Dateigröße:  3.61 KB
 Heruntergeladen:  442 mal
aufgabe_1_2.m
 Beschreibung:

Download
 Dateiname:  aufgabe_1_2.m
 Dateigröße:  6.46 KB
 Heruntergeladen:  499 mal
Private Nachricht senden Benutzer-Profile anzeigen


Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.03.2010, 15:02     Titel:
  Antworten mit Zitat      
Würde dir gern helfen...aber ich kann keine Skript-Files u.ä. runterladen...vielleicht kannst Du den relevanten Code vom m-File einfach mal posten...

Gruß,
Zenon
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 22.03.2010, 15:33     Titel:
  Antworten mit Zitat      
Hallo,

dein Fehler liegt daran, dass du wahrscheinlich fig-File durchs Klicken aufmachst.
Du musst aber M-File ausführen. Entweder tippst in der Konsole aufgabe_1_2 oder Rechtsklick auf M-File und Run File wählen.

PS: Habe nicht ganz verstanden, startest dieses Fenster aus anderem GUI?
Wie startest du das?

PS2: Jedenfalls kannst du diesen Fehler reproduzieren, wenn du nur fig-file anklickst.
Private Nachricht senden Benutzer-Profile anzeigen
 
Frost34
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 09.03.10
Wohnort: ---
Version: R2009a
     Beitrag Verfasst am: 22.03.2010, 19:39     Titel:
  Antworten mit Zitat      
Ich habe alle beshriebenen Möglichkeiten die .fig zu öffnen bereits ausgeführt.

Ich öffne die GUI durch einen Pushbutton in einer anderen GUI.

Hier ist der relevante Code:

Code:


% --- Executes on button press in pb_check.
function pb_check_Callback(hObject, eventdata, handles)
% hObject    handle to pb_check (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

zaehler_1=evalin('base','z1');
zaehler_2=evalin('base','z2');

g=get(handles.ed_tg,'String');
u=get(handles.ed_tu,'String');

tg=str2double(g);
tu=str2double(u);

tgmin=evalin('base','tgmin');
tgmax=evalin('base','tgmax');
tumin=evalin('base','tumin');
tumax=evalin('base','tumax');

if (tg >= tgmin) && (tg <= tgmax)
   
  zaehler_1=5;
  set(handles.ed_tg,'Color','green');
  assignin('base','z1',zaehler_1);

else
   
    zaehler_1=zaehler_1+1;
    set(handles.ed_tg,'ForegroundColor','red');
    assignin('base','z1',zaehler_1);
       
end

if (tu >= tumin) && (tu <= tumax)
 
  zaehler_2=5;
  set(handles.ed_tu,'Color','green');
  assignin('base','z2',zaehler_2);

else
   
    zaehler_2=zaehler_1+1;
    set(handles.ed_tu,'ForegroundColor','red');
    assignin('base','z2',zaehler_2);
   
end

if (zaehler_1 == 5) && (zaehler_2 == 5)
   
  set(handles.pb_forward,'Enable','on')

end

 


Die Werte die aus dem Workspace ausgelesen werden, stehen auch dort, das habe ich mehrfach kontrolliert.
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 22.03.2010, 22:46     Titel:
  Antworten mit Zitat      
Frost34 hat Folgendes geschrieben:

Ich öffne die GUI durch einen Pushbutton in einer anderen GUI.



Bitte für diese Stelle auch Code posten
Private Nachricht senden Benutzer-Profile anzeigen
 
Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.03.2010, 09:21     Titel:
  Antworten mit Zitat      
ed_tg bzw. ed_tu liegen aber auch in der zweiten sich öffnenden GUI, zu der der Code gehört, und nicht in der aufrufenden GUI (kann diese blöden Files nicht runterladen)?!

Die zweite GUI kennt die handles der ersten nicht ohne weiteres, die müssen erst übergeben werden.
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 23.03.2010, 10:40     Titel:
  Antworten mit Zitat      
Hallo,

den Code habe ich runtergeladen, warum bei dir, Zenon, runterladen nicht funktioniert, verstehe ich nicht.

Habe ich ausgeführt, es startet alleine ohne Probleme.
aber dein Code enthält noch ein Paar Fehler.
Code:

if (tg >= tgmin) && (tg <= tgmax)
   
  zaehler_1=5;
 %
  % Bei Grün hast du statt ForegroundColor nur Color rumstehen
  set(handles.ed_tg,'ForegroundColor','green');
  assignin('base','z1',zaehler_1);

else
   
    zaehler_1=zaehler_1+1;
    set(handles.ed_tg,'ForegroundColor','red');
    assignin('base','z1',zaehler_1);
       
end
 



Wie gesagt der Fehler steckt wohl an der Stelle, wo du dieses GUI aus anderem GUI aufrufst
Private Nachricht senden Benutzer-Profile anzeigen
 
Frost34
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 09.03.10
Wohnort: ---
Version: R2009a
     Beitrag Verfasst am: 23.03.2010, 11:07     Titel:
  Antworten mit Zitat      
Die Gui hat bis ich die Abfrage eingebaut hab einwandfrei funktioniert.

Die Handles befinden sich in der GUI und nicht in der in welcher ich sie Aufrufe.

Ich öffne die GUI wi efolgt.

Code:

 open aufgabe_1_2.fig;
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Zenon
Forum-Guru

Forum-Guru


Beiträge: 292
Anmeldedatum: 20.01.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.03.2010, 11:19     Titel:
  Antworten mit Zitat      
Ersetz das mal durch

Code:

hFaufgabe_1_2 = aufgabe_1_2;
waitfor(hFaufgabe_1_2);
 


Bei der Variante mit open werden die handles nicht bekannt gemacht, da die OpeningFcn nicht ausgeführt wird. Bei meiner Variante wird das m-File geladen und damit auch die handles bekannt gemacht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Frost34
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 33
Anmeldedatum: 09.03.10
Wohnort: ---
Version: R2009a
     Beitrag Verfasst am: 23.03.2010, 11:47     Titel:
  Antworten mit Zitat      
Danke das hat mir schonmal sehr geholfen. Der Fehler ist schon mal weg.
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.