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

Zugriff auf aktuelle handles Struktur in Callbacks

 

Wimme89

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2015, 13:02     Titel: Zugriff auf aktuelle handles Struktur in Callbacks
  Antworten mit Zitat      
Hallo!

Zu diesem Thema gibt es so einiges im Internet zu finden, aber so richtig kapiert habe ich es immer noch nicht: Callbacks in GUIs (mit GUIDE).

Guide erstellt ja für alle GUI-Elemente eine Callback-Function, die folgende Parameter übergeben bekommt:
Code:
(hObject, eventdata, handles)


Dabei ist "handles", sofern immer mit guidata aktualisiert, immer das aktuelle handles-struct. D.h., "derjenige", der die Klicks mit den Funktionen verbindet, übergibt immer die aktuellen Daten.

Wenn ich jetzt aber innerhalb eines von GUIDE erstellten Callbacks selbst einen Callback registriere, z.B. so
Code:
set(handles.eineAxes, 'ButtonDownFcn', {@myCallbackFunction,handles});


Dann wird "myCallbackFunction" immer mit "handles" mit dem Stand aufgerufen, den "handles" bei der Registrierung hatte.

Das kann gut sein, aber es kann auch ziemlich nerven, weil ich nicht an die gesamten, aktuellen Daten rankomme.
Wie schaffe ich letzteres?


Ich hoffe, meine Ausführungen waren verständlich und mein Problem ist deutlich geworden!
Wimme


Harald
Forum-Meister

Forum-Meister


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

nur das Handle auf die GUI übergeben, standardmäßig
Code:
set(handles.eineAxes, 'ButtonDownFcn', {@myCallbackFunction,handles.figure1});


und dann in der Callback-Funktion
Code:
handles = guidata( <Name des Eingabearguments> );


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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2015, 14:38     Titel:
  Antworten mit Zitat      
Hey!

Danke, das funktioniert, super!
Kannst du vielleicht auch noch ein paar Worte darüber verlieren, warum das so funktioniert und nicht anders?

Danke!
 
Harald
Forum-Meister

Forum-Meister


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

handles ist eine Variable, die die Daten der GUI zu einem bestimmten Zeitpunkt enthält und nicht weiter aktualisiert wird.
Wenn man aktuelle Informationen haben möchte, bleibt wirklich nichts anderes als sie "frisch" zu holen, und mein Vorschlag dabei war über das "Haupt-Handle" zu gehen.

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.