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

Aktualisierung von Werten durch Edit-Text...

 

Ritter_vom_Nie
Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 17.02.08
Wohnort: Hamburg
Version: R2007b
     Beitrag Verfasst am: 20.03.2008, 16:51     Titel: Aktualisierung von Werten durch Edit-Text...
  Antworten mit Zitat      
Hi Leute!

Ich schon wieder.... Mußte vorhin leider einen "Bug" in meinem GUI feststellen und kann ihn mir zur Zeit nicht erklären!

Und zwar habe ich einige Edit-Texte, welchen ich in der Opening Function 'Defaultwerte" zuweise, d.h. sowohl in der Grafik als auch im Handle.
Nun wird bei Eingaben des Benutzers, sprich Änderungen der Werte, nur ein Teil der neuen Werte übernommen (auf Knopfdruck), obwohl der verwendete Code zur Aktualisierung des Handles immer identisch ist.

Woran könnte es liegen, dass es bei einigen funktioniert und bei anderen nicht?

Ein Beispiel:
- in Opening Function
Code:

ts_ber = '-10';
handles.unused_ts_ber = ts_ber;
set(handles.unused_ts_ber_text,'String',ts_ber);


- zugehörige Callback
Code:

function unused_ts_ber_text_Callback(hObject, eventdata, handles)
x = str2double(get(hObject,'String'));
unused_ts_ber = get(hObject,'String');
if isnan(x)
    set(hObject, 'String', 0);
    errordlg('Input must be a number','Error');
end
handles.unused_ts_ber = unused_ts_ber;
guidata(hObject, handles);


Nach diesem Prinzip läuft es in meinem GUI immer ab, mal mit und mal ohne Erfolg... Question
Private Nachricht senden Benutzer-Profile anzeigen


tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 20.03.2008, 17:46     Titel:
  Antworten mit Zitat      
Hallo,

dazu sollte man wissen, daß die edit-Callback-Routine erst dann aufgerufen wird, wenn man entweder im edit-Fenster die Enter-Taste drückt oder den Focus per Mausklick auf ein anderes Objekt setzt. Evtl. werden bei Dir genau die Werte nicht übernommen, die nicht mit Enter bestätigt wurden!?

MfG,

tompie
Private Nachricht senden Benutzer-Profile anzeigen
 
Ritter_vom_Nie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 17.02.08
Wohnort: Hamburg
Version: R2007b
     Beitrag Verfasst am: 20.03.2008, 22:32     Titel:
  Antworten mit Zitat      
Danke für die Antwort!

Mit der Enter-Taste habe ich schon rumprobiert und daran scheint es nicht zu liegen. Es ist auch so, dass immer die selben Werte nicht übernommen werden, obwohl der Code halt immer nach dem selben Prinzip aufgebaut ist und alle erst nach dem Betätigen eines Pushbuttons eingelesen werden.

Irgendwo ist der Wurm drin...
Private Nachricht senden Benutzer-Profile anzeigen
 
tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 25.03.2008, 16:34     Titel:
  Antworten mit Zitat      
Hallo,

welche Werte werden denn bei den falschen übernommen? Die 'alten' Werte oder einfach nur irgendwas?

Gruß tompie
Private Nachricht senden Benutzer-Profile anzeigen
 
Ritter_vom_Nie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 17.02.08
Wohnort: Hamburg
Version: R2007b
     Beitrag Verfasst am: 25.03.2008, 17:48     Titel:
  Antworten mit Zitat      
Es werden die alten 'Defaultwerte' übernommen statt die durch den Benutzer im Edit-Feld aktualisierten.
Private Nachricht senden Benutzer-Profile anzeigen
 
tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 26.03.2008, 10:54     Titel:
  Antworten mit Zitat      
Hallo Ritter,

setz doch mal einen Breakpoint direkt in Deine Callback-Routine und prüfe, ob diese auch tatsächlich bei Füllung der verdächtigen edit-Boxen angesprungen wird.

Gruß tompie
Private Nachricht senden Benutzer-Profile anzeigen
 
Ritter_vom_Nie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 17.02.08
Wohnort: Hamburg
Version: R2007b
     Beitrag Verfasst am: 26.03.2008, 14:59     Titel:
  Antworten mit Zitat      
