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

Timer in Gui

 

MK
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 23.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.01.2012, 15:23     Titel: Timer in Gui
  Antworten mit Zitat      
Hallo zusammen,

ich glaub ich hab ein grundsätzliches Verständnisproblem was das Aufrufen einer Timerfunktion betrifft.
Hier mal ein kleines Beispielprogramm das ich geschrieben habe:

Code:
function Testtimer()

% Auslesen der Bildschirmauflösung
scrsz = get(0,'ScreenSize');

% Erstellen eines Fensters
MainWindow = figure('MenuBar','none',...
                    'Name','Ein Timer soll getestet werden',...
                    'ToolBar','figure',...
                    'MenuBar','figure',...
                    'Color',[0.7 0.7 1],...
                    'Position',[(scrsz(3)-1200)/2,(scrsz(4)-700+20)/2,1200,585]);
               
% Erstellen eines Textfeldes in dem Defaultmäsig der Text "Gleich sollte sich der Text ändern" steht
handles.text = uicontrol(MainWindow,'Style','text',...
                                'String','Gleich sollte sich der Text ändern',...
                                'Units','normalized',...
                                'Backgroundcolor',[1 1 0.1],...
                                'Position',[.4 .4 .2 .2]);
                       
% Initialisieren eines Timers, der nach 2 Sekunden den Text in "Timer abgelaufen ändert"                                                      
handles.t = timer('StartDelay',2,'TimerFcn',@timer_callback);

% Timer wird gestartet
start(handles.t);

% guidata(handles);

% Funktion die vom Timer aufgerufen wird
    function timer_callback(handles)
       handles = guidata(handles);
       set(handles.text,'String','Timer abgelaufen');
       guidata(hObject,handles);
    end

end




Irgendwie wird die Funktion "timer_callback", nach Ablauf der DelayTime, nicht aufgerufen.

Folgende Fehlermeldung wird ausgegeben:
Error while evaluating TimerFcn for timer 'timer-xy'
Too many input arguments.

Ich hoffe , jemand kann mir weiterhelfen.

Gruß MK
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 25.01.2012, 16:24     Titel:
  Antworten mit Zitat      
Hallo

schaue mal hier rein
http://www.mathworks.de/help/techdo.....og/f9-39541.html#f9-42494

also Grundsätzlich besteht CallbackFcn/TimerFcn aus mindestens 2 Übergabeparameter, dabei die erst 2 sind fest
Also sollte deine TimerFcn wie folgt definiert
Code:

%...
handles.t = timer('StartDelay',2,'TimerFcn',{@timer_callback,handles});
% ...
% ...
% function timer_callback(obj, event, handles)
 


Achtung handles haben Stand in TimerFcn ab Übergabezeitpunkt und werden nicht aktulisiert.

Besser Handle von GUI zu übergeben und in TimerFcn über GUIDATA oder GETAPPDATA auf Handles zuzugreifen.
Private Nachricht senden Benutzer-Profile anzeigen
 
MK
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 23.11.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.01.2012, 13:41     Titel:
  Antworten mit Zitat      
Hallo Denny,

danke für die schnelle Antwort. Ich hab die ganze Zeit nicht verstanden, dass event und obj feste Übergabeparameter sind.
Jetzt funktionierts. Very Happy

Gruß MK
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.