ich schreibe gerade an einem GUI. Dafür habe ich mir überlegt, dass der ausgewählte String des popmenu1 via eines Push Buttons bestätigt wird und dann den Inhalt, ebenfalls Strings, des popupmenu2 beeinflusst.
Da es nicht zwingend nötig ist, die Strings für die Auswahl anzugeben, habe ich das Verfahren anhand der Values des popupmenu1 versucht:
Code:
function pushbutton1_Callback(hObject, eventdata, handles)
switch val
case1% Auswahl A set(handles.popupmenu2,'String',{'Blau','Grün','Gelb'}) case2% Auswahl B set(handles.popupmenu2,'String',{'Rot','Violett','Magenta'}) end
Des Weiteren stellt sich die Frage, ob sich zur weiteren Berechnung dieses Verfahren überhaupt eignet, da ich verschiedene Strings und Berechnungsverfahren für den gleichen Value im popupmenu2 hinterlegt sind.
Immer, wenn man im Forum "funktioniert nicht" schreibt, ist eine genauere Erklärung erforderlich: bekommst du eine Fehlermeldung, wenn ja, welche? Stimmtz das Ergebnis nicht mit Deinen Wünschen überein, wenn ja, wie?
Die Variable "popupmenu1" ist hier weder definiert noch an der richtigen Stelle. Lasse sie einfach weg.
Zitat:
Des Weiteren stellt sich die Frage, ob sich zur weiteren Berechnung dieses Verfahren überhaupt eignet, da ich verschiedene Strings und Berechnungsverfahren für den gleichen Value im popupmenu2 hinterlegt sind.
Das verstehe ich nicht. Welches Verfahren meinst Du genau? Du musst beim Auslesen des popupmenu2 dann schon berücksichtigen, welche Strings darin stehen, aber das ist ja einfach möglich.
Danke für deine Antwort.
Ich gebe zu "funktioniert nicht" war wenig aussagekräftig und ist hier wie auch sonstwo unerwünscht. Schließlich habe ich den Forum Knigge gelesen, bevor ich mein Thema gestartet habe. Wird nicht wieder vorkommen.
Den popupmenu1-Befehl habe ich weggelassen. Diese Fehlermeldung tritt nun auch nicht mehr auf. Zum Verständnis; woher weiß MATLAB, dann aber, dass das Programm auf die Values des popupmenu1 zurückgreifen muss? Der Verweiß zum popupmenu1 wird im pushbutton-callback nicht mehr weiter erwähnt!
MATLAB gibt mir nun folgenden Fehler zurück:
Code:
Attempt to reference field of non-structure array.
Error in Farben>pushbutton1_Callback (line84) set(handles.popupmenu2,'String',{'Blau','Grau'})
Es scheint, als sei "handles" hier kein Struct. Wieso das so ist, weiß ich nicht. Es kommt oft vor, dass das Struct unvollständig ist, da es eine Kopie des handles Structs zum Zeitpunkt der Erstellung des Callbacks ist. Die neueste Version des handles structs bekommt man so:
Code:
function myCallback(hObject, EventData, handles)
handles = guidata(hObject);
...
Zum Stichwort GUIDATA findet man einiges im Forum.
Zitat:
Die zweite Frage stell ich mal zurück, sonst wird das hier zu verwirrend.
Schön! Diese Strategie ist effizient, da eine Verringerung der lokalen Komplexität in Computerprogrammen genau wie auch im richtigen Leben die Lösung von Aufgaben immer enorm vereinfacht.
ich habe das Problem gelöst. Ich habe den Pushbutton weggelassen und die Auswahl wird direkt von dem popupmenu1 an das popupmenu2 übergeben.
Viele Grüße und Danke,
smarti
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.