Danke für eure Anregungen!
Inzwischen habe ich den Übeltäter gefunden und es scheint wie gewünscht zu laufen. Das Problem war eine Timer Function, die die alte Handles am leben erhalten hat....man war das ne schwere Geburt...

Danke nochmals für eure Mühe.
Private Nachricht senden Benutzer-Profile anzeigen
 
tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 26.03.2008, 16:38     Titel:
  Antworten mit Zitat      
Hallo Ritter,

ah, timer-Routinen! Davon war bisher noch nicht die Rede!
Daher ein Tip für die Zukunft:
Noch besser wäre es vermutlich gewesen, Du hättest Dein Problem von Anfang an in voller Breite geschildert. Dann stochert man als Ratgeber nicht so sehr im Nebel herum ...

Freut mich natürlich, daß Du den Fehler gefunden hast.

Viel Spaß noch,

Gruß tompie
Private Nachricht senden Benutzer-Profile anzeigen
 
Ritter_vom_Nie
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 27
Anmeldedatum: 17.02.08
Wohnort: Hamburg
Version: R2007b
     Beitrag Verfasst am: 26.03.2008, 18:15     Titel:
  Antworten mit Zitat      
Hi Tompie!

Werd ich in Zukunft versuchen! Hatte den blöden Timer beim Erstellen des Thread auch überhaupt nicht aufn Schirm...das war vorhin eher eine spontane Eingebung Wink

Danke und Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.05.2008, 20:51     Titel:
  Antworten mit Zitat      
hey leute,
hab auch ein kleines problem.
Ich habe mehrere edit texte in denen ich werte eingeben kann.
Nun tippe ich die werte ein und speicher sie mit dem save button.
Das geht auch. Wenn ich aber das fenster schliesse und wieder oeffne sind alle werte auf null.Was fuer ein befehl soll ich eingeben sodass die werte immer noch zu sehen sind wenn ich das fenster nochmal oeffne.
Vielen Dank im Voraus.
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 14.05.2008, 07:55     Titel:
  Antworten mit Zitat      
Moin,

am besten ist, du speicherst dir die Werte in einem *.mat-file ab und lädst dieses in der opening function wieder ein:
Code:

% Abspeichern:
save('edit-felder.mat','var1','var2');

% laden des files:
try % falls es der erste Aufruf ist, würde sonst eine Fehlermeldung kommen
    load edit-felder.mat; % einlesen des .mat-files
    set(handle.edit1,'String',num2str(var1)); % Setzen der Anzeige des edit-Feldes auf den alten Wert
    .
    .
    .
catch
end
 


Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2008, 18:24     Titel:
  Antworten mit Zitat      
Erstmal vielen Dank Alex fuer deine Hilfe, aber es tut sich nichts.
Ich hab als versuch ein einfaches beispiel aufgestellt mit einem Save button, einen clos button und einen Edit text.

Ich hab als befehl unter dem edit1 Callback, ich hab den edit1 in q geaendert,
also q callback den befehl:

q=str2double(get(hObject,'String'));
handles.q = q
guidata(hObject,handles)

dann hab ich zusaetzlich dein befehl eingegeben:

try
load vars.mat ;
set(handle.q,'String',num2str(q));


catch
end

und beim Save button:

q=handles.q;
save ('vars.mat','q')

Close button:

close Probe

Save funktioniert, wenn ich aber jetzt den close button betaetige, dann schliesst es auch, aber wenn ich nochmal auf run druecke kommt immernoch nicht der wert den ich gespeichert habe.

Hmm, was mach ich falsch?
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2008, 18:28     Titel:
  Antworten mit Zitat      
etwas muss ich ergaenzen:

Der gespeicherte wert wird in dem edit text nicht angezeigt.
 
steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 15.05.2008, 09:31     Titel:
  Antworten mit Zitat      
Moin,
poste mal bitte deinen (gekürzten) Quellcode mit der code-Umgebung.
Das Beispiel sollte die Fensterdefinition, die Buttons, das Edit-Feld und die Callbacks enthalten...

Dann schauen wir mal was passiert...

Gruß
Alex

PS: Oder du registrierst dich (was hier sowieso sinnvoll ist) und schreibst mir ne PN Wink
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
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.