|
|
Edit Feld: Wert anzeigen mit 4 Nachkommastellen |
|
Isamin |
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 28.04.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.06.2011, 10:05
Titel: Edit Feld: Wert anzeigen mit 4 Nachkommastellen
|
|
Hallo,
ich habe eine Frage zu Edit-Feldern.
In dem Edit-Feld wird ein Wert eingeben, der einer Variablen zugeordnet wird und dann wiederum auf 4 Nachkommastellen gerundet dem Edit-Feld zurück gegeben wird. Kann anstatt zu Runden, den Wert komplett zurück geben und dabei trotzdem nur 4 Nachkommastellen angezeigt werden. Wie beim Variable Editor. Angezeigt wird der Wert nur mit 4 Nachkommastellen und erst wenn man drauf klickt, wird der komplette Wert angezeigt.
(Dieser Code steht in der Callback Funktion des Edit-Feldes)
Vielen Dank
MfG
Isamin
|
|
|
|
|
tompie |
Forum-Guru
|
|
Beiträge: 260
|
|
|
|
Anmeldedatum: 19.09.07
|
|
|
|
Wohnort: München
|
|
|
|
Version: immer alles
|
|
|
|
|
|
Verfasst am: 01.06.2011, 10:16
Titel:
|
|
Olala, das ist aber schräg programmiert!
Du kannst das Problem viel besser folgendermaßen lösen:
(1) Der tatsächliche Variablenwert steht immer in der Eigenschaft 'Value' des edit-handles.
(2) Zur GUI-Darstellung des Wertes im edit-Feld wird in der Callback-Funktion der tatsächliche Wert der Variablen aus der 'Value'-Eigenschaft des handles gelesen, z.B. mit num2str(val,'%.4f') auf 4 Nachkommastellen gerundet und in die 'String'-Eigenschaft des edit-handles geschrieben. Den round-Befehl braucht man nicht!
(3) Natürlich kann man beim ersten Klick auch den gerundeten Wert anzeigen (siehe (2)) und beim zweiten Klick dann den genauen Wert. Dazu kopiert man den Wert aus der 'Value'-Eigenschaft ohne Rundung in die 'String'-Eigenschaft mit num2str(val).
Das Grundprinzip lautet also: Strikte Trennung von Inhalt und Darstellung!
Gruß tompie
|
|
|
Isamin |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 28.04.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.06.2011, 10:39
Titel:
|
|
Vielen Dank für die schnelle Antwort.
Ich glaube dass ich es Verstanden habe. Ich versuche es mal umzusetzen und melde dann meine Ergebnisse.
Übrigens, ich bin Anfänger, daher der schräge Code. Aber ich bin schon ganz glücklich, dass es soweit funktioniert.
|
|
|
Isamin |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 28.04.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 01.06.2011, 14:25
Titel:
|
|
|
|
|
Hallo,
ich weis jetzt nicht genau ob ich das falsch Verstanden habe.
Bei dem Edit-Feld handelt es sich um ein uicontrol mit der Eigenschaft 'style', 'Edit'.
Soweit ich das sehe, kann man den Text, der dort eingegeben wird nur als String auslesen, in eine Zahl umwandeln und dann einer Variablen zuordnen. Also in der Form
bzw.
Die Eigenschaft 'Value' ist bei dem Edit-Feld nicht zu verwenden.
Also, das Beispiel num2Str(val,'%.4f') gibt dem Edit-Feld die Zahl als String wieder zurück.
Es geht mir hier darum das zwischen 2 fenstern hin und her gerechnet werden kann, wobei jedes fenster 16 Edit-Felder hat.
Z.B.(jeweils 2 Felder) y und z in einem und Phase und Amplitude in dem anderen.
Wenn ich jetzt für y und z einen Wert eingebe und einen Button für das zweite klicke, gibt er im zweiten Fenster den gerechneten Wert aus.
Das ganze geht dann auch wieder zurück, wobei das erste Fenster der Master ist.
Es war eigentlich geplant, dass wenn man in ein Edit-Feld etwas eingibt, alle Variablen nochmal aktualisiert werden,
sich also die Werte der Edit-Felder ziehen.
Hier ist aber das Problem, dass hier dann der gerundete Wert genommen wird und die Rechnung sich ändert. Wenn man den Wert aber nicht gerundet ins Edit-Feld zurück gibt, hat man dort oft eine unansehnliche Zahl stehen
Es scheint mir, dass die Rechnungen selbst nur über die Variablen laufen dürfen. Also, dass nur die Eingabe in ein Edit-Feld einer Variablen zugeordnet wird und ohne Eingabe keine Werte aktuallisiert werden dürfen.
Wenn jemand noch eine andere Idee hat...
Thanks
|
|
|
tompie |
Forum-Guru
|
|
Beiträge: 260
|
|
|
|
Anmeldedatum: 19.09.07
|
|
|
|
Wohnort: München
|
|
|
|
Version: immer alles
|
|
|
|
|
|
Verfasst am: 06.06.2011, 12:27
Titel:
|
|
Hallo,
Zitat: |
Die Eigenschaft 'Value' ist bei dem Edit-Feld nicht zu verwenden. |
Das ist nicht korrekt, man kann die 'Value'-Eigenschaft verwenden. Dort speicherst Du den tatsächlichen Wert der Variablen mit
In der 'String'-Eigenschaft stellst Du immer nur einen nach Deinen Wünschen gerundeten Wert der tatsächlichen Variablen dar. Mit diesem Wert darf nicht weitergerechnet werden, sondern immer nur mit dem tatsächlichen Wert.
Gruß tompie
|
|
|
Isamin |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 28.04.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 07.06.2011, 09:17
Titel:
|
|
Hallo Tompie,
es hat Klick gemacht. Vielen Dank für deine Hilfe. Das klappt sehr gut.
Ich kann dann denn Thread mal schliessen.
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|