Ändern einer Variablen via Bildschirmeingabe

Programmierung der FHZ-Zentralen mit contronics homeputer Standard / homeputer Studio & WEB-Server

Moderator: Co-Administratoren

Antworten
Benutzeravatar
Fragezeichen
Beiträge: 29
Registriert: 23.04.2009, 19:17
Wohnort: Spanien

Ändern einer Variablen via Bildschirmeingabe

Beitrag von Fragezeichen » 02.02.2012, 18:23

Hallo an Alle,
nach längerer Auszeit muss ich an meiner Programmierung einige Änderungen durchführen
und steh total auf dem "Schlauch".

Um meine Heizung individueller zu steuern würde ich gern zwei Temperatur Werte (variablen)
über Eingabe am Bildschirm verändern.
Ich habe mir zwei Objekte (Zahl) erstellt und in das Makro folgenden Befehl geschrieben:

Objekt 1
Eingabe("Neue Aus Temp",Heizungssteuerung.VarOff)
Objekt 2
Eingabe("NeueEinTemp",Heizungssteuerung.VarOn)

Wenn ich nun das Objekt klicke, öffnet sich ein Eingabefenster, ich trage einen Wert ein aber der Wert wird nicht in
der Variablen geändert.
Kann jemand für mich das Licht bitte einschalten :-)

Grüsse Fragezeichen

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Ändern einer Variablen via Bildschirmeingabe

Beitrag von buempi » 03.02.2012, 08:19

Hallo Fragezeichen

Wie geht's dann weiter im Makro? Ist dir bewusst, dass das Makro weiterarbeitet, der eingegebene Wert aber erst zur Verfügung steht, wenn du OK geklickt hast? Also nach EINGABE() ein WARTE() einfügen! - Lies dazu auch mal die Homeputer-Hilfe.

Viele Grüsse
Bümpi

Benutzeravatar
Fragezeichen
Beiträge: 29
Registriert: 23.04.2009, 19:17
Wohnort: Spanien

Re: Ändern einer Variablen via Bildschirmeingabe

Beitrag von Fragezeichen » 04.02.2012, 11:54

Hallo buempi,

vielen Dank für die Antwort. Ich habe jetzt ein warte eingefügt.
Allerdings hat sich an dem Ergebnis leider nichts geändert.

Eingabe("NeueEinTemp",Heizungssteuerung.VarOn)
warte("00:00:20")

Das ist alles was in dem Objekt steht. Es soll ja auch nur als Anzeige und Möglichkeit
zum ändern der soll werte da sein.
Soll heissen ich habe einen Solar Speicher und möchte über den Bildschirm die soll werte (Einschalt Temperatur/Ausschalt Temperatur)
eingeben. Die Variablen werden in einem anderen Objekt (Heizungssteuerung) verwendet.
Bin ich auf dem ganz falschen Weg?

Gruss Fragezeichen

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Ändern einer Variablen via Bildschirmeingabe

Beitrag von buempi » 04.02.2012, 12:52

Fragezeichen hat geschrieben:Bin ich auf dem ganz falschen Weg?
Eigentlich nicht; aber woher weisst du, dass es nicht geklappt hat? Dazu müsstest du dir doch die Variable nach der Eingabe noch Anzeigen lassen. Also z.B.:

Code: Alles auswählen

Eingabe("NeueEinTemp",Heizungssteuerung.VarOn)
warte("00:00:20")
Anzeige := "Neu eingegebener Wert: " + Heizungssteuerung.VarOn
Voraussetzung ist, dass du einen Wert einträgst, der zum Variablen-Typ passt; also in eine Zahlenvariable nicht etwa einen Text...
Viele Grüsse
Bümpi

Benutzeravatar
Fragezeichen
Beiträge: 29
Registriert: 23.04.2009, 19:17
Wohnort: Spanien

Re: Ändern einer Variablen via Bildschirmeingabe

Beitrag von Fragezeichen » 04.02.2012, 15:20

Hallo buempi,

leider kein Erfolg. Nach den 20 sec. warten springt der Wert wieder zurück auf den Wert davor.
Ich versuch es mal genauer zu beschreiben:

