Die GUI Tabelle enthält u. a. ein Logical Attribut welches mittels dieser Funktion manipuliert werden kann:
Code:
%Selection Event der Zeitreihentabelle. Die ausgewaehlte Spalte wird an die
%anderen Oberflaechenelemente kommuniziert.
function select_callback(hObject, eventdata) global selectedModel;
import Delphi.Util.*;
sel = eventdata.Indices;
sel=sel(:,1);
handles = guidata(hObject);
data=get(handles.htable,'Data');
for i=1:size(data)
data(i,3)={'false'};
selectedModel.tables(1,i).master=num2cell(0);
end
data(sel,3)={'true'};
selectedModel.tables(1,sel).master=num2cell(1);
set(handles.htable, 'CellSelectionCallback', []);
set(handles.htable,'Data',data);
set(handles.Intersection,'Value',0);
set(handles.Union,'Value',0);
set(handles.MasterTS,'Value',1);
drawnow;
set(handles.htable, 'CellSelectionCallback', {@select_callback});
drawnow;
guidata(hObject, handles);
Soweit funktioniert das auch. Die Änderungen werden in der GUI Tabelle handles.htable, als auch im Objekt selectedModel.tables übernommen und korrekt in der GUI ausgegeben.
Wenn ich nun das Fenster verlasse und erneut aufrufe, werden die Änderungen nicht in der GUI Tabelle angezeigt. In handles.htable und selectedModel.tables wurden die Daten korrekt abgespeichert.
Was mache ich falsch???
Vielen Dank für eure Hilfe,
Lloyd
Micha85
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 05.09.2011, 10:39
Titel:
Hi,
was bedeutet Fenster verlassen?
Schließt Du das Fenster und kehrst praktisch zu Deiner Hauptoberfläche zurück oder etwas ähnliches?
Wenn ja musst Du die Daten (handles) an diese Hauptoberfläche übergeben.
Schließt Du das Fenster komplett werden die handles dieses Fensters gelöscht und beim erneuten Öffnen neu angelegt.
Deine zusätzlichen Daten sind dann natürlich weg. Wenn ich Dich richtig verstanden habe ist das der Fall.
Ich hoffe das ist richtig so und hilft Dir etwas weiter.
Grüße
Micha
ich schließe das Fenster und kehre zur Hauptoberfläche zurück. Das handle übergebe ich ebenfalls. Mittels debugging habe ich auch kontrolliert ob das korrekt funktioniert, was der Fall ist.
Die Daten sind also im handle gespeichert, werden aber trotzdem nicht in der GUI angezeigt.
Lloyd
Micha85
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 05.09.2011, 11:23
Titel:
Hi,
ich habe mir gerade mal die Hilfe zu uitable angeschaut.
In dem Cell-Array data müssen in der logischen Spalte auch tatsächlich logische Werte (true/false) rein. Einfach 0 oder 1 als double Wert reicht nicht aus.
Ergänze doch mal in Deinem Code diese Zeile wie folgt:
Wenn Deine Daten also tatsächlich korrekt übergeben werden könnte ich mir das als Fehler vorstellen, da Du in Deinem Cell-Selection Callback ja den Wert 0 bzw. 1 mit num2cell in das Array schreibst.
Trotzdem vielen Dank für deine Unterstützung!!!
Lloyd
Einstellungen und Berechtigungen
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.