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

Funktionsaufruf ohne Übergabe der Variablen

 

MasterofDesaster
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 17.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2009, 15:41     Titel: Funktionsaufruf ohne Übergabe der Variablen
  Antworten mit Zitat      
Hallo ich habe folgendes Problem:

Ich verändere ein Textfeld A in einer Eingabemaske, dies soll einen Einfluss auf Textfeld B haben. Allerdings wird aufgrund meiner Funktion, der Wert aus Textfeld B nach Textfeld A übergeben, das soll aber nicht geschehen. Gleichzeitig wird aber Textfeld B nicht verändert, das soll aber geschehen.

Hier sind die beiden Funktionen.
Code:
function Textfeld_A_Callback(hObject, eventdata, handles)
input = str2num(get(hObject,'String'));
 
if (isempty(input))
     set(hObject,'String','0')
end

Textfeld_B_Callback(hObject, eventdata, handles);

guidata(hObject, handles);
 


Code:
function Textfeld_B_Callback(hObject, eventdata, handles)

handles = guidata(hObject);

     set(hObject,'String',strcat('Ergebnis_ist_54'))

guidata(hObject, handles);


Was ist daran falsch? Ich stehe gerade wie der Ochs vorm Berg...

Gruß und Dank
Desaster
Private Nachricht senden Benutzer-Profile anzeigen


LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.08.2009, 16:32     Titel:
  Antworten mit Zitat      
Hallo,

hObject ist beim Aufruf von Textfeld_A_Callback ein handle auf Textfeld_A. Du rufst nun aus dieser Funktion Textfeld_B_Callback auf und übergibst dieser Funktion genau diese hObject (also das handle auf Textfeld_A). In der Funktoin Textfeld_B_Callback setzt Du dann die String Eigenschaft von hObject (also von Textfeld_A).

Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
MasterofDesaster
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 17.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.08.2009, 07:41     Titel:
  Antworten mit Zitat      
Hallo LittleX,

danke für die Info. Aber wie müsste nun mein Code lauten?

Ich habe schon Versucht in einer der beiden Funktionen kein hObject zu verwenden, aber leider ohne Erfolg.

Könnte mir da bitte nochmal jemand auf die Sprünge helfen?

thx
Desaster
Private Nachricht senden Benutzer-Profile anzeigen
 
LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.08.2009, 09:12     Titel:
  Antworten mit Zitat      
Hallo,

arbeitest Du mit guide? Wenn ja ist die Variable handle ein struct, dass ein handle auf alle GUI Objekte enthält (dabei ist der Feldname gleich dem Tag des Objektes).
Also gibt es z.B. etwas wie
Code:

handles.Textfeld_A, handles.Textfeld_B
 

Anstelle von hObject nimmst Du dann das entsprechende Feld aus handle.

Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
Dagnabit
Forum-Century

Forum-Century


Beiträge: 244
Anmeldedatum: 23.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.08.2009, 09:15     Titel:
  Antworten mit Zitat      
Servus Desaster

Was LittleX meint, ist dass Du das hObject im Aufruf von Textfeld_B_Callback in ein handles.Textfeld_B ändern sollst. Also:

Code:
function Textfeld_A_Callback(hObject, eventdata, handles)
input = str2num(get(hObject,'String'));
 
if (isempty(input))
     set(hObject,'String','0')
end

Textfeld_B_Callback(handles.Textfeld_B, eventdata, handles);

guidata(hObject, handles);
 


Ansonst führst Du den Textfeld_B_Callback auf Textfeld_A aus.
_________________

lg
Martin
Private Nachricht senden Benutzer-Profile anzeigen
 
MasterofDesaster
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 60
Anmeldedatum: 17.04.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.08.2009, 12:51     Titel:
  Antworten mit Zitat      
Hallo ihr beiden,
ich habe es jetzt hinbekommen.

mein Code lautet jetzt:

Code:
function Textfeld_A_Callback(hObject, eventdata, handles)

Textfeld_B_Callback(hObject, eventdata, handles);

guidata(hObject, handles);


Code:
function Textfeld_B_Callback(hObject, eventdata, handles)

handles = guidata(hObject);

     set(handles.Textfeld_B,'String',strcat('Ergebnis_ist_',get(handles.Textfeld_A,'String')))

guidata(hObject, handles);


Viellelicht kann das ja nochmal wer gebrauchen.

Gruß und Dank
Desaster
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.