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

Checkbox Haken entfernen

 

HHPatrick
Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 26.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.12.2012, 15:13     Titel: Checkbox Haken entfernen
  Antworten mit Zitat      
Moin, habe mir eine GUI mit mehreren Elementen gebaut die auch soweit funktioniert. Wenn ich jetzt bei der Checkbox den Haken wieder raus machen, kommt im Command Window eine ziemlich lange Fehlermeldung.

Darf man den Haken nicht einfach so wieder entfernen?
In der Callback funktion der Checkbox prüfe ich über get(...) ob der button ausgewählt wurde oder nicht.

Das hier ist der Fehler:

??? Error using ==> get
Invalid handle object.


Danach kommt noch eine Auflistung wo sich der Fehler befindet(Checkbox Callback, etc.)

Vielen Dank

Patrick
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 05.12.2012, 20:50     Titel:
  Antworten mit Zitat      
Vermutlich hast du einen falschen Handle eingetragen. Entweder im m-file (wie lautet da dein get(...) aufruf?) oder direkt im Callback in den Funktionen in Guide.

Geh doch bitte bei Matlab mal in den Debug-Modus. Dann kannst du direkt wenn der Fehler geworfen wird im m-file nachschauen, was falsch zugewiesen wurde.
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
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: 05.12.2012, 23:39     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
In der Callback funktion der Checkbox prüfe ich über get(...)

Das entscheidende fehlt - was steht statt der Punkte da?

Achte auch darauf, dass dieser Teil der Handles-Struktur nirgends überschrieben wird.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 26.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2012, 07:52     Titel:
  Antworten mit Zitat      
Das hier ist die komplette Fehlermeldung:

Code:
??? Error using ==> get
Invalid handle object.

Error in ==> TestGUI>Rueckgabewert1_Callback at 76
if get(handles.Rueckgabewert1,'String');

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

Error in ==> TestGUI at 17
    gui_mainfcn(gui_State, varargin{:});

Error in ==> @(hObject,eventdata)TestGUI('Rueckgabewert1_Callback',hObject,eventdata,guidata(hObject))

 
??? Error while evaluating uicontrol Callback
Private Nachricht senden Benutzer-Profile anzeigen
 
HHPatrick
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 26.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2012, 07:53     Titel:
  Antworten mit Zitat      
Und das der entsprechenende Programmcode


Code:
function Rueckgabewert1_Callback(hObject, eventdata, handles)
if get(handles.Rueckgabewert1,'String');
    handles.Rueckgabewert1 = 1;
else
    handles.Rueckgabewert1 = 0;
end
guidata(hObject, handles);
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: 10.12.2012, 09:30     Titel:
  Antworten mit Zitat      
Hallo,

was bezwecken diese Zeilen?
Code:
handles.Rueckgabewert1 = 1;


Du überschreibst damit das Handle auf das Feld und kannst deswegen danach nicht mehr darauf zugreifen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 26.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2012, 09:50     Titel:
  Antworten mit Zitat      
Harald hat Folgendes geschrieben:
Hallo,

was bezwecken diese Zeilen?
Code:
handles.Rueckgabewert1 = 1;


Du überschreibst damit das Handle auf das Feld und kannst deswegen danach nicht mehr darauf zugreifen.


Ich habe in der Main Function eine Schleife in der überprüft wird welchen Wert handles.Rueckgabewert1 hat. Also:

Code:
If handles.Rueckgabewert1 == 1
...
else
...
 


Achso ok, gibts denn eine Möglichkeit das zu ändern? Also das ich den Haken auch wieder rausnehmen kann und das handle dann überschrieben wird?

Schöne Grüße

Patrick
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: 10.12.2012, 10:01     Titel:
  Antworten mit Zitat      
Hallo,

nimm halt statt Rueckgabewert1 immer irgendetwas anderes. Wichtig ist, dass das nicht in anderer Form verwendet werden darf, also nicht z.B. Tag eines GUI-Elements sein darf.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 26.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2012, 10:22     Titel:
  Antworten mit Zitat      
Ah ok, jetzt hab ich den Fehler verstanden. Hab sie umbenannt und nun funktionierts wunderbar. Vielen Dank Very Happy

Schöne Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
HHPatrick
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 26.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2012, 13:55     Titel:
  Antworten mit Zitat      
Hallo Harald,

noch mal eine Frage zu Checkboxen.

Wenn ich die Checkbox nicht beachte, also keinen Haken setze, bekomme ich ein Fehler, weil der Rückgabewert nicht existiert. Bzw. die Variable handles.Rueckgabewert1, da die ja erst beim aktivieren der Checkbox erzeugt wird. Kann ich diese Variable vordefinieren bzw. den Checkboxen einen default Wert von 0 zuweisen? Wenn ja, wie?

Schöne Grüße

Patrick
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: 10.12.2012, 14:25     Titel:
  Antworten mit Zitat      
Hallo,

das kannst du in der ..._OpeningFcn setzen.
Aber natürlich wieder nicht mit RueckgabeWert1 sondern dem, durch das du das ersetzt hast.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 26.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2012, 14:55     Titel:
  Antworten mit Zitat      
Mit

handles.RueckgabewertTest=0;

? Da krieg ich dann folgende Fehlermeldung

??? Reference to non-existent field 'RueckgabewertTest'.

Gruß
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: 10.12.2012, 14:56     Titel:
  Antworten mit Zitat      
Hallo,

bekommst du das in der kopierten oder eine andere Zeile?
Du musst sicherstellen, dass nach dieser Zeile wieder das
Code:
guidata(hObject, handles);
kommt.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 48
Anmeldedatum: 26.10.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2012, 15:07     Titel:
  Antworten mit Zitat      
Ok jetzt gehts, hatte

Code:
guidata(hObject, handles);


vor dem definieren der Variablen stehen Very Happy . Vielen Dank
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.