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

handles / variablen richtig uebergeben

 

rooky
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 76
Anmeldedatum: 25.04.12
Wohnort: ---
Version: 2012a
     Beitrag Verfasst am: 25.03.2014, 20:43     Titel: handles / variablen richtig uebergeben
  Antworten mit Zitat      
Hallo,
ich komme gerade bei der Uebergabe von handles nicht weiter.
Ich habe ein gui (guide) in dem gibt es einen button in dem eine funktion aufgeufen wird
Code:
function pushbutton112_Callback(hObject, eventdata, handles)
ppt_start_export(hObject, eventdata, handles)

die funktion schaut dann so aus
Code:
function ppt_start_export(hObject, eventdata, handles)
checkeps=uicontrol('Style', 'checkbox', 'String', 'export .eps');
uicontrol('Style', 'pushbutton', 'String', 'auto ppt',...
        'Callback', {@pptback,checkeps});
function pptback(hObject, eventdata, handles)
new_presentation

in der new_presentation brauche ich dann die handles aus dem ersten gui und den value von checkeps
So ha ichs gemacht, geht aber nicht
Code:
function   new_presentation(hObject, eventdata, handles)
get(handles.checkeps,'value')


Fehlermeldung: Not enough input arguments.

Wo ist denn mein Fehler?
Danke fuer eure Geduld
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.03.2014, 21:04     Titel:
  Antworten mit Zitat      
Hallo,

du musst new_presentation mit den drei erforderlichen Eingabeargumenten aufrufen - genauso wie du auch ppt_start_export aufrufst.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
rooky
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 76
Anmeldedatum: 25.04.12
Wohnort: ---
Version: 2012a
     Beitrag Verfasst am: 25.03.2014, 21:52     Titel:
  Antworten mit Zitat      
Hallo Harald,
wenn ich das mache:
Code:
   function pptback(hObject, eventdata, handles)
         new_presentation(hObject, eventdata, handles)

sagt er mir schon bei der Zeile
Not enough input arguments.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.03.2014, 22:11     Titel:
  Antworten mit Zitat      
Hallo,

kopier doch bitte mal die komplette Fehlermeldung.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
rooky
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 76
Anmeldedatum: 25.04.12
Wohnort: ---
Version: 2012a
     Beitrag Verfasst am: 25.03.2014, 22:48     Titel:
  Antworten mit Zitat      
wenn ich alles mache so wie oben (plus deiner Aenderung), dann bekomm ich hier

Code:
function   new_presentation(hObject, eventdata, handles)
get(checkeps,'value')


das:
Undefined function or variable 'checkeps'.

Error in new_presentation (line 2)
get(checkeps,'value')

Error in ppt_start_export>pptback (line 45)
new_presentation(hObject, eventdata, handles)

Error while evaluating uicontrol Callback

kann das sein, dass der Fehler hier liegt?
Code:
uicontrol('Style', 'pushbutton', 'String', 'auto ppt',...
        'Callback', {@pptback,checkeps});
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.03.2014, 23:07     Titel:
  Antworten mit Zitat      
Hallo,

jede Funktion hat einen separaten Workspace, daher muss alles übergeben werden, was eine Funktion braucht.

Wenn new_presentation checkeps braucht, warum übergibst du dann nicht das statt all den anderen (zumindest im vorliegenden Code) nicht benötigten Variablen?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
rooky
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 76
Anmeldedatum: 25.04.12
Wohnort: ---
Version: 2012a
     Beitrag Verfasst am: 25.03.2014, 23:18     Titel:
  Antworten mit Zitat      
Halo Harald,
new_presentation braucht nicht nur checkeps sondern auch viele! handles aus dem ersten gui (gide) z.B. get(handles.edit1,'String') und viele mehr. Dummerweise halt auch checkeps.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.03.2014, 23:23     Titel:
  Antworten mit Zitat      
Hallo,

leider kann man nur von den Informationen ausgehen, die tatsächlich zur Verfügung gestellt werden.
Aber ist doch auch kein Problem: dann übergebe es halt zusätzlich?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
rooky
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 76
Anmeldedatum: 25.04.12
Wohnort: ---
Version: 2012a
     Beitrag Verfasst am: 25.03.2014, 23:34     Titel:
  Antworten mit Zitat      
Hllo Harald,
sorry wenn ich das nicht deutlich geschrieben habe. Ich habs aber versucht
Zitat:
in der new_presentation brauche ich dann die handles aus dem ersten gui und den value von checkeps
So ha ichs gemacht, geht aber nicht

Aber jetzt die Frage. Wie uebergebe ich das zusaetzlich??
Private Nachricht senden Benutzer-Profile anzeigen
 
rooky
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 76
Anmeldedatum: 25.04.12
Wohnort: ---
Version: 2012a
     Beitrag Verfasst am: 25.03.2014, 23:53     Titel:
  Antworten mit Zitat      
Hallo,
wen ich das eventdata rausschmeisse (was ist das eigentlich?) dann klappt es
Code:
 function pptback(hObject, handles,checkeps)
         new_presentation(hObject, handles,checkeps)


eventdata ist scheinbar das was gerade aktuell im gui passiert. Das brauch ich hier nicht. Das war mein Problem ich hab das immer drin gehabt und damit konnte ICH keine weitere Variable uebergeben.

Danke Harald fuer den Hinweis

Zuletzt bearbeitet von rooky am 25.03.2014, 23:57, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.03.2014, 23:55     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
So ha ichs gemacht, geht aber nicht

Hast du eben nicht, weil checkeps in der Liste der Argumente nicht auftaucht.

Also:

Funktionsdeklaration:
Code:
function   new_presentation(hObject, eventdata, handles, checkeps)


Neuer Funktionsaufruf aus ppt_start_export:
Code:
new_presentation(hObject, eventdata, handles, checkeps)


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
rooky
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 76
Anmeldedatum: 25.04.12
Wohnort: ---
Version: 2012a
     Beitrag Verfasst am: 25.03.2014, 23:58     Titel:
  Antworten mit Zitat      
Nochmals danke Harald funktioniert wie du sagst
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 - 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.