|
|
Problem mit evalin bei mehreren GUIs |
|
Robert |
Forum-Fortgeschrittener
|
|
Beiträge: 60
|
|
|
|
Anmeldedatum: 14.11.08
|
|
|
|
Wohnort: Istanbul
|
|
|
|
Version: 2010b
|
|
|
|
|
|
Verfasst am: 07.04.2010, 14:43
Titel: Problem mit evalin bei mehreren GUIs
|
|
Hallo miteinander,
ich habe nun schon seit mehreren Stunden ein (anfangs) seltsames Problem auf dessen Ursache ich nun wahrscheinlich gestoßen bin. --> Der Eintrag hier soll der Verifizierung meiner Theorie dienen.
Ich habe ein Programm mit mehreren GUIs. Zwischen diesen GUIs werden mehrere Variablen ausgetauscht. Dazu schreibe ich in der ersten Oberfläche beispielsweise
und in der zweiten dann
Danach verändere ich in der zweiten GUI den Wert der Variablen P_rated. Wechsle ich nachher zurück in die erste GUI, steht in der Variablen P_rated ebenfalls der veränderte Wert, was ich aber nicht will
Meine Vermutung ist also, dass bei Aufruf von evalin, die damit erzeugte (hier überschriebene) Variable in allen GUIs zur Verfügung steht. Stimmt das? Bisher dachte ich, dass die Variable nur im jeweiligen Fenster zur Verfügung steht.
LG
Robert
|
|
|
|
|
Zenon |
Forum-Guru
|
|
Beiträge: 292
|
|
|
|
Anmeldedatum: 20.01.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.04.2010, 15:00
Titel:
|
|
Zur Umsetzung der Kommunikation zwischen den GUIs würde ich folgende Zeilen empfehlen:
Zu deinem Phänomen...da nicht globale Variablen ja nicht mal in einer anderen Funktion bekannt sind geschweige denn andern GUIs... ...dann würde evalin ja eine globale Variable erschaffen...das kann ich nicht recht glauben und hätte gerne Details...
|
|
|
Robert |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 60
|
|
|
|
Anmeldedatum: 14.11.08
|
|
|
|
Wohnort: Istanbul
|
|
|
|
Version: 2010b
|
|
|
|
|
|
Verfasst am: 11.04.2010, 11:22
Titel:
|
|
|
|
|
Hallo Zenon,
danke für deine Antwort. Ich werde die Kommunikation in Zukunft so handhaben, wie du mir geschrieben hast.
Für das vorhandene Programm habe ich eine Notlösung (teilweise Umbennung der Variablen) gemacht, es wäre viel zu Aufwand das auf die neuen Befehle umzustellen (es sind insgesamt 6 GUIs).
Das Problem mit der GUI-übergreifenden Globalität hatte ich dann an anderer Stelle auch noch.
Habe das Problem mal nachprogrammiert, so dass du es mal begutachten kannst. Dabei gehst du wie folgt vor: Starten von Figure1. "bla bla bla" in Edit-Feld schreiben, auf "Variable setzen" klicken. Dann rechts unten auf "zum anderen Fenster wechseln" klicken.
In Figure 2 auf "Anzeige aktualisieren" klicken. Dann sollte im Static-Text-Feld "bla bla bla" aus Figure 1 stehen.
Jetzt kommt der interessante Teil: Nun änderst du den Inhalt der Variablen, indem du in das Edit-Feld was neues schreibst und mit "Variable setzen" bestätigst.
Wenn du jetzt wieder auf Figure1 wechselst und NUR auf "Anzeige aktualisieren" klickst, sollte im Static-Text-Feld der neue Wert stehen.
So und jetzt schaust du dir die fünf Zeilen Code an und siehst das Prblem, das ich oben geschildert habe...
Hoffe, dass ich mich verständlich ausgedrückt habe
Beste Grüße
Robert
Beschreibung: |
|
Download |
Dateiname: |
Evalin Problem.zip |
Dateigröße: |
8.89 KB |
Heruntergeladen: |
470 mal |
|
|
|
LittleX |
Forum-Guru
|
|
Beiträge: 494
|
|
|
|
Anmeldedatum: 14.05.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.04.2010, 11:48
Titel:
|
|
Hallo
Dein "Problem" kommt daher, dass Du Variable als global definiert hast (es hat nichts mit dem evalin Befehl zu tun).
Durch
überschreibst Du Dir die globale Variable Variable und dadurch wird die Änderung natürlich auch in Figure1 sichtbar.
Ich würde auf jeden Fall für die Kommunikation werder globale Variablen noch assignin/evalin verwenden, sondern wie zenon geschrieben hat setappdata/getappdata oder auch guidata.
Viele Grüße,
LittleX
|
|
|
Robert |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 60
|
|
|
|
Anmeldedatum: 14.11.08
|
|
|
|
Wohnort: Istanbul
|
|
|
|
Version: 2010b
|
|
|
|
|
|
Verfasst am: 12.04.2010, 12:43
Titel:
|
|
Ok! Als ich das Beispiel programmiert habe, habe ich mir das fast schon gedacht.
Danke für eure Antworten!
Thema ist damit durch
Gruß
Robert
|
|
|
|
|
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.
|
|