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

Wertübernahme aus Untermenü OHNE Buttonbetätigung

 

pfeili

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2008, 07:47     Titel: Wertübernahme aus Untermenü OHNE Buttonbetätigung
  Antworten mit Zitat      
nach endlosem überlegen habe ich mich entschlossen die frage hier ins forum zu schreiben. mein matlab-problem sieht folgendermaßen aus:

- ich habe mit "guide" ein hauptmenü und ein zugehöriges untermenü erstellt (also zwei verschiedene dateien).
- das untermenü berechnet einen wert, der in einem feld des hauptmenüs ausgegeben werden soll.
- ich hab im hauptmenü einen "..."-pushbutton eingerichtet, welcher nach betätigung das untermenü öffnet. dort gebe ich alle werte ein. dann betätige ich den dort eingerichteten "calculate"-pushbutton und dadurch wird die berechnung ausgelöst und das hauptmenü erneut aufgerufen.

- nun das problem: wie bekomme ich mein für den wert vorgesehenes feld im hauptmenü mit dem berechneten wert aktualisiert, ohne dass sich dafür irgend eine buttonbetätigung erforderlich macht? kann ich schon durch betätigen des untermenü-buttons eine wertübergabe in das hauptmenü machen oder gibt es noch andere lösungen. wie müsste die dafür benötigte syntax grob aussehen?

vielen dank und beste grüße. pfeili


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 27.08.2008, 07:52     Titel:
  Antworten mit Zitat      
Moin,

das ist recht einfach:

1. Möglichkeit - Dir ist der handle zu dem Textfeld bekannt:
Code:
% in der calculate-Button-Callback:
set(handle_ergebnisfeld,'String',num2str(ergebnis));


2. Möglichkeit - Dir ist der Tag oder der Name deines Textfeldes bekannt:
Code:
% in der calculate-Button-Callback:
set(findobj('Tag','Ergebnis'),'String',num2str(ergebnis));
% oder:
% set(findobj('Name','Ergebnisfeld'),'String',num2str(ergebnis));


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
pfeili

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2008, 08:49     Titel: Re: Wertübernahme aus Untermenü OHNE Buttonbetätigung
  Antworten mit Zitat      
wenn ich das so mache, sagt er mir, dass das feld nicht existiert.

- das hauptmenü heißt "hauptmenue"
- das unterprogramm heißt: "schnellschlussventil2"
- das ergebnisfeld im hauptmenü heißt "calc_esv"
- der wert, der aus dem unterprogramm dort hinein soll ist in LWa gespeichert und soll direkt durch das betätigen des calc-buttons (deshalb schreibe ich es in dessen callback, das hab ich schon begriffen) im feld "calc_esv" des hauptmenüs erscheinen.

könntest du mir den code bitte idiotensicher auf mein beispiel basteln. sorry für diesen kindergarten, aber ich beschäftige mich noch nicht lange mit matlab und bin das erste mal in diesem forum aktiv.

vielen dank. pfeili
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 27.08.2008, 09:18     Titel:
  Antworten mit Zitat      
Eigentlich müsste es so funktionieren:
Code:
% in der Button-Callback:
LWa = 12.4;
set(findobj('Name','calc_esv'),'String',num2str(LWa));


Wenn es nicht geht, am besten mal die Fehlermeldung und den Code posten (oder noch besser die Dateien)

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
pfeili

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2008, 12:46     Titel:
  Antworten mit Zitat      
das ist der code des pushbuttons im unterprogramm. es passiert leider gar nichts und es wird auch keine fehlermeldung ausgegeben. der wert im hauptmenü heißt weiterhin 0. muss ich nicht für 'Name' den verweis auf das hauptmenü setzen?

viele grüße. pfeili

Code:

% --- Executes on button press in pushbutton_berechnen.
function pushbutton_berechnen_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton_berechnen (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Laden der Variable aus vorhergehendem Unterprogramm

load schnellschlussventil1.mat LWaS LWa_esv

% Darstellung des Spektrums und des Gesamtwertes LWa_esv

set(handles.Ventil_Ausgabe_63, 'String', num2str(LWaS(1)))
set(handles.Ventil_Ausgabe_125, 'String', num2str(LWaS(2)))
set(handles.Ventil_Ausgabe_250, 'String', num2str(LWaS(3)))
set(handles.Ventil_Ausgabe_500, 'String', num2str(LWaS(4)))
set(handles.Ventil_Ausgabe_1000, 'String', num2str(LWaS(5)))
set(handles.Ventil_Ausgabe_2000, 'String', num2str(LWaS(6)))
set(handles.Ventil_Ausgabe_4000, 'String', num2str(LWaS(7)))
set(handles.Ventil_Ausgabe_8000, 'String', num2str(LWaS(8)))
set(handles.Ventil_Ausgabe_ges, 'String', LWa_esv)

% Übergabe an Hauptmenü ?

set(findobj('Name','erg'),'String',num2str(LWa_esv));

% Rückkehr ins Hauptmenü

run 'Hauptmenue'
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 27.08.2008, 13:04     Titel:
  Antworten mit Zitat      
Kleine Frage: Ist das Hauptmenü zwischendurch geschlossen?!
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
pfeili

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2008, 14:05     Titel:
  Antworten mit Zitat      
nein, es bleibt im hintergrund geöffnet. liegt es etwa am run-befehl?

pfeili
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 27.08.2008, 14:56     Titel:
  Antworten mit Zitat      
Ich denke schon, weil du damit die Funktion Hauptmenue erneut ausführst.

Versuch stattdessen mal:
Code:
figure(findobj('Name','Hauptmenue')); % wenn 'Hauptmenue' der Name des ersten Fensters ist


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
pfeili

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.08.2008, 15:35     Titel:
  Antworten mit Zitat      
ich hab es so, aber das ergebnis ist unverändert. es gibt keine fehlermeldung, und im hauptmenü erscheint weiterhin 0.

Code:

set(findobj('Name','erg'),'String',num2str(LWa_esv));
figure(findobj('Name','Hauptmenue'));




kann es nicht sein, dass das programm in der ersten zeile zwar weiß, dass es nach dem objekt mit dem namen "erg" suchen muss, es aber nicht weiß in welchem m.file?
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 27.08.2008, 15:40     Titel:
  Antworten mit Zitat      
Lad mal bitte die beiden Programme hoch - So kann ich jetzt auch nicht sagen, woran es liegt!
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
pfeili
Forum-Century

Forum-Century


Beiträge: 177
Anmeldedatum: 27.08.08
Wohnort: ---
Version: R2019b
     Beitrag Verfasst am: 27.08.2008, 16:03     Titel:
  Antworten mit Zitat      
ich weiß noch nicht, wie das hochladen funktioniert. deshalb hab ich dir die dateien mal als mail geschickt.

pfeili
Private Nachricht senden Benutzer-Profile anzeigen
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 27.08.2008, 16:23     Titel:
  Antworten mit Zitat      
Antwort ist raus.

Hochladen geht über "Datei anhängen" unterhalb des Textfensters über dem Absende-Button.

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
pfeili
Forum-Century

Forum-Century


Beiträge: 177
Anmeldedatum: 27.08.08
Wohnort: ---
Version: R2019b
     Beitrag Verfasst am: 27.08.2008, 16:34     Titel:
  Antworten mit Zitat      
super. es geht. vielen herzlichen dank.

das ist also die lösung:

Code:

set(findobj('Tag','calc_esv'),'String',num2str(LWa_esv));
figure(findobj('Name','Hauptmenue'));
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 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.