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

Frage zu einer benutzerdefinierten CloseRequestFcn

 

Nicolas

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.06.2008, 12:52     Titel: Frage zu einer benutzerdefinierten CloseRequestFcn
  Antworten mit Zitat      
Hallo,

Ist es möglich die Callbackfunktion eines Buttons aus einer benutzerdefinierten CloseRequestFcn aufzurufen ?
Oder alternativ die handles an diese benutzerdefinierte CloseRequestFcn zu übergeben ?

Zur Veranschaulichung einige Codeschnipsel


In der OpeningFcn des figure
Code:
%Überschreiben der Standard CloseRequestFcn
set(gcf,'CloseRequestFcn',@meine_CloseRequestFcn)
% mehr Code
uiwait(handles.figure1);


Die ButtonCallback die ich gern aufrufen würde
Zitat:
function zurueck_Callback(hObject, eventdata, handles)
% hObject handle to goback (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

%Auslesen einiger Werte
guidata(hObject, handles);
uiresume(handles.figure1);


Die benutzerdefinierte CloseRequestFcn (derzeit nur mit einer Abfrage, ob das Fenster wirklich geschlossen werden soll)
Zitat:
% --- Executes when user attempts to close figure1.
function meine_CloseRequestFcn(src, evnt)

%Sicherheitsabfrage
selection = questdlg('Fenster wirklich schließen ? Einstellungen gehen verloren',...
'Warnung',...
'Yes','No','Yes');
switch selection,
case 'Yes',
delete(gcf)
case 'No'
return
end


Vielen Dank im Voraus


dib0r
Forum-Guru

Forum-Guru


Beiträge: 413
Anmeldedatum: 09.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.06.2008, 14:07     Titel:
  Antworten mit Zitat      
Hallo,

es gibt einige Möglichkeiten:

Falls zu dem Zeitpunkt, zu dem du die CloseRequestFcn überschreibst, das handle zum Button schon kennst, einfach
Code:
set(gcf,'CloseRequestFcn',{@meine_CloseRequestFcn meinButtonHandle});
schreiben. Du must natürlich meine_CloseRequestFcn noch mit einem dritten Input versehen.

Alternativ kannst Du natürlich die Handles in die GUI schreiben und sobald Du ein handle auf ein Objekt der GUI hast (gcf reicht bspw.), die Daten laden (siehe "help guidata").

Es gibt dann noch die Möglichkeit die Callback-Funktion direkt in der meine_CloseRequestFcn aufzurufen. Bedingung dabei ist natürlich dass weder das Handle zum Button noch die zusätzlichen Daten in eventdata für die Callback-Funktion benötigt werden.

Z.B.
Code:
function meine_ButtonCallback(hObject,eventdata)
disp('Hallo Welt');
return;
kann natürlich auch ausserhalb aufgerufen werden, zB mit meine_ButtonCallback([],[]) oder mit irgendwelchen Argumenten.

MfG
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.