Verfasst am: 26.03.2015, 11:22
Titel: Objekterzeugung auslagern-Zugriff auf Callbacks
Hallo zusammen,
ich habe ohne GUIDE ein HauptGUI erstellt. Die Objekterzeugung möchte ich gern auslagern, weil es sehr viele Objekte sind und der Code damit unübersichtlich wirkt. Außerdem benötige ich in mehreren GUIs genau diese Objekte. Ich möchte sie also auch wiederverwerten.
Dazu habe ich eine Funktion geschrieben und an diese dann handles übergeben. Jetzt habe ich allerdings das Problem mit den erzeugten Callbacks in der ausgelagerten Funktion
Die erzeugten Objekte haben einen gemeinen Callback (update_callback) auf den ich dann beim triggern zugreife, dieser Callback befindet sich in dem HauptGUI.
HauptGUI:
Code:
handles = CreateObjects(handles);
... function update_callback(handles) % update irgendetwas
Verfasst am: 26.03.2015, 13:32
Titel: Re: Objekterzeugung auslagern-Zugriff auf Callbacks
Hallo stealth_mx,
Wenn ich es richtig verstehe, definierst Du den Callback innerhalb einer eigenen Funktion, in der die Unterfunktion des Haupt-GUIs @update_Callback aber nicht sichtbar ist. Dann muss diese Callback von der Main-GUI als Variable mitgeliefert werden:
Es ist eine Fehlerquelle, den handles-Struct als Input eines Callbacks zu definieren, wenn er nach der Definition noch geändert wird. Deshalb habe ich handles per GUIDATA am Start des Callbacks neu aus den ApplicationData geholt.
Hallo, danke für die Antwort, das GUIDATA steckt bei mir auch drin, genau an der Position, wo sie hingehört, habe es leider nur vergessen mit reinzusetzen.
Bedeutet das man jeden Callback dann immer so mitziehen muss? Wenn ich also beispielsweise 10 Callbacks so definiert hätte. (ob das ganze dann Sinn hätte sei dahingestellt)
Bedeutet das man jeden Callback dann immer so mitziehen muss?
Das verstehe ich nicht. Was ist "mitziehen"?
Zitat:
Wenn ich also beispielsweise 10 Callbacks so definiert hätte. (ob das ganze dann Sinn hätte sei dahingestellt)
Ja? Was ist dann, wenn Du 10 Callbacks so definiert hättest?
Du kannst auch das Objekt in der externen Funktion erzeugen, den Callback erst mal leer lassen und ihn erst in der Hauptfunktion in das Objekt schreiben.
Hi, mit dem mitziehen meine ich, dass ich händisch immer alle Callbacks übergeben muss. Gibt es einen allgemeinen, ich sage mal "dynamischen" Weg? Also nur eine Übergabeparameter
Damit meine ich das ich im Endeffekt nur einen "allgemeinen" Übergabeparameter habe obwohl ich z.B. 10 verschiedene Callbacks so definiere?
Ich glaube, dass es jedoch nicht funktionieren wird. Ich erstelle die Callbacks in der Hauptfunktion, muss also auch jeden Callback dann an die Nebenfunktion übergeben und dort den erstellten Objekten zuweisen.
Ich denke ich werde sowas nie brauchen. Ist reines Interesse das zu wissen.
Ich kann mir unter einem "allgemeinen" Übergabe-Parameter nichts vorstellen. Du könntest danürlich die 10 Callbacks zu einem Vektor zusammenfassen. Aber das sind ja im gewissen Sinn immer noch 10 Function Handles.
Gruß, Jan
Einstellungen und Berechtigungen
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
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.