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

Edit Wert löschen und auf Inactive setzten

 

Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.03.2012, 13:16     Titel:
  Antworten mit Zitat      
Hallo,

ich verstehe gerade die Frage nicht.
Was genau ist das jetzt noch nicht gelöste Problem?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen


T_Meister
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 13.03.2012, 13:20     Titel:
  Antworten mit Zitat      
Ich verstehen nicht so genau, wo in deiner Antwort das "" angesprochen wird, da ich dort nicht deine Cell-Struktur verwende. Die Reaktion des Popup kann/soll erst erfolgen wenn Wert auf "" gesetzt wurde. Daher verstehe ich auch nicht so ganz mit welchem "Hilfsargument" ich das vergleichen könnte.

Gruß
Thorsten
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.03.2012, 13:40     Titel:
  Antworten mit Zitat      
Hallo,

willst du testen, ob das Feld leer ist oder ob das gleiche wie in einem anderen Feld drin steht?

Ich glaube, wir reden gerade an einander vorbei. Das einfachste wäre aus meiner Sicht, wenn du nochmal quasi von vorne sagst, was das momentane Problem ist.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
T_Meister
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 13.03.2012, 14:46     Titel:
  Antworten mit Zitat      
Alles klaro Wink

Folgendes passiert.

1)Auswahl Popup1, z.B. Dauer, und darauffolgenden Eingabe im Wert_1 Fester
2)Auswahl Popup2, z.B. Geschwindigkeit, und darauffolgenden Eingabe im Wert_2 Fester

Stelle ich jetzt Popup2 auch auf Dauer, erkennt er, dass es nicht geht, da es sich um eine Dopplung des Parameters handelt. Daraufhin löscht er den Wert in der Eingabe und gibt die Fehlermedlung aus, soweit ist das auch sehr schön. Im Anschluss bleibt das Popup2 aber auf Dauer stehen und ich hätte gerne, dass das Popup, bei einer Fehlermedlung, wieder auf "" zurückspringt.

Ich bin mir zwar nicht sicher, aber ich würde es daher so verstehen, dass dieser Befahl aus dem Callback des Werts kommen müsste, der die Dopplung verursacht. In dem Werte Callback habe ich aber nicht deine Cell-Struktur benutzt, da sicher Wert1 nur auf Popup1 bezieht, gleiche Beziehung gilt für alle anderen Paare.

Hoffe so ist es etwas verständlicher
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.03.2012, 15:18     Titel:
  Antworten mit Zitat      
Hallo,

was ich dann machen würde:
'string' des entsprechenden Edit-Feldes auf leer setzen.
'value' des entsprechenden Popup-Feldes zurücksetzen, entweder auf 0 oder die vorherige Auswahl.

Wenn das nicht funktioniert, bitte den entsprechenden Code posten.

Danke und Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
T_Meister
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 13.03.2012, 16:20     Titel:
  Antworten mit Zitat      
Wieder super, vielen Dank.
Ich habe es ganz gut umgesetzt bekommen. Jetzt hätte ich noch ein letztes Anliegen, bevor die Grundstruktur meiner GUI abgeschlossen ist.
Siehst du eine Möglichkeit für folgendes Problem:
Man kann im Popup1 z.B. Dauer auswählen und gibt danach einen Wert dafür ein, welcher anschließend in die Ausgabe übernommen wird.
-> Ändere ich jetzt aber den Popupeintrag, bleibt der Wert in der Ausgabe stehen. Ich möchte, dass sich dieser dann aber löscht. Nur ist das Problem, dass die Übertragung des Wert, sowohl in Ausgabe_1 als auch 2 stattfinden kann. Gleiches kann von Popup2 auch passieren. Ich bräuchte also eine Art Rückverfolgung woher der Wert kam. Ich denke auch, dass es mit ansteigender Anzahl von Popups noch schwieriger wird. Gibts bzw geht so etwas überhaupt?
Viele Grüße
Thorsten

Zuletzt bearbeitet von T_Meister am 13.03.2012, 17:02, insgesamt 2-mal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.03.2012, 16:36     Titel:
  Antworten mit Zitat      
Hallo,

du verlierst mich wieder ein wenig Wink

Aber ich glaube, ich habe Vorschläge:
Bei einem Callback ist hObject immer das Handle zu dem Objekt, das den Callback auslöst. Das kannst du verwenden und z.B. mit get den Tag abfragen.
Alternativ kannst du diese Information selbst abspeichern, z.B. im Feld userdata eines Elements oder als zusätzliche Daten in der Handles-Struktur.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
T_Meister
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 13.03.2012, 17:01     Titel:
  Antworten mit Zitat      
Ich habe gerade über deine Antwort nachgedacht, bin aber noch nicht schlauer geworden.
Ich übergebe die Werte an die Ausgabe mittels:
Code:
if (strcmp(ausgabe_2,'Max. Beschleunigung'))
        set(handles.Aus_Besch,'String',Wert_2);
elseif (strcmp(ausgabe_2,'Regelungsdauer'))
        set(handles.Aus_Dauer,'String',Wert_2);    

