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

Problem mit set-Befehl bei einer GUI mit Edit-Box

 

p1t
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 07.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.01.2014, 14:49     Titel: Problem mit set-Befehl bei einer GUI mit Edit-Box
  Antworten mit Zitat      
Hallo zusammen,

ich habe folgendes Problem mit dem set-Befehl. Ich würde gern einen aus einer Editbox ausgelesenen Wert einer Variablen zuordnen.

Hier ein Code-Fragment:
Code:
% --- Executes just before gui is made visible.
function gui_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to gui (see VARARGIN)

[...]

handles.p1 = [2;0;0];


Code:

function edit1_Callback(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text
%        str2double(get(hObject,'String')) returns contents of edit1 as a double
pos_value = str2double(get(hObject,'String'));
set(handles.p1(1), pos_value);
 


Das Problem liegt bei "set(handles.p1(1), pos_value);". Ich würde gern handles.p1(1) den Wert der Editbox zuordnen. Ich weiß das man teilweise noch einen String wie 'String' oder 'Value' als zweites Argument übergeben muss, aber leider weiß ich nicht wie dieses Argument zustande kommt und ich glaube bei meiner Anwendung müsste es auch mit der Methode ohne gehen.

Als Fehler bekomme ich:

Code:

Error using handle.handle/set
Invalid or deleted object.

Error in gui>edit1_Callback (line 154)
set(handles.p1(1), pos_value);

Error in gui_mainfcn (line 96)
        feval(varargin{:});

Error in gui (line 42)
    gui_mainfcn(gui_State, varargin{:});

Error in
@(hObject,eventdata)gui('edit1_Callback',hObject,eventdata,guidata(hObject))

 
Error while evaluating uicontrol Callback
 


Ich habe schon die Suchfunktion benutzt, aber keinen passenden Eintrag gefunden. Die meisten Leute benutzen den Set befehl nicht um Werte sondern um Strings zu schreiben.

Vielen Dank schonmal
Private Nachricht senden Benutzer-Profile anzeigen


denny
Supporter

Supporter



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

wenn du einen Wert einem Feld in Struct zuweisen möchtest, brauchst kein SET/GET Befehl

Code:

function edit1_Callback(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text
%        str2double(get(hObject,'String')) returns contents of edit1 as a double
pos_value = str2double(get(hObject,'String'));
handles.p1(1) = pos_value
guidata(handles.gui, handles)

 


Wenn du den Wert später verwendest möchtest, brauchst dazu GUIDATA oder STEAPPDATA/GETAPPDATA dazu mehr in der Doku oder benutze die Suchfunktion des Forums, da darüber schon sehr oft diskutiert wurde
Private Nachricht senden Benutzer-Profile anzeigen
 
p1t
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 07.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.01.2014, 16:43     Titel:
  Antworten mit Zitat      
Vielen Dank für deine Hilfe, es funktioniert jetzt. Allerdings habe ich deinen Code leicht modifiziert damit es klappt, hier nochmal zur Vollständigkeit, so funktioniert es wie gewünscht:

Code:

function edit1_Callback(hObject, eventdata, handles)
% hObject    handle to edit1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text
%        str2double(get(hObject,'String')) returns contents of edit1 as a double
handles.p1(1) = str2double(get(hObject,'String'));
guidata(hObject, handles);
 
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.