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

workspace von handles nach Befehl guidata(hObject,handles)

 

Ausmilkel
Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.04.2011, 16:27     Titel: workspace von handles nach Befehl guidata(hObject,handles)
  Antworten mit Zitat      
Hallo,

Ich habe mir mittels Guide ein GUI erstellen lassen.
Eine Variable kann ich mir mittels
Code:

handles.var_name = 2;
guidata(hObject,handles);
 

durch die GUI speichern lassen.
In einer anderen GUI Funktion kann ich dann den Wert wieder verwenden
Code:

function push_add_sensor_type_Callback(hObject, eventdata, handles)

test = handles.var_name;
 


Woher weiss die Callback Funktion in welchen workspace handles vorher mittels guidata gespeichert wurde?

Jetzt zu meinem eigentlichen Problem: Ich habe in der GUI eine weitere callback Funktion die durch ein Java objekt aufgerufen wird. Hier die Definition des Java-objekts (Habe ein Java Objekt verwendet, da Matlab keinen vertikalen Scrollbalken in dropdown Objekt zur Verfügung stellt):
Code:

handles.test = uicomponent('style','JComboBox',handles.list_sensor_types,'editable',true,'MaximumRowCount',5,'Position',[110,500,100,20]); % editable drop-down
                         
handles.testh = handle(handles.test,'CallbackProperties');  % aufgrund von Speicherperformance ...
set(handles.testh, 'ActionPerformedCallback',@drop_list_Callback); % bei Aktion im java Objekt Aufruf von Callback Funktion drop_list_Callback

 


In dieser übergebe ich auch handles, aber ist dann bei Aufruf nicht vorhanden.
Code:

function drop_list_Callback(hObject, eventdata, handles)

var2 = handles.var_name; % funktioniert nicht !!!!!!!!!!!!!!!1
 

Habe das im debug modus getestet.
Wieso funktioniert das nicht?

Viele Grüße,
Robert
Private Nachricht senden Benutzer-Profile anzeigen


Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 28.04.2011, 23:30     Titel:
  Antworten mit Zitat      
Hey Robert,
das handles Struct wird von GUIDE erstellt. Standardmäßig ist bei jedem Callback, also wenn du ein uicontrol etc manuell erstellst, ohne dass du noch zusätzlich Variablen übergibst, nur das Object und eventdata enthalten (bei Java das gleiche). Der einfachste Weg wäre folgender:
Code:

set(handles.testh, 'ActionPerformedCallback',{@drop_list_Callback,DeinFigureHandle});

function drop_list_Callback(hObject, eventdata, fig)
handles = guidata(fig);
% irgendwas machen
guidata(fig,handles)
 


MfG Marco
Private Nachricht senden Benutzer-Profile anzeigen
 
Ausmilkel
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 32
Anmeldedatum: 11.08.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.04.2011, 09:39     Titel:
  Antworten mit Zitat      
Hallo Marco,

was ist "fig" in dem code den du mir geschickt hast?

Viele Grüße,
Robert
Private Nachricht senden Benutzer-Profile anzeigen
 
Marco H.
Forum-Guru

Forum-Guru


Beiträge: 404
Anmeldedatum: 12.11.10
Wohnort: Dortmund
Version: 2010a/2012b
     Beitrag Verfasst am: 29.04.2011, 09:49     Titel:
  Antworten mit Zitat      
Hey,

fig ist = DeinFigureHandle -> {@drop_list_Callback,DeinFigureHandle} welches du beim definieren des CBs hinzufügen solltest...

Ich hoffe es wird so deutlich. Mach doch einfach im drop_list_Callback get(fig). Dann siehst du es.

MfG Marco
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.