Verfasst am: 04.08.2011, 09:52
Titel: 2 mal starten ?!
Hallo,
ich hab ein gui geschrieben und folgendes Problem: Ich muss auf run drücken und während die figure schon geöffnet ist gleich nochmal auf run, damit es richtig läuft. Hat das schon mal jemand von euch gehört, bzw. weiß was ich da machen muss?!
vermutlich wurde die GUI noch nicht komplett aufgebaut. Also bisschen warten.
testdummy
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 04.08.2011, 10:15
Titel:
Doch die GUI erscheint komplett aufgebaut. Ich lasse etwas mithilfe von Timer in ein axes-Feld zeichnen. Das erscheint nicht. Es erscheint wie gesagt erst, wenn ich noch mal auf run klicke, während die figure schon geöffnet ist. Alle anderen Funktionen funktionieren.
testdummy
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 04.08.2011, 10:19
Titel:
Jetzt kann ich es noch ein wenig konkretisieren:
Ich lass über eine Funktion einen Körper zeichnen. Diese Funktion wird mithilfe von einem Timer immer wieder ausgeführt. In dieser Funktion wird auch eine andere Funktion ausgeführt, damit ich nicht einen zweiten Timer machen musste, der die 2. Funktion aufruft. Diese 2. Funktion wird erst mit aufgerufen, wenn ich noch einmal auf run klicke.
Mein Code hat auch kein Fehler, denn wenn ich die Funktion mit einem Pushbutten starte ist es kein Problem. Es muss irgendwie im zusammenhang mit dem Timer stehen...
das liegt wahrscheinlich an HANDLES. Als du TimerFcn deklariert hast, hast du HANDLES zur Zeitpunkt des Öffnens des GUI übergeben, danach werden die handles nicht mehr aktualisiert.
Besser TimerFcn erst zu Schluss deklarieren und starten.
Außerdem in Timer Handles mit GUIDATA aktualisieren.
Code:
%Das steht in der openingfcn:
handles.sliders = findobj(gcf, 'Style', 'slider');
handles.t = timer('executionmode','fixedrate','Period',1);
guidata(hObject, handles);
set(handles.t, 'Timerfcn',{@funktion1,handles})
start(handles.t);
function funktion1(hObject, eventdata, handles)
%[...]
funktion2(handles)
function funktion2(handles)
val = cell2mat(get(handles.sliders(1:3),'Value'))
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
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.