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 Function - OOP

 

joekey
Forum-Century

Forum-Century


Beiträge: 169
Anmeldedatum: 03.04.08
Wohnort: Wien
Version: 2011b
     Beitrag Verfasst am: 29.05.2008, 21:17     Titel: Callback Function - OOP
  Antworten mit Zitat      
Hallo,

ich versuche fogendes Problem zu lösen: ich habe eine Klasse Button die einen Zustand hat (0/1) und eine Klasse Bulb die von dem Zustand des Buttons abhängig ist. Also wenn der Zustand von dem Button 0=ausgeschaltet ist, ist der Bulb-Zustand auch 0 respektive 'DARK'. Die beschriebene Situation is mithilfe der Klassen und Events in Matalb2008a umgesetzt (siehe Code). Mein Problem ist, dass ich die Callback Methode von der Klasse Bulb nicht ansteuern kann. Momentan geschied es folgendermaßen (diese Lösung funktioniert aber leider nicht Sad ):
addlistener(obj,'toggledState', @onButtonChange);
Wie kann ich aber eine andere Klasse, wo sich die gerufene Methode befindet, referenzieren? Und wie übergebe ich das Handle zu dem Objekt?

Bin dankbar für jeden Hinweiss.

LG Joe

Code:
classdef cButton < handle

   properties
       state
   end
   events
      toggledState
   end
   methods
       function obj = cButton(state)
          obj.state = state;
          assignin('base', 'bulb', cBulb(state));
          addlistener(obj,'toggledState', @onButtonChange); %referenz zu Callback Funktion
       end
       function changeState(obj,newState)
          if newState ~= obj.state
              notify(obj,'toggledState');
              obj.state = newState;
          end
       end
   end
end
 


Code:
classdef cBulb < handle

    properties
        state
    end
    methods
        function obj = cBulb(butState)
            if butState == 0
                obj.state = 'DARK';
                obj.dispBulbStand();
            else
                obj.stand = 'LIGHT';
                obj.dispBulbState();
            end
        end
        function onButtonChange()   % Callback Funktion
            % change bulb state
            obj.dispBulbState();
        end
        function dispBulbStand(obj)
            disp(obj.state);
        end
    end
end
 
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.