Ich habe ein Objekt Namens AnzeigeVarOn mit dem Format Zeichen(Zahl ebenfalls versucht) erstellt und das zeige
ich auch in der Visualisierung an.
Inhalt des Macros wie von Dir beschrieben:

Code: Alles auswählen

Eingabe("NeueEinTemp",Heizungssteuerung.VarOn)
warte("00:00:20")
AnzeigeVarOn := "Neu eingegebener Wert: " + Heizungssteuerung.VarOn
Die Variable wird im Objekt Heizungssteuerung verwendet.

Gruss Fragezeichen

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Ändern einer Variablen via Bildschirmeingabe

Beitrag von buempi » 04.02.2012, 15:27

Hallo Fragezeichen

Wenn du ins Eingabefeld z.B. 33 einträgst, müsste in deinem Zeichenobjekt "AnzeigeVarOn" nach 20 Sekunden der Text "Neu eingegebener Wert: 33" (ev. 33,0 wenn deine Variable einen Startwert mit Dezimalstelle hat) erscheinen.

Was kommt denn bei dir? Ist die Variable VarOn wirklich vom Typ Zahl? Wenn das der Fall ist, und trotzdem was anderes kommt, läuft irgendwo noch ein weiteres Makro, welches da reinpfuscht. Markiere mal dein Objekt "Heizungssteuerung" und klicke auf "Bezüge anzeigen". Vielleicht kannst du so den Sünder finden.

Viele Grüsse
Bümpi

Benutzeravatar
Fragezeichen
Beiträge: 29
Registriert: 23.04.2009, 19:17
Wohnort: Spanien

Re: Ändern einer Variablen via Bildschirmeingabe

Beitrag von Fragezeichen » 04.02.2012, 16:05

Läuft das normal? Ist das richtig so?
Also wenn ich am Bildschirm auf das Objekt AnzeigeVarOn klicke
öffnet sich ein Eingabefenster, das ist aber nicht das welches ich durch die Anweisung
Eingabe(" aufrufe. Denn da steht ein anderer Text drin. Das ist das Eingabefenster das kommt wenn
man z.B. auf einen Temperatursensor klickt. Wenn ich nun etwas in die Eingabezeile eintrage, und
mit OK bestätige sehe ich kurz ein weiteres Fenster aufblitzen (öffnen schliessen).
Über die Ablaufverfolgung habe ich gesehen das sich ein zweites Fenster (Das Fenster was durch die Anweisung aufgerufen wird) öffnet und wieder schliesst.

Bringt Dich das auf eine Idee, wo zu suchen wäre?

Danke
Fragezeichen

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Ändern einer Variablen via Bildschirmeingabe

Beitrag von buempi » 04.02.2012, 16:22

Fragezeichen hat geschrieben:Bringt Dich das auf eine Idee, wo zu suchen wäre?
Ja! Die Funktion EINGABE() verwendet man normalerweise in einem Knopf, wenn man sie durch Mausklick starten will. Das Fenster eines Zahlen- oder Zeichen-Objektes kann man ja direkt öffnen und so den Wert des Objektes (nicht allenfalls darin enthaltenerer Variablen) ändern.

Wenn du das Makro im Zahlenobjekt selbst drin hast, wird das Objekt-Fenster geöffnet; dann siehst du aber auch nicht die von dir programmierte Abfrage. Nur wenn du dann in diesem Objekt "Ausführen bei Änderung" aktiviert hast, wird das Makro nach dem Ändern der Wertes und Klick auf OK gestartet und dein Eingabe-Fenster erscheint.

Verschiebe das Makro in einem Knopf, und alles läuft, wie du es möchtest!

Viele Grüsse
Bümpi

Benutzeravatar
Fragezeichen
Beiträge: 29
Registriert: 23.04.2009, 19:17
Wohnort: Spanien

Re: Ändern einer Variablen via Bildschirmeingabe

Beitrag von Fragezeichen » 04.02.2012, 16:40

Das war die Lösung :D
Vielen Dank!!!

Antworten

Zurück zu „homeputer Studio / Standard: Programmierbeispiele“