|
|
Handles zwischen GUIs übergeben |
|
daniatic |
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 20.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.08.2010, 17:56
Titel: Handles zwischen GUIs übergeben
|
|
Hallo
ich bin schon den ganzen Tag auf der Suche nach einer Lösung für mein Problem. Konnte aber bisher nichts finden.
Mein Problem:
Ich habe ein GUI geschrieben(ohne Guide), das aus 3 Figures besteht. Insgesamt sind es 4 m-files. Jeweils ein m-file für die einzelnen figures und ein m-file was die 3 m-files startet und somit alle figures erscheinen lässt. Wie kann ich nun erreichen dass die 3 figures gegenseitig auf ihre handles zugreifen können?
Ich möchte das elegant lösen und nicht mit globalen variablen oder findobj.
Mit setappdata/getappdata habe ich probiert die handles in die jeweilgen figures zu schreiben und so auf sie zuzugreifen. Jedoch klappt das auch nicht.
Vielen Dank im Voraus
Gruß Daniel
|
|
|
|
|
yankemen |
Forum-Century
|
|
Beiträge: 104
|
|
|
|
Anmeldedatum: 14.04.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 32: 2008a & 2010a
|
|
|
|
|
|
Verfasst am: 20.08.2010, 08:47
Titel:
|
|
Moin Daniel,
schau doch mal hier:
http://www.gomatlab.de/2-guis-werte-uebergeben-t4433.html
(habe in der Forumssuche "gui handles übergeben" eingetippt.)
HTH,
yankemen
_________________
Gibt es ein Ist und ein Wunsch-Soll? Gibt es Beispiele zum Durchprobieren? Wenn selbstgeschriebene Funktionen aufgerufen werden: können sie bitte angehangen werden? Gab es Fehlermeldungen?
Stimmen die Werte, wenn der Debugger mit Haltepunkten etc. eingesetzt wird?
Danke
|
|
|
daniatic |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 20.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2010, 09:32
Titel:
|
|
Den Thread hatte ich auch schon gefunden, aber da waren meine Nerven wohl schon am Ende. Ich bin dabei es so zu probieren, nur habe ich noch ein paar Fragen.
Wo werden die Daten jetzt hingespeicher? Anders gefragt was oder wo ist 0?
Ich habe die GUI nicht über GUIDE erstellt, sondern manuell. Jetzt habe ich sehr viele manuell benannt handles. Muss ich die jetzt alle über
einzeln abspeichern? Oder gibt es dafür einen anderen weg?
Zum Verständnis:
In der anderen GUI kann ich dann über
auf das handle zugreifen?
|
|
|
yankemen |
Forum-Century
|
|
Beiträge: 104
|
|
|
|
Anmeldedatum: 14.04.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 32: 2008a & 2010a
|
|
|
|
|
|
Verfasst am: 20.08.2010, 10:02
Titel:
|
|
Moin Daniel,
ich habe den anderen Thread nicht ausprobiert und Du hast eine Frage zum manuell erstellten. Was aber von der Funktionalität dann wohl eigentlich doch das gleiche ist.
setappdata(0,...) beinhaltet, wie die Hilfe sagt, an erster Stelle das Handle der Figur.
Das ist bei eigentlich allen Funktionen, denen man ein Handle übergeben muss, der Fall. Zuerst das Handle, dann der Rest an Parametern.
0 wird wohl das handle der ersten Gui sein. Ich vermute weiterhin, dass Du nur die eine handles-Struktur übergeben musst, was dann nur eine Übergabe bedeutet. Schließlich wird ja empfehlenswerterweise alles in jeder Gui im eigenen handles gespeichert.
FF,
yankemen
_________________
Gibt es ein Ist und ein Wunsch-Soll? Gibt es Beispiele zum Durchprobieren? Wenn selbstgeschriebene Funktionen aufgerufen werden: können sie bitte angehangen werden? Gab es Fehlermeldungen?
Stimmen die Werte, wenn der Debugger mit Haltepunkten etc. eingesetzt wird?
Danke
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 20.08.2010, 10:17
Titel:
|
|
Hallo
Null steht für ROOT, also die Konsole. Damit alles was dort abgespeichert, ist global verfügbar.
|
|
|
daniatic |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 20.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2010, 10:34
Titel:
|
|
Ok vielen Dank für die Hilfe! Mit setappdata(0,'.. funktioniert es jetzt soweit.
Wenn ich das richtig verstanden habe, muss ich die handles alle manuell in eine structure speicher um sie dann zu übergeben. Die handles structure mit allen handles wird nur bei guide automatisch erstellt, richtig?
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 20.08.2010, 10:50
Titel:
|
|
Hallo,
Jain, GUIDE generiert automatisch die M-Files, dort wird an OpeningFcn
dann die Handle-Struktur übergeben.
Man kann mit GUIDE auch nur Oberfläche erstellen
und dann eigene Scripts schreiben. Die Handles bekommt man dann über
Aber, da je über Scripts die Oberfläche konstruierst, dann kannst auch gleich die handles dort aufsammeln
|
|
|
daniatic |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 20.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2010, 11:03
Titel:
|
|
Zitat: |
Aber, da je über Scripts die Oberfläche konstruierst, dann kannst auch gleich die handles dort aufsammeln |
Ja das mache ich gerade auch, aber alles manuell.
Ich erstelle mit uicontrol und packe dann den handle in eine structure und speichere am ende die structure mit setappdata ab.
Ungefähr so:
Geht das auch automatisch? Da bei 30 Elemente die Tiparbeit etwas nervig wird.
|
|
|
yankemen |
Forum-Century
|
|
Beiträge: 104
|
|
|
|
Anmeldedatum: 14.04.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: 32: 2008a & 2010a
|
|
|
|
|
|
Verfasst am: 20.08.2010, 11:39
Titel:
|
|
Nö, automatisch geht das nicht.
Du musst am Ende jeder Callback-Funktion auch selbst das wichtige guidata(hObject, eventdata); einfügen.
Ich würde allerdings es so vereinbaren:
Das extra-Anlegen halte ich für überflüssig.
Ciao,
yankemen
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 20.08.2010, 12:13
Titel:
|
|
daniatic hat Folgendes geschrieben: |
Ja das mache ich gerade auch, aber alles manuell.
Ich erstelle mit uicontrol und packe dann den handle in eine structure und speichere am ende die structure mit setappdata ab.
Geht das auch automatisch? Da bei 30 Elemente die Tiparbeit etwas nervig wird. |
du kannst auch GUIHANDLES verwenden, aber dazu muss jedem GUI-Objekt Tags vergeben, sonst findest du deine Handles in Struktur-Gestrüpp nicht mehr.
So oder so wirst wahrscheinlich 30 mal tippen müssen.
Wenn bei dir die Namensgebung konstant ist,
dann kannst du doch SUCHEN und ERSETZEN von "handle_" auf "handles." machen?
|
|
|
daniatic |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 20.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2010, 12:24
Titel:
|
|
Danke; so ist das schon weniger arbeit:
Zitat: |
Du musst am Ende jeder Callback-Funktion auch selbst das wichtige guidata(hObject, eventdata); einfügen. |
Wieso? Ich dachte ich arbeite hier mit appdata und nicht mit guidata.
Ich habe nach jedem callback jetzt setappdata stehen.
|
|
|
denny |
Supporter
|
|
Beiträge: 3.853
|
|
|
|
Anmeldedatum: 14.02.08
|
|
|
|
Wohnort: Ulm
|
|
|
|
Version: R2012b
|
|
|
|
|
|
Verfasst am: 20.08.2010, 12:52
Titel:
|
|
daniatic hat Folgendes geschrieben: |
Zitat: |
Du musst am Ende jeder Callback-Funktion auch selbst das wichtige guidata(hObject, eventdata); einfügen. |
Wieso? Ich dachte ich arbeite hier mit appdata und nicht mit guidata.
Ich habe nach jedem callback jetzt setappdata stehen. |
Genau bei dir muss SETAPPDATA stehen
|
|
|
daniatic |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 20.07.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.08.2010, 13:07
Titel:
|
|
Ok vielen Dank!
Alle Fragen sind beantwortet.
|
|
|
|
|
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 - 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.
|
|