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

Wann muss man guidata eigentlich verwenden und wann nicht?

 

Chris87

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2009, 09:37     Titel: Wann muss man guidata eigentlich verwenden und wann nicht?
  Antworten mit Zitat      
Hallo Matlab-Freunde!
Ich programmiere zur Zeit an einer GUI. Mache das zum ersten Mal. Anfangs habe ich Variablen, die ich in einer Anderen Funktion wieder benötigt habe folgendermaßen in der handles-Struktur abgespeichert:
Code:
handles.variablenname=xy;
guidata(hObject, handles);

Meine Frage ist nun, wann ich den Befehl guidata überhaupt brauche und wann nicht? Ich habe nämlich festgestellt, dass es auch ohne die letzte Zeile funktioniert...
Es wäre nett, wenn mir jemand den Sinn und die Verwendung von guidata erklären könnte, da ich jetzt nicht weiß, ob ich da z.B. zusätzlich Daten "sinnlos" speichere?!


Dagnabit
Forum-Century

Forum-Century


Beiträge: 244
Anmeldedatum: 23.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.05.2009, 09:52     Titel:
  Antworten mit Zitat      
Servus Chris

Wenn Du innerhalb derselben Funktion(createFcn, Callback,...) "handles.variablenname" definierst und wieder darauf zugreifst, benötigst Du kein Update der structure "handles" mittels guidata.

Wenn Du die Variable hingegen in einer anderen Funktion benötigst (z.B. Einlesen eines Wertes in "edit1"-- Berechnung eines neuen Wertes-- Ausgabe des neuen Wertes in edit2) musst Du diese sehr wohl speichern (mit guidata).

Wann immer Du Änderungen in "handles" vornimmst, musst Du mit guidata das handles-structure neu speichern.

Zitat:
Ich habe nämlich festgestellt, dass es auch ohne die letzte Zeile funktioniert...

Das kann ich mir nur dadurch erklären, dass Du "handles.variablenname" zu dem Zeitpunkt Deiner "Feststellung" schon existitiert hat. "handles.variablenname" wird aber nicht aktuellen Wert gehabt haben?



Eine Sache, die ich in diesem Zusammenhang immer wieder erwähne:
Verwende doch die Befehle

Code:

_________________

lg
Martin
Private Nachricht senden Benutzer-Profile anzeigen
 
Chris87

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.05.2009, 15:18     Titel: Danke!
  Antworten mit Zitat      
Hey super! Vielen Dank für deine Hilfe! Jetzt ist mir das auch mal klar Smile
 
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.