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

Callback ruft Callback auf?

 

null

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2008, 16:03     Titel: Callback ruft Callback auf?
  Antworten mit Zitat      
Hi!

Wie kann ich eine Callback-Funktion eine andere Callback aufrufen lassen?
D.h. ich habe z.B. drei Pushbuttons und möchte einen dazu benutzen die Callbacks der anderen beiden aufzurufen.
Mit dem Function Handle bin ich bisher nichts geworden und ein normaler Funktionsaufruf funktioniert irgendwie auch nicht.

Was könnte ich falsch machen?

Z.B. so gehts schonmal nicht!

Code:

h1 = @callback1;
h2 = @callback2;


function Callback1(hObject, eventdata, handles)
.
.
.
guidata(hObject, handles);

function Callback2(hObject, eventdata, handles)
.
.
.
guidata(hObject, handles);


function Callback3(hObject, eventdata, handles, h1, h2)
h1(hObject, eventdata, handles);
h2(hObject, eventdata, handles);
guidata(hObject, handles);

 


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 25.03.2008, 16:37     Titel:
  Antworten mit Zitat      
Hallo,
ich würde es nicht so kompliziert machen.
Lieber direkt die Funktion aufrufen
Code:

.
.
.
function Callback3(hObject, eventdata, handles)
Callback1(hObject, eventdata, handles);
Callback2(hObject, eventdata, handles);
guidata(hObject, handles);
 
Private Nachricht senden Benutzer-Profile anzeigen
 
null

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2008, 16:47     Titel:
  Antworten mit Zitat      
Ich werd bekloppt!! Shocked

Also ich hätte schwören können, dass ich genau diese Variante schon ausprobiert habe und sie nicht geklappt hat.

Aber just in diesem Moment funktioniert es wunderbar!
Wer weiß, was ich da gemacht habe.... Confused

Vielen Dank!!!!!
 
outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 25.03.2008, 18:51     Titel:
  Antworten mit Zitat      
Sei vorsichtig mit der Variable "hObject" diese beinhaltet den Handle des Object von dem der Callback gefeuert wurde. D.h. wenn Du einen Callback emulierst sollte der erster Paramter der Handle des Pushbuttons sein, den Du emulierst und das ist defitiv nicht hObject im Falle wenn Du den Callback us einem anderen Cllback aufrufst.


MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
rumus001
Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 04.04.14
Wohnort: NRW
Version: R2013a 32Bit
     Beitrag Verfasst am: 21.05.2014, 12:34     Titel:
  Antworten mit Zitat      
kann denn jemand verraten wie man richtigerweise einen callback in einem anderen callback aufruft?

ich habe folgenden Fehler wenn ich nach dem hier beschriebenem Beispiel vorgehe:
Code:

Function with duplicate name
"BUTTON_PLOT_Callback" cannot be
called.
 


ich habe einen BUTTON_PLOT_Callback der mir ein Plot erstellt.
Im Codeverlauf ist eine Variable die den Azimuth-Ansichtswinkel eines 3-dimensionalen Plots einstellt.

etwa so:
Code:


Am Anfang des
Code:
OpeningFunction
habe ich az als globale variable deklariert:
Code:
handles.az= get(handles.SLIDER_az,'Value');



Meine Idee war in der Call Back Funktion des Sliders die Call Back Funktion des
Plottens aufzrufen.


Das ganze soll den Azimuthwinkel des 3D Plots mener GUI über einen Slider einstellbar machen. Ich möchte aber nicht immer auf den Button Plot drücken um die Ansicht zu aktualiseren. Diese möchte bitteschön sich selbst nach dem Einstellen des Sliderwerts aktualiseren.
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 21.05.2014, 13:20     Titel:
  Antworten mit Zitat      
Hallo die Fehlermeldung sagt doch, dass in deinem Code (im gleichen Funktionscript(M-File)) zwei Funktionen definiert wurden, welche gleich heißen, was falsch ist.

Das wird im Matlab-Editor auch Rot Markiert (Siehe Seitenleiste). Wenn etwas rot markiert ist, dann wirft das Programm immer beim Ausführen gleich die Fehlermeldung.

Also wenn du den Callback im deinen Code nur aufrufen möchtest, dann ohne den Schlüsselwort FUNCTION, also nur Callback-Namen mit entsprechenden Übergabeparametern:
Code:

% Aufruf im Code (Parameter müssen auf deinen Code angepasst sein) z.B
BUTTON_PLOT_Callback(hObject, eventdata, handles)
%
% Bitte ohne das Schlüsselwort FUNCTION
% also nicht so aufrufen, denn dass ist Definition einer Funktion
% function BUTTON_PLOT_Callback(hObject, eventdata, handles)

 


Zuletzt bearbeitet von denny am 21.05.2014, 14:25, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
rumus001
Forum-Anfänger

Forum-Anfänger


Beiträge: 43
Anmeldedatum: 04.04.14
Wohnort: NRW
Version: R2013a 32Bit
     Beitrag Verfasst am: 21.05.2014, 13:28     Titel:
  Antworten mit Zitat      
Danke denny,

Ja ich konnte den Fehler schon interpretieren, ich muss dem Programmablauf eine Eindeutge Richtung vorgeben und kann nicht azwei gleiche Callback Funktionen haben. Habe mich nur etwas verwirrend wohl ausgedrückt sorry.

Auch die Botschaft des "outsider" seines Beitrags habe ich verstanden.

....ich probiere es erst mal so aus wie du es vorgeschlagen hast.

Gruß
Rumus
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.