gleiches gilt natürlich für Wert 1.
Das wäre dann ja der Callback der ausgelöst wird, um meine Ausgabe zu füllen, meinst du den?. Die Ausgabe an sich hat keinen Callback.
->Jetzt müsste sich der Wert nur zurücksetzten wenn die POP-Up Auswahl verändert wird. Und die Ausgabe müsste auch wissen woher der Wert kam, da eine Dopplung von Eingaben unmöglich ist. Ichh wüsste jetzt nicht wie ich das mit einem get(hobject...) verbinden könnte. Falls es schwer vorstellbar ist wie ich das meine, könnte ich auch noch mal schnell die neuen Sourcedateien hochladen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.03.2012, 20:12     Titel:
  Antworten mit Zitat      
Hallo,

wie gesagt: Rückverfolgung ist schwierig bis unmöglich. Das naheliegendste ist, die Informationen mitzuloggen, wenn sie entstehen. Wenn also z.B. in Ausgabe geschrieben wird, direkt mitloggen, was geschrieben wurde und von wem etc. Welche Informationen du dazu brauchst, solltest du selbst am besten wissen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
T_Meister
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 14.03.2012, 09:17     Titel:
  Antworten mit Zitat      
Hallo Harald,

danke für deinen Ansatz. Wenn ich dich richtig verstehen, müsste also quasi das Wertfenster (1,2,x) mit geloggt werden, das wäre dann ja die Adresse vom dem die Ausgabe gefüllt wird. Hast du eine Idee wie ich diese Information speichern könnte, bzw ich später darauf zugreifen kann?
Im Anschluss würde dann ja wohl eine einfache Abfrage reichen, ob diese LogInfo geändert wurde und dann ggf. der Wert wieder gelöscht wird oder?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.03.2012, 09:30     Titel:
  Antworten mit Zitat      
Hallo,

ich bin mir nicht sicher, ob ich dich da richtig verstehe; insbesondere nicht, was du mit (1,2,x) meinst.

Bottom line ist jedoch: es gibt keinen fertigen Mechanismus zur Rückverfolgung. Das musst du wenn selbst einbauen, indem du diese Informationen (du kannst es z.B. als History ansehen) speicherst.

Möglichkeiten dazu: z.B. im Feld userdata eines Elements oder als zusätzliche Daten in der Handles-Struktur, oder auch mit setappdata/getappdata.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
T_Meister
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 14.03.2012, 09:45     Titel:
  Antworten mit Zitat      
Ich meine damit dass quasi die Information für meine Ausgabefeld aus dem Wertefeld 1, oder aus dem Wertefeld 2, etc kommen kann. das wäre dann ja eine Information anhand derer ich den Hergang bestimmen könnte. Die Historie bräuchte ja immer nur einen Wert beinhalten, da bei Veränderung der Wert der Augabe gelöscht wird. Ich habe gerade mal geschaut nach setappdata/getappdata. In der Matlab Hilfe steht aber was von Graphics, kann ich das dann überhaupt verwenden?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.03.2012, 09:47     Titel:
  Antworten mit Zitat      
Hallo,

ja, das kannst du hierfür verwenden. Vielleicht die Doku etwas genauer lesen Wink
Mit setappdata kannst du beliebige Informationen an grafische Objekte anhängen, und mit getappdata kannst du die Informationen wieder abrufen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
T_Meister
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 85
Anmeldedatum: 14.12.11
Wohnort: BS
Version: 2013a&b, 2014a&b
     Beitrag Verfasst am: 14.03.2012, 10:14     Titel:
  Antworten mit Zitat      
Vielleicht kannst du mir noch kurz helfen:
das ist ja die Entscheidungsabfrage:

Code:
if (strcmp(ausgabe_1,'Max. Beschleunigung'))
    set(handles.Aus_Besch,'String',Wert_1);
elseif (strcmp(ausgabe_1,'Regelungsdauer'))
     set(handles.Aus_Dauer,'String',Wert_1);
end


somit wären die Werte, die ich in Übergeben möchte an die setupdata Wert_ und Aus_

wie kann ich in die setappdata die Information von Wert und Aus berücksichtigen. Ich denke, dass dies nach der If-Abfrage passieren müsste, da die Werte ja veränderbar sind. Müssen die Informationen vorher noch definiert werden, oder ginge es so

setappdata(gfc,'Wert_Daten',?)

Ich verstehe da noch nicht ganz die Dekleration. Gerade beim ?

Gruß
Thorsten
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.03.2012, 11:00     Titel:
  Antworten mit Zitat      
Hallo,

im Grunde so:
Code:
setappdata(handle, variablenname, variablenwert)


Als Handle würde ich das Feld verwenden, zu dem die Information gehört
(handle.tag).

Der Variablenname ist frei wählbar, und dann übergibst du nur noch zusätzlich die Information. Es ist also fast wie eine Zuweisung
Code:
variablenname = variablenwert;
nur dass die Information nicht in einem Workspace auftaucht, sondern in dem grafischen Objekt mitgespeichert wird.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite Zurück  1, 2, 3, 4  Weiter

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 - 2025 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.