GUI Auslesen aus dem Edit Text < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 13:10 Do 09.08.2012 | Autor: | Anfanger |
Aufgabe | Werte aus zwei Edit Text Feldern auslesen und Multiplizieren, anschließend in einem anderem Edit Text Feld ausgeben! |
Ich habe drei Edit Text Felder, in zwei von denen sollen die Werte eingegeben werden, in dem dritten soll es dann ausgegeben werden (Feld 1 wird mit Feld 2 Multipiziert und Anschließend im Feld 3 ausgegeben).
Ich kann die Werte reinschreiben, sie werden auch berechnet, aber die Ausgabe erfolgt nur im Command Window, also nicht im Feld 3 wie es eigentlich sein sollte.
Hier mein Lösungsversuch:
StrWert2 = get(handles.Wert2,'String')
Wert2=str2double(StrWert2)
set(handles.Wert1,'Value',Wert3)
könnte mir jemand da weiterhelfen???
habe noch eine Datei Eingefügt fürs bessere Verständniss.
[Dateianhang nicht öffentlich]
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Dateianhänge: Anhang Nr. 1 (Typ: png) [nicht öffentlich]
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 20:14 Do 09.08.2012 | Autor: | franzzink |
Hallo,
gibt es auch ein Beispielprogramm zu dem, was schon funktioniert? Also konkret meine ich damit, wie es funktioniert den Text auszulesen.
Aus dem Stegreif kann ich die Frage nicht beantworten, da ich diesen Fall noch nie gebraucht habe. Wenn ich aber schon ein Beispielprogramm habe, in dem das auslesen demonstiert wird, bin ich gerne bereit zu versuchen, das mit der Ausgabe in Feld 3 auszuprobieren.
Schöne Grüße
franzzink
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:29 Mi 15.08.2012 | Autor: | Anfanger |
Hallo franzzik,
was ich jetzt gemacht habe ist, das ich in das zu Schreibende Feld nicht "Edit Text" sonder "Static Text" (Dioden pro Feld) verwendet habe, die beiden anderen Felder (Diodenhöhe & Diodenbreite) habe ich als Edit Feld beibehalten.
Jetst kann ich alles was ich im Feld (Diodenhöhe & Didodenbreite) reinschreibe im Auslesefeld (Dioden Pro Feld)auslesen lassen. Aber die Multiplikation von beiden also (Diodenhöhe * Didenbreite) konnte ich leider noch nicht Programieren.
hier der bis jetzt funktionierende Programcode: siehe erneutes Bild
erg = eval(get(handles.edit1,'String'));
set(handles.text,'String',num2str(erg));
erg = eval(get(handles.edit2,'String'));
set(handles.text,'String',num2str(erg));
wie gesagt die Multiplikation vonbeiden zusammen und anschließend die Ausgabe fehlt mir noch!
Dateianhänge: Anhang Nr. 1 (Typ: png) [nicht öffentlich] Anhang Nr. 2 (Typ: png) [nicht öffentlich]
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 13:25 Do 16.08.2012 | Autor: | Anfanger |
danke es hat wunderbar geklappt :=)
|
|
|
|
|
Guten Tach,
> Werte aus zwei Edit Text Feldern auslesen und
> Multiplizieren, anschließend in einem anderem Edit Text
> Feld ausgeben!
> Ich habe drei Edit Text Felder, in zwei von denen sollen
> die Werte eingegeben werden, in dem dritten soll es dann
> ausgegeben werden (Feld 1 wird mit Feld 2 Multipiziert und
> Anschließend im Feld 3 ausgegeben).
>
> Ich kann die Werte reinschreiben, sie werden auch
> berechnet, aber die Ausgabe erfolgt nur im Command Window,
> also nicht im Feld 3 wie es eigentlich sein sollte.
> Hier mein Lösungsversuch:
>
> StrWert2 = get(handles.Wert2,'String')
> Wert2=str2double(StrWert2)
> set(handles.Wert1,'Value',Wert3)
set(handles.Wert1,'Value',Wert3)
set(handles.Wert1,'Value',Wert2)
Unter der Annahme, dass du es auch genau so in deinem Code hast. Falls dein Code an dieser Stelle richtig ist, dann probier wenigsten
set(handles.Wert1,'Value',42)
aus, um zu sehen ob auch überhaupt dein Code ausgeführt wird.
Wenn du jetzt überall noch ein Semikolon an das Ende anfügst, so bleibt auch dein Command-Window leer.
Das mit dem Semikolon würde ich sowieso empfehlen, sofern du den Matlab-Compiler verwenden möchtest. Manch einmal hat bei mir die GUI-Anwendung "herum gezickt", wenn sie auf das nicht vorhandenes Command-Window schreiben wollte.
>
>
>
> könnte mir jemand da weiterhelfen???
> habe noch eine Datei Eingefügt fürs bessere
> Verständniss.
> [Dateianhang nicht öffentlich]
>
>
> Ich habe diese Frage in keinem Forum auf anderen
> Internetseiten gestellt.
EDIT: Anmerkungen bzgl. des Programmierstils
Verwende für dich und andere aussagekräftige Variablennamen. Das hat zwei Vorteile:
1.) auch andere verstehen deinen Quelltext oder du verstehst ihn auch noch in 3 Monaten (hat gewisse Vorteile)
2.) man bekommt eine ähnliche Muskulatur, wie Popeye
Ich habe einen Kommilitonen, der nummeriert auch seine Variablen durch: Schalter1, Schalter2, Schalter3, .. unabhängig ob der Datentyp int, double, bool, ... ist. Da weigere ich mich nach Fehlern zu suchen.
Gewöhne dir ab besten soetwas an:
txtDiodenhoehe für das Textfeld Diodenhöhe
txtDiodenbreite für das Textfeld Diodenbreite
txtDiodenAnzahl .....
Analog auch das für die anderen Elemente, wie dem Schieberegler "sldBreite" (für "Slide" und "Breite"). Aber das musst du wissen, wie du damit umgehst.
gruß
wieschoo
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 14:34 Do 16.08.2012 | Autor: | Anfanger |
Danke für die Informationen, es hat mir vile geholfen, aber ich hätte da noch eine Frage, ich hatte es mit "String" geschrieben sie aber mit "Value", könnten Sie mir den grund nennen?
Die Änderungen von den Variabelnamen habe ich vorgenommen, ist auch von anfang an verständlicher!
beste Grüße
Hasan
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:25 Do 16.08.2012 | Autor: | wieschoo |
> Danke für die Informationen, es hat mir vile geholfen,
> aber ich hätte da noch eine Frage, ich hatte es mit
> "String" geschrieben sie aber mit "Value", könnten Sie mir
> den grund nennen?
Die beste Antwort ist hier, weil ich es immer so gemacht habe. Klickt man im Gui-Editor auf "Callback" von den Textfelder so erstellt sich automatisch eine Funktion mit Kommentaren (die sind auch bei dir). In den Kommentaren steht drin, wie man auf die Felder zugreift. Und da steht etwas von String.
Intuitiver wäre wirklich "Text" oder "Value" wie bei anderen Sprachen (VB,C#, C++ mit MCF ...) gewesen.
>
> Die Änderungen von den Variabelnamen habe ich vorgenommen,
> ist auch von anfang an verständlicher!
>
>
> beste Grüße
> Hasan
Grüße zurück
PS: Warum so förmlich?
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:43 Mo 20.08.2012 | Autor: | Anfanger |
danke für die Informationen
wegen der Höflichkeit :)
|
|
|
|