WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Werte an Popupmenu und Edit sofort übertragen

 

MichaelDenbeck

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.01.2011, 13:14     Titel: Werte an Popupmenu und Edit sofort übertragen
  Antworten mit Zitat      
Guten Tag,

ich habe folgendes Problem. Zum näheren Verständnis habe ich mal eine neue GUI geschrieben, die das Problem vereinfacht darstellt. In der opening Function steht folgendes:

Code:
set(handles.popupmenu1,'String',{'Audi','BMW','Mercedes','Ford'},'Value',4);

switch get(handles.popupmenu1,'Value')
    case 1
       stunden=5000;
    case 2
       stunden=4500;
    case 3
       stunden=6000;
    case 4
       stunden=4000;
end


set(handles.popupmenu3,'String',{'6000','5000','4500','4000'});


set(handles.edit1,'String',{stunden})


Wenn ich aus dem ersten popupmenu ein Auto auswähle, erscheint im Editfeld, je nach Autowahl, die Zahl 6000, 5000, 4500 bzw. 4000. Das funktioniert zwar, aber immer nur wenn ich das Programm neu starte. Ich will das aber so, dass beim Wechsel des Autos der Wert sofort geändert wird.

Gleiches habe ich auch bei dem Popupmenu3 vor. Hier soll der Wert auch sofort automatisch angepasst werden. Zusätzlich sollen dort aber noch die restlichen drei Auswahlmöglichkeiten bestehen.

Ich hoffe, dass ich mich klar genug ausgedrückt habe.

Über eure Hilfe wäre ich sehr froh. Smile

Gruß
Michi

untitled.fig
 Beschreibung:

Download
 Dateiname:  untitled.fig
 Dateigröße:  2.58 KB
 Heruntergeladen:  486 mal
untitled.m
 Beschreibung:

Download
 Dateiname:  untitled.m
 Dateigröße:  5.98 KB
 Heruntergeladen:  454 mal


Gast

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.01.2011, 13:29     Titel:
  Antworten mit Zitat      
Hallo,
der Code um das zu ändern, muss in die Callback-Funktion deines popupmenus.
Schau am besten mal in der GUIDE Hilfe, da gibts nen paar Beispiele
 
Mati_Berlin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2011, 16:19     Titel: Berlin
  Antworten mit Zitat      
Ich habe ein ähnliches Problem, bin aber schon ein wenig weiter.

Die Werte werden bei mir direkt übertragen, aber ich bekomme das mit meinem Popupmenü nicht so ganz hin!

In meiner openfunction steht:


Code:

set(handles.popupmenu1,'String',{'A','B','C'});
 


In der callbackfunction des ersten Popupmenüs steht:


Code:

switch get(handles.popupmenu1,'Value')
    case 1
       wert=10;
    case 2
       wert=20;
    case 3
       wert=30;
end

set(handles.popupmenu2,'String',{num2str(wert)});
set(handles.edit1,'String',{wert});
 


Das EditFeld tut das, was es soll. Aber im 2ten Popupmenü sollen neben der Ausgabe des einen Wertes (je nachdem ob A,B oder C gewählt ist) auch die anderen Werte drinnestehen und auch auswählbar sein.

Gruß
Mati

untitled.fig
 Beschreibung:

Download
 Dateiname:  untitled.fig
 Dateigröße:  2.59 KB
 Heruntergeladen:  388 mal
untitled.m
 Beschreibung:

Download
 Dateiname:  untitled.m
 Dateigröße:  5.94 KB
 Heruntergeladen:  432 mal
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 19.01.2011, 17:55     Titel:
  Antworten mit Zitat      
Hallo,
das ist nicht schwer, du muss einfach zuerst alte Werte auslesen:

Code:

switch get(handles.popupmenu1,'Value')
    case 1
       wert=10;
    case 2
       wert=20;
    case 3
       wert=30;
end
old_str_val   = get(handles.popupmenu2,'String');
new_str_val  = vertcat(old_str_val ,num2str(wert))
set(handles.popupmenu2,'String', new_str_val  );
set(handles.edit1,'String',{wert});
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Mati_Berlin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2011, 19:35     Titel:
  Antworten mit Zitat      
Danke Denny für deine Antwort.

Ich habe mal deinen Code ausprobiert. Dabei werden die Werte nacheinander ins 2te Popupmenu eingefügt. Vielleicht habe ich mich nicht deutlich genug ausgedrückt.

Ich will, dass in dem 2ten Popupmenu die 3 Werte 10, 20 und 30 stehen. Und je nachdem was man im ersten Popupmenu auswählt erscheint dann halt der dazugehörige Wert automatisch. Smile

Gruß
Mati
 
Mati_Berlin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.01.2011, 14:43     Titel:
  Antworten mit Zitat      
Kann hier jemand helfen? Es will bei mir einfach nicht klappen.

Gruß
Mati
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 21.01.2011, 15:12     Titel:
  Antworten mit Zitat      
Hallo

ich habe nicht verstanden, was du meinst? aber vermutlich du willst
Wert reinschreiben wenn es nicht da ist, und falls es da ist auswählen?
Code:

switch get(handles.popupmenu1,'Value')
   case 1
      wert = 10;
   case 2
      wert = 20;
   case 3
      wert = 30;
end
old_str_val = get(handles.popupmenu2,'String');
val         = num2str(wert);
pos         = strcmpi(old_str_val, val);
if any(pos)
   set(handles.popupmenu2,'Value',find(pos));
else
   new_str_val  = vertcat(old_str_val ,num2str(wert));
   set(handles.popupmenu2,'String', new_str_val  );
   set(handles.popupmenu2,'Value',length(new_str_val));
end

set(handles.edit1,'String',{wert});
 
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Mati_Berlin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2011, 11:56     Titel:
  Antworten mit Zitat      
Guten Tag,

das ist schon besser. Smile

In dem zweiten Popupmenu sollen aber von Anfang an die Werte 10, 20 und 30 eingetragen sein. Und je nachdem ob man A, B oder C im ersten Popupmenu auswählt wird dann im zweiten Menu eine der Zahlen zugewiesen.
Das soll so eine Art DIN Vorschlag werden, der halt einen bestimmten Wert vorschlgägt aus den Angaben (ersten Popupmenüs). Will man diesen Vorschlag nicht annehmen, so können dann halt die anderen Werte ausgewählt werden. Smile

Gruß Mati
 
Mati_Berlin

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.01.2011, 12:00     Titel:
  Antworten mit Zitat      
...Es hat ausgereicht in der opening function das 2te popupmenu zu definieren! Smile

Vielen Dank denny.
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.