|
|
handles im callback übergeben: brauche struct2str oder so.. |
|
Christian2 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.07.2008, 17:29
Titel: handles im callback übergeben: brauche struct2str oder so..
|
|
Ich möchte, daß bei einem Klick in einem Kontextmenü die Funktion "Machwas" aufgerufen wird, die als Parameter u.a. die handles-Struktur übergeben bekommen soll.
Das Problem ist nun, daß ich mir für den Callback-Aufruf einen String zusammenbasteln muß:
So müßte natürlich eine struct-Struktur in einen String umgewandelt werden. Dementsprechend beschwert sich Malab: "??? Error using ==> horzcat The following error occurred converting from char to struct: Error using ==> struct Conversion to struct from char is not possible."
Ich bräuchte also einen Befehl struct2str oder so ähnlich, den es aber leider nicht zu geben scheint.
Ich wäre für einen Tipp sehr dankbar.
|
|
|
|
|
dib0r |
Forum-Guru
|
|
Beiträge: 413
|
|
|
|
Anmeldedatum: 09.05.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 31.07.2008, 22:04
Titel:
|
|
|
|
Christian2 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.08.2008, 12:22
Titel: bin ein bißchen weiter
|
|
Vielen Dank für den Tipp. Bin ein bißchen weitergekommen dadurch.
Ich habe folgendes ausprobiert:
Dies gibt die Fehlermeldung: "??? Error using ==> uimenu Value must be a string, a function handle, or a cell array containing string or function handle".
Trotz der Fehlermeldung wird die Funktion "Machwas" aber aufgerufen, und zwar ohne, daß ich auf das Kontextmenü geklickt hätte, sondern einfach von selbst.
Außerdem habe ich probiert:
Dies gibt dann die Fehlermeldung: "Error using ==>Machwas>@()Machwas(handles,'option') Too many input arguments." - und es passiert nichts.
Wäre froh, wenn mir noch einmal jemand weiterhelfen könnte.
|
|
|
dib0r |
Forum-Guru
|
|
Beiträge: 413
|
|
|
|
Anmeldedatum: 09.05.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.08.2008, 12:59
Titel:
|
|
Hallo,
versuch mal vor fun geschwungene Klammern zu setzen und die runden wegzulassen:
Allerdings musst du dann auch deine Funktion fun umschreiben!
oder so ähnlich.
Denn in Callback-Funktionen sind die ersten zwei Übergabewerte hObject und eventdata - ein handle zum aktuellen Callback Objekt und ein zusätzliches Datenfeld.
Funktionen kannst du natürlich auch ganz normal mit function deklarieren:
und dann über
aber das scheint dir ja irgendwie nicht zu gefallen -.-
MfG
|
|
|
Christian2 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.08.2008, 13:21
Titel: Super!
|
|
Super, vielen Dank! Das waren die entscheidenden Hinweise. Es funktioniert jetzt. Der Vollständigkeit halber noch einmal die Version, die funktioniert:
Beim Aufruf des Callbacks werden also als erstes hObject und eventdata übergeben und dann erst meine eigenen Übergabevariablen. Deswegen hat er sich auch über "too many input arguments" beschwert, weil ja vier an den function handle übergeben wurden, der jedoch nur zwei erwartete.
Auch die geschweiften Klammern statt den runden sind offenbar notwendig.
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|