Autor |
Beitrag |
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 02.08.13 12:59
Hallo,
damit ich meinem Ruf (welcher eigentlich ) gerecht bleibe, gibt's passend zu den Außentemperaturen das ultimative Tool!
Das "hochanspruchsvolle" Programm wandelt Temperaturmaßeinheiten um. Enthalten sind Celsius, Fahrenheit, Réaumur, Delisle, Rømer und Kelvin.
Wer braucht denn so etwas nicht?
Beste Grüße
Mathematiker
Rev 1: Auf Anregung von Nersgatt kann man nun eine eigene Maßeinheit festlegen. Erklärung siehe weiter unten.
Rev 2: Fehler bei der Beschriftung Siede- und Schmelztemperatur geändert.
Rev 3: mit Internet-Abfrage der aktuellen Temperatur.
Rev 4: Eingabefehler behoben.
Einloggen, um Attachments anzusehen!
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Zuletzt bearbeitet von Mathematiker am Fr 09.08.13 10:18, insgesamt 4-mal bearbeitet
Für diesen Beitrag haben gedankt: Nersgatt
|
|
Ralf Jansen
Beiträge: 4705
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Fr 02.08.13 13:17
Zitat: | Wer braucht denn so etwas nicht? |
Also wenn es automatisch die aktuelle Temperatur nimmt und du noch ein Edit einbaust brauch ich das.
|
|
Nersgatt
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Fr 02.08.13 13:21
Ich möchte mir gern meine eigene Einheiten definieren!
Bei 47°Jens Gefriert Wasser und bei 64524°Jens kocht es. Das könntest Du doch bestimmt noch eben einbauen, oder? Bei den Temperaturen kann man ja eh nichts anderes sinnvollen machen, außer am Rechner zu basteln.
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 02.08.13 14:12
Hallo,
Nersgatt hat folgendes geschrieben : | Ich möchte mir gern meine eigene Einheiten definieren!
Bei 47°Jens Gefriert Wasser und bei 64524°Jens kocht es. |
Dein Wunsch ist mir natürlich Befehl.
Im 2."Super-Temperaturtool" gibt es jetzt auch die Maßeinheit Jens und genau nach Deinen Vorgaben.
Es war natürlich etwas "hinterhältig" , die Siedetemperatur auf über 32767 zu setzen, da dann die UpDown-Komponenten aussteigen. Deshalb habe ich sie durch Rx-Komponenten ersetzt.
Da ich nicht davon ausgehe, dass jeder diese Komponenten installiert hat, wird es auch nicht sicher zu Übersetzen gehen.
Beste Grüße
Mathematiker
Einloggen, um Attachments anzusehen!
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Nersgatt
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Fr 02.08.13 14:16
Es ging mir viel mehr darum, es so dynamisch zu gestalten, dass sich jeder seine eigenen Einheiten definieren kann. Und damit kann man (oder vielleicht Schüler) gleich lernen, dass man eigentlich nur 2 Fixpunkte und einen coolen Namen braucht um eine eigene Einheit zu definieren.
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 02.08.13 15:27
Hallo,
Nersgatt hat folgendes geschrieben : | Es ging mir viel mehr darum, es so dynamisch zu gestalten, dass sich jeder seine eigenen Einheiten definieren kann. |
Habe ich falsch verstanden.
In der Revision 1 des ersten Programms kann man nun eine eigene Maßeinheit festlegen. Diese wird dann in die aufklappbare Box in der Mitte angefügt.
Festgelegt werden als Fixpunkte Siede- und Schmelzpunkt des Wassers in °C, der Name und die Abkürzung der Einheit.
Die Fixpunkte dürfen betragsmäßig die 32000 nicht überschreiten (Updown-Bereich!).
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Ralf Jansen
Beiträge: 4705
Erhaltene Danke: 991
VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
|
Verfasst: Fr 02.08.13 15:37
Schmelz und Siedetemperatur vertauscht? Oder passt sich mein IQ gerade der Umgebungstemperatur an?
|
|
Nersgatt
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Fr 02.08.13 15:42
Ralf Jansen hat folgendes geschrieben : | Schmelz und Siedetemperatur vertauscht? Oder passt sich mein IQ gerade der Umgebungstemperatur an? |
Wieso, die Siedetemperatur kann doch unter der Schmelztemperatur sein. Dann läuft die Skala halt nur "andersrum", als wir es gewöhnt sind.
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 02.08.13 15:55
Hallo,
Ralf Jansen hat folgendes geschrieben : | Schmelz und Siedetemperatur vertauscht? |
Sorry, mein Fehler.
Alte Menschen und besonders deren Gehirn leiden unter der Hitze i.A. mehr.
In der Revision 2 habe ich die Beschriftung korrigiert. Außerdem wird die Skale auch bei umgekehrter Reihenfolge jetzt beschriftet.
Erst war das Programm als kleiner Spaß gedacht, nun wird es ja richtig Stress. Oder sind es die 11°Adams?
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
FinnO
Beiträge: 1331
Erhaltene Danke: 123
Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
|
Verfasst: Fr 02.08.13 20:53
Fehlt eigentlich nur noch eine Temperaturabfrage übers Internet
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 02.08.13 21:19
Hallo,
FinnO hat folgendes geschrieben : | Fehlt eigentlich nur noch eine Temperaturabfrage übers Internet |
Da stimme ich Dir voll zu, aber ...
Ich habe nicht einmal die Spur von einer Ahnung, ob und wie so etwas geht. Vielleicht kannst Du das ja ergänzen.
Mein Dank wäre die ewig sicher.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Gerd Kayser
Beiträge: 632
Erhaltene Danke: 121
Win 7 32-bit
Delphi 2006/XE
|
Verfasst: Fr 02.08.13 22:08
Mathematiker hat folgendes geschrieben : | Ich habe nicht einmal die Spur von einer Ahnung, ob und wie so etwas geht. |
Versuchs mal damit: www.wetter.com/apps_und_mehr/website/api/
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 02.08.13 22:56
Hallo,
Danke für den Hinweis.
Ich habe mir das C#-Beispielprogramm angesehen und verstehe NICHTS.
Da werde ich wohl C# erst einmal installieren müssen und dann Schritt für Schritt prüfen, was da passiert.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
FinnO
Beiträge: 1331
Erhaltene Danke: 123
Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
|
Verfasst: Fr 02.08.13 23:26
Im Prinzip kannst du nach einer Registrierung recht einfach mit IndyHttp auf die API zugreifen. Die Antwort kommt dann direkt als XML oder JSON.
|
|
Gerd Kayser
Beiträge: 632
Erhaltene Danke: 121
Win 7 32-bit
Delphi 2006/XE
|
Verfasst: Sa 03.08.13 11:41
Mathematiker hat folgendes geschrieben : | Ich habe mir das C#-Beispielprogramm angesehen und verstehe NICHTS. |
Wie man genau vorgehen muss, ist doch auf der Webseite beschrieben. Dazu braucht man kein C#.
Um das Angebot nutzen zu können, muss man sich dort registrieren. Die Anzahl der Abfragen ist auf 10.000 pro Monat beschränkt. Da sich das Wetter ja nicht sekündlich ändert, reicht eine Abfrage alle 15 Minuten oder mehr aus (= knapp 3.000 Abfragen je Monat).
In der Anwendung müssen Hinweise zu wetter.com enthalten sein (Logo, Link bzw. Text).
Oben Genanntes gilt aber nur für eine nicht-kommerzielle Anwendung.
Hier dazu die einzelnen Schritte:
1. Auf der Webseite registrieren. Das ist meines Wissens kostenfrei, aber man stimmt der Zusendung von Werbung per Email zu.
2. Dort ein Projekt anlegen (ich finde den Ausdruck Profil passender).
3. Über eine Url die Daten abrufen. Diese Url hat folgenden Aufbau:
- Webadresse (wetter.com)
- Suchabfrage
- MD5-Checksumme über die Suchabfrage
Der genaue Aufbau wird aber auf der Webseite erklärt.
4. Daten bekommt man dann standardmäßig als XML oder optional im JSON-Format geliefert.
5. Diese Ergebnisse in der eigenen Anwendung anzeigen.
6. Bildchen (Gewitterwolke usw.) sind auch dabei. Welches Bild darzustellen ist, bekommst Du auch mitgeliefert.
Im Grunde gibt es nur zwei kleine "Problemchen" zu lösen: Wie man eine MD5-Checksumme berechnet. Und wie man XML bzw. JSON ausliest.
|
|
Gerd Kayser
Beiträge: 632
Erhaltene Danke: 121
Win 7 32-bit
Delphi 2006/XE
|
Verfasst: So 04.08.13 23:05
Ich habe noch etwas recherchiert und bin dabei auf folgende Seite gestoßen: www.programmieren-op...lt-die-alternativen/
Bei der dort kurz vorgestellten Seite www.openweathermap.org/API ist keine Registrierung erforderlich. Und sie ist kostenfrei. Die Anzahl der maximalen Anfragen pro Stunde liegt bei 1000.
Die Abfrage geschieht mittels einer Url, z. B.
Quelltext 1:
| http://openweathermap.org/data/2.5/weather?q=Frankfurt&mode=xml&units=metric |
Als Ergebnis erhält man die Daten als XML (hier im Beispiel) oder im JSON-Format: openweathermap.org/d...xml&units=metric
Die Seite sieht wirklich vielversprechend aus. Auch auf Kartenmaterial usw. kann man dort zugreifen.
Für diesen Beitrag haben gedankt: Mathematiker, Xion
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: So 04.08.13 23:49
Hallo Gerd,
Gerd Kayser hat folgendes geschrieben : | Die Abfrage geschieht mittels einer Url, z. B.
Quelltext 1:
| http://openweathermap.org/data/2.5/weather?q=Frankfurt&mode=xml&units=metric |
Als Ergebnis erhält man die Daten als XML (hier im Beispiel) ... |
Danke für Deine Bemühungen.
Da ich noch nie irgendetwas Delphi-Artiges mit Internet zu programmieren versucht habe, muss ich mich erst einmal in diese Problematik einarbeiten. In der EE werde ich sicher etwas finden, wie man solche Abfragen durchführt und auswertet.
Ich hoffe, dass mein Delphi 5 keine kleineren oder größeren Probleme bereiten wird.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Horst_H
Beiträge: 1653
Erhaltene Danke: 243
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: Mo 05.08.13 07:59
Hallo,
für JSON gibt es für Delphi ( sourceforge.net/p/lkjson/wiki/Home/ dummerweise steht da nichts zur minimalen Delphi Version ) und Freepasal (fcl-json) passende units.
Mittels ararat/synapse ist eine Internetabfrage ein Leichtes.Das sollte mit Delphi 5 funktionieren.
Gruß Horst.
Einloggen, um Attachments anzusehen!
Für diesen Beitrag haben gedankt: Mathematiker
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 09.08.13 08:44
Hallo,
dank der Hilfe von Martok und Gerd Kayser (siehe www.entwickler-ecke....XMLDatei_111895.html) habe ich jetzt mein Programm um eine Internetabfrage der aktuellen Temperatur ergänzt (Revision 3).
Die Abfrage erfolgt bei openweathermap.org und gibt die Temperatur eines gewählten Ortes zurück. Im Moment frage ich nicht den Ortsnamen sondern dessen geografische Koordinaten ab. Die müssen also eingegeben werden.
Ausgewertet wird die Temperatur und eingestellt. Probleme habe ich noch mit dem gefundenen Ortsnamen, da dort Umlaute usw. sehr merkwürdig aussehen.
Wichtig ist auch, dass nun die Indy 10 für die Compilierung vorhanden sein müssen. Aber ich dürfte wohl einer der Letzten gewesen sein, die Indy noch nicht hatten.
Mal sehen, was man noch alles Schönes mit diesen openweather-Abfragen machen kann.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Nersgatt
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Fr 09.08.13 09:56
Siehst, hast Dich ja doch in die Indywelt getraut.
Kann kann leider meine Koordinaten nicht eintippen. Die Werte nehmen die Textfelder nicht an. Versuch mal 52.58 und 6.9 einzugeben.
Die Probleme mit den Umlauten werden mit dem Encoding zusammenhängen, das Openweather zurückgibt. Wenn Du statt des TMemoryStream ein TStringStream verwendest, kannst Du im Constructor ein Encoding mitgeben. Auf jeden Fall bei aktuellen Delphiversionen. Ich würde raten, dass Du UTF8 zurück bekommst.
Edit: Du kannst es auch so lassen, und an der Stelle wo Du es in die TStringList lädst, das Encoding mitgeben. Dafür gibt es eine Überladene Methode der TStringList:
Delphi-Quelltext 1: 2:
| procedure LoadFromStream(Stream: TStream); overload; virtual; procedure LoadFromStream(Stream: TStream; Encoding: TEncoding); overload; virtual; |
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Für diesen Beitrag haben gedankt: Mathematiker
|
|