Überschreiben einer Zelle in einer uitable aus einer Fkt.
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 19.10.2015, 14:43
Titel: Überschreiben einer Zelle in einer uitable aus einer Fkt.
Hallo zusammen,
mein problem ist folgendes:
Ich lasse in einer GUI über eine uitable einigen Werte einlesen. Will man Werte ändern wird die Funktion inputcheck.m geöffnet, die prüft ob die eigegebenen Werte gültig sind und ggf eine Fehlermeldung ausgibt. Aus Gründen der Idiotensicherung möchte ich nun gerne in der Funktion den Wert der geänderten Zelle im Fehlerfall mit nichts überschreiben.
Der bisherige Versuch sah so aus:
Verfasst am: 19.10.2015, 16:24
Titel: Re: Überschreiben einer Zelle in einer uitable aus einer Fk
Hallo Seb,
Zitat:
Die Funktion kriegt den Zelleninhalt, einen Prüfvektor und die handles übergeben.
Weiß jemand eine Lösung?
Welche Funktion bekommt dies übergeben? Was ist "der Zelleninhalt" und "ein Prüfvektor"? Bitte beschreibe noch das Problem, zu dem Du eine Lösung suchst. Macht der Code nicht, was er soll?
Gruß, Jan
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 20.10.2015, 07:59
Titel:
Hallo Jan,
die Funktion überprüft immer den Inhalt der aktuellen Zelle auf seine Gültigkeit. Der Zellinhalt ist also das, was ich gerade in die Zelle reingeschrieben habe. Der Prüfvektor sagt der Fkt nur, was sie alles überprüfen soll (ist für das Problem weniger relevant denke ich). Die Funktion wird im Hauptprogramm im CellEditCallback aufgerufen und soll, wenn möglich bei einem ungültigen Wert den aktuellen Zellinhalt löschen bzw. mit nichts überschreiben.
Der bisherige Code erzeugt folgende Fehlermeldung:
#Undefined variable "eventdata" or class "eventdata.Indices".
Error in inputcheck (line 18 )
handles.currentCell=eventdata.Indices;
Error in Start_GUI>uitable2_CellEditCallback (line 148)
inputcheck (data, [1 1], handles);
Error in gui_mainfcn (line 96)
feval(varargin{:});
Error in Start_GUI (line 42)
gui_mainfcn(gui_State, varargin{:});
Error in @(hObject,eventdata)Start_GUI('uitable2_CellEditCallback',hObject,eventdata,guidata(hObject))
Error while evaluating uitable CellEditCallback
Der Aufruf in der Funktion sieht so aus:
Code:
function[check]=inputcheck(content, vec ,handles)
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
cellcontent=str2double(content);
if(isnan(cellcontent)) set(handles.speichern,'Enable','off');
h=msgbox('Du weißt schon, dass hier nur Zahlen reindürfen, oder?','RETARD ALERT!!!','warn');
return end if(vec(1)==1) if(cellcontent>0) set(handles.speichern,'Enable','on')
else set(handles.speichern,'Enable','off');
h=msgbox('Nur Zahlen größer 0 eintragen!','Achtung','warn');
handles.currentCell=eventdata.Indices;
guidata(hObject,handles);
Indices=handles.currentCell;
celldata=get(handles.uitable2,'Data');
data=celldata(Indices(1),Indices(2));
data (Indices(1),Indices(2))= {''};
set(handles.uitable2, 'data', data);
return end end
#Undefined variable "eventdata" or class "eventdata.Indices".
Error in inputcheck (line 18 )
handles.currentCell=eventdata.Indices;
Die Fehlermeldung ist klar, oder?
Hier wird die Variable "eventdata" verwendet, die aber in dieser Funktion gar nicht definiert ist.
Gruß, Jan
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 21.10.2015, 09:17
Titel:
Hallo,
es hat sich herausgestellt, dass diese Zeile auch gar nicht nötig ist.
Übergibt man der Funktion noch die Indices der geänderten Zelle, kann mit
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.