Autor |
Beitrag |
Nersgatt
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Mi 21.08.13 14:23
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 21.08.13 16:33
From Switzerland:
...Proxy Server Einstellungen des IE abfragen:
www.swissdelphicente...showcode.php?id=2110
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: Do 22.08.13 12:16
Hallo,
Danke. Die Lösung ist ähnlich zu der, die ich in der DP gefunden habe.
In Revision 20 wird nun der evtl. vorhandene Proxy-Server automatisch erkannt und dessen Parameter übernommen.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Marc.
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: So 08.09.13 14:31
Moin! Noch ein paar Anregungen meinerseits, damit Dir ja nicht langweilig wird .
Aktuell wird das Wetter für im 3h Abstand vorausgesagt und untereinander bzw. nebeneinander in Spalten dargestellt.
Übersichtlicher wäre es, wenn man noch zusätzlich die Anordnung dahingehend ändern könnte, dass das Wetter für den jeweiligen Tag in einer eigenen Spalte angezeigt wird.
So wie es normalerweise auch üblich ist.
Angenommen ich bin auf Reise oder wohne nicht in Deutschland: Da ist es verdammt blöd, die Zeitverschiebung ständig einzurechnen.
Könntest Du in den Programmoptionen die Zeitzone einstellen lassen? Und Standardmäßig die vom System eingestellte verwenden?
Wetterabfragen: Beim Klick auf auf einer der Abfragebutton sendest Du jeweils eine Anfrage an den Wetter-Server. Das ist unnötig, denn die Wetterdaten ändern sich nicht sekündlich oder minütlich.
Eventuell speicherst Du in einer "temporären" Datei die letzten Wetterdaten mit Zeitstempel ab und wenn diese nicht zu alt sind, lädst Du diese stattdessen.
So wird dann auch der Wechsel bei der Anzeige zwischen "Weltwetter" und "Internetabfrage" beschleunigt und es spart Traffic.
Ein Edit-Feld, um den Städtename einzugeben, wobei während der Eingabe bereits gefilert wird.
Zwar springt bei der blinden Eingabe in die Listebox der Index schon zum korrekten Begriff, doch ab und an vertippt man sich und es wird nicht der gesuchte Eintrag ausgewählt. Existiert dieser Eintrag nicht? Wird er anders geschrieben? Hat man sich vertippt?
Favoriten in der Städteauswahl, die stets ganz oben stehen. Zwar wird immer der letzte Ort bereits gespeichert vor dem Schließen des Programmes, aber wenn ich mir mehrere Orte wichtig sind, ist es doch bequemer, diese nicht stets erst suchen zu müssen.
Was spricht gegen ein Reinzoomen in die Karte durch Scrollen?
Hint beim Mouseover über einen Punkt auf der Karte, der den Namen der Stadt anzeigt.
Selbiges beim Weltwetter. Eventuell könnte man hier die Zeitzonen noch eintragen.
Hint mit Beschreibung beim Mouseover über die Kurven.
Ich denke das reicht erstmal.
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: So 08.09.13 22:11
Hallo,
Danke für die vielen Anregungen. Ein paar habe ich schon umgesetzt (Revision 21), bei den anderen dauert es noch etwas.
Marc. hat folgendes geschrieben : | Beim Klick auf auf einer der Abfragebutton sendest Du jeweils eine Anfrage an den Wetter-Server. Das ist unnötig, denn die Wetterdaten ändern sich nicht sekündlich oder minütlich. |
Vollkommen richtig. Deshalb werden die Daten jetzt auch gespeichert. Nach einer Abfrage wird frühestens 10 Minuten später wieder das Internet bemüht.
Damit geht jetz auch ansatzweise
Marc. hat folgendes geschrieben : | Was spricht gegen ein Reinzoomen in die Karte durch Scrollen? |
Zwar muss man im Moment immer noch die zwei kleinen Schalter nutzen. Es funktioniert jetzt aber auch bei der Weltwetterkarte.
Alles andere, wie schon oben gesagt, sehe ich mir auch noch an.
Im Quelltext befindet sich jetzt
Delphi-Quelltext
Bitte nicht löschen, da nur dann korrekt compiliert werden kann. Die andere Variante ist meine "interne".
Marc. hat folgendes geschrieben : | ... damit Dir ja nicht langweilig wird . |
Langweilig? So etwas kenne ich nicht.
Durch meinen Kopf schwirren schon wieder viele neue Sachen, aber die Zeit dafür müsste man haben.
Ich bin nur in der EE etwas ruhiger, da ich nicht gleich wieder jemandem "auf den Schlips treten" möchte.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
hansa
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Mo 09.09.13 19:36
Wollte mir den Quelltext auch mal ansehen. Habe das ganze deshalb versucht zu compilieren. Da wird aber die Datei grundx.* nicht gefunden. Wo kommt die her ? In der Zip ist sie jedenfalls nicht drin.
_________________ Gruß
Hansa
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mo 09.09.13 20:35
Hallo,
hansa hat folgendes geschrieben : | Wollte mir den Quelltext auch mal ansehen. Habe das ganze deshalb versucht zu compilieren. Da wird aber die Datei grundx.* nicht gefunden. |
Fehler meinerseits. Tut mir leid.
In der Unit uwetter2 wird die grundx.* nur gerufen, wenn keine EEVARIANTE compiliert. In der *.dpr einfach löschen.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
hansa
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Mo 09.09.13 21:41
Die Kerle hier die gucken sich nicht mal den Quelltext an ? tsts Aber egal, das compiliert jetzt. Allerdings, der Quelltext ist ja auch ellenlang. Wo werden die von idHTTP gelieferten Ergebnisse denn ans Programm übergeben ? Bei 2000 Zeilen ist das echt auf die Schnelle nicht einfach zu finden. Habe das Ganze mal (sehr) stark verkürzt :
Delphi-Quelltext 1: 2: 3: 4:
| IdHttp1.Get(Adresse); if Idhttp1.ResponseCode <> 200 then ShowMessage('Fehler beim Abruf der Wetterdaten!'); IdHTTP1.free; |
Bis dahin kommt zumindest keine Fehlermeldung. Die Koordinaten habe ich dabei fest eincodiert, nur, wie komme ich jetzt an das Ergebnis ?
_________________ Gruß
Hansa
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mo 09.09.13 22:03
Hallo,
der wesentliche Teil der Internetabfrage ist z.B. für die 2-Tages-Vorschau eines Ortes
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| IdHTTP1:=tidhttp.create; Adresse := 'http://openweathermap.org/data/2.5/forecast?' + 'lat=' + edit9.text + '&lon=' + edit8.text + '&mode=xml' + '&units=metric' + '&lang=de'; Mem := TMemoryStream.Create; try IdHttp1.Get(Adresse, Mem); mem.savetofile('daten.000'); if Idhttp1.ResponseCode = 200 then begin mem.position:=0; liste.LoadFromStream(Mem); end finally Mem.Free; end; IdHTTP1.free; |
Da mein Delphi 5 noch kein XML kennt, muss ich dann die Daten in liste Stück für Stück auseinandernehmen und auswerten.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Marc.
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Mo 09.09.13 22:24
Ich wollte Dein Programm auch noch einmal kompilieren, allerdings hat sich mittlerweile der Name und die Parameterreihenfolge einer funktioniert geändert.
So kompiliert er nun den Quelltext auch für neuere Delphi-Versionen (ab 2009):
Delphi-Quelltext 348: 349: 350: 351: 352: 353: 354:
| { ... } {$IFDEF CONDITIONALEXPRESSIONS} {$IF CompilerVersion >= 20.0} ZDecompress(InpBuf, sz, OutBuf, OutBytes, 0); {$ELSE} DecompressBuf(InpBuf, sz, 0, OutBuf, OutBytes); {$IFEND} {$ENDIF} |
Einen anderen Fehler betrifft
Delphi-Quelltext 1265:
| { ... } mem.savetofile(datenverzeichnis+'wert.v2'); |
Dein Programm erzeugt zwar einen Ordner Namens "C", allerdings ist dieser Schreibgeschützt und ich erhalte die Fehlermeldung "Zugriff verweigert".
Das betrifft allerdings nur die von mir kompilierte Variante. Ich kann auch einen anderen Pfad hardcoden, der funktioniert dann.
Zitat: | Ich bin nur in der EE etwas ruhiger, da ich nicht gleich wieder jemandem "auf den Schlips treten" möchte. |
Wem bist Du denn jeweils auf den Schlips getreten? Ich sehe jedenfalls Deine Aktivitäten hier als Bereicherung der EE.
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Mo 09.09.13 22:55
Hallo,
Marc. hat folgendes geschrieben : | So kompiliert er nun den Quelltext auch für neuere Delphi-Versionen (ab 2009):
Delphi-Quelltext 348: 349: 350: 351: 352: 353: 354:
| { ... } {$IFDEF CONDITIONALEXPRESSIONS} {$IF CompilerVersion >= 20.0} ZDecompress(InpBuf, sz, OutBuf, OutBytes, 0); {$ELSE} DecompressBuf(InpBuf, sz, 0, OutBuf, OutBytes); {$IFEND} {$ENDIF} |
|
Danke, werde ich einbauen.
Marc. hat folgendes geschrieben : | Einen anderen Fehler betrifft
Delphi-Quelltext 1265:
| { ... } mem.savetofile(datenverzeichnis+'wert.v2'); |
Dein Programm erzeugt zwar einen Ordner Namens "C", allerdings ist dieser Schreibgeschützt und ich erhalte die Fehlermeldung "Zugriff verweigert". |
Hier habe ich die Vermutung, dass die modernen Delphi mit
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| function GetWinSpecialFolder(CSIDLFolder: integer): AnsiString; begin SetLength(Result, MAX_PATH); SHGetSpecialFolderPath(0, PChar(Result), CSIDLFolder, false); SetLength(Result, StrLen(PChar(Result))); if (Result <> '') then Result := IncludeTrailingBackslash(Result); end;
function datenverzeichnissuchen:string; <-- hier vielleicht besser ansistring ??? begin {$IFNDEF EEVARIANTE} result := IncludeTrailingBackslash(GetWinSpecialFolder(CSIDL_APPDATA)+aktuellname2); {$ELSE} result := IncludeTrailingBackslash(GetWinSpecialFolder(CSIDL_APPDATA)+'Wetterdaten'); {$ENDIF} end; |
nicht zurechtkommen. Vielleicht muss es ansistring heißen?
Bei meinem Win 8 wird im Nutzerverzeichnis der Ordner ...\Roaming\Wetterdaten angelegt und die Daten dorthin kopiert.
Allerdings habe ich von dieser Problematik wenig Ahnung und eigentlich nur übernommen, was ich bei anderen gesehen habe.
Marc. hat folgendes geschrieben : | Wem bist Du denn jeweils auf den Schlips getreten? |
Ist schon ein paar Tage her.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Marc.
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Mo 09.09.13 23:03
|
|
hansa
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Di 10.09.13 00:07
Habe vorhin in der Dokumentation gesehen, das man man dem Get doch besser einen Stream mitgeben muss. Mich hat das "Mem" irritiert, weil ich dachte das wäre ein TMemo ( ist aber ein Stream). @Mathematiker : Du benutzt kein CNPack, oder ? Da kann man Standard-Prefixe für Komponenten vorgeben. Dann wird automatisch ein Vorschlag erzeugt.
_________________ Gruß
Hansa
|
|
Marc.
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Do 12.09.13 15:48
Du hast beim Merken des letzten abgefragten Orts vor dem Schließen Aachen ausgeschlossen.
Der erste Eintrag der Listbox beginnt bei 0, nicht bei 1: Delphi-Quelltext 1384:
| { ... } if sel >= 0 then |
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: Do 12.09.13 16:52
Hallo,
Marc. hat folgendes geschrieben : | Du hast beim Merken des letzten abgefragten Orts vor dem Schließen Aachen ausgeschlossen. |
Danke für den Hinweis.
In der Revision 22 habe ich diesen und ein paar weitere Fehler entfernt.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: Fr 13.09.13 19:00
Hallo,
Openweathermap hat heute ein paar Übermittlungsprobleme bei der 14-Tage-Vorschau. Für einige Orte gibt's "nur" für 10 Tage Wetterwerte.
Dieses Problem hatte ich noch nicht abgefangen; mit dem Ergebnis eines Programmabsturzes.
In der Revision 23 ist dies jetzt auch ok.
Beste Grüße
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
|
|
Anika
Beiträge: 30
Erhaltene Danke: 2
Windows 7
Delphi 7
|
Verfasst: So 29.09.13 00:25
Das Programm gefällt mir sehr.
Aber seit ein paar Tagen bekomme ich bei dem aktuellen Wetter immer eine Fehlermeldung und kein ergebnis.
Was kann das sein?
Liebe Grüße
Anika
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: So 29.09.13 08:40
Hallo,
Anika hat folgendes geschrieben : | Aber seit ein paar Tagen bekomme ich bei dem aktuellen Wetter immer eine Fehlermeldung und kein ergebnis. |
Danke für den Hinweis.
Da ich es selbst gar nicht mehr probiert habe, habe ich es natürlich nicht gemerkt.
Openweathermap übermittelt seit einiger(?) Zeit für die 2-Tage-Vorhersage maximal 16 Datensätze, mitunter werden auch einige Uhrzeiten übersprungen. Da ich das nicht berücksichtigt hatte, kam es zur fehlerhaften Auswertung.
Die langfristige Vorhersage ist jetzt auch "nur" noch 10 Tage lang, was auch vernünftiger ist, da niemand 2 Wochen Wetter vorherberechnen kann.
Bei der Abfrage des Weltwetters übermitteln manchmal einzelne Stationen keine Werte. Zum Beispiel zeigte mein Programm für die Sahara 0° Celsius? Es kann in der Wüste zwar sehr kalt werden, aber die 0° ergaben sich, da der Datensatz leer war, also Blödsinn.
Alle diese Probleme glaube ich in Revision 24 gelöst zu haben.
Übrigens gibt es eine weitere, positive Änderung bei Openweathermap. Man kann jetzt kostenlos aller 5 Sekunden die Daten abfragen. Dennoch belasse ich es erst einmal bei minimal 10 Minuten, bevor die Daten neu geladen werden.
Mit besten Grüßen
Mathematiker
_________________ Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Für diesen Beitrag haben gedankt: Anika
|
|
Mathematiker
Beiträge: 2622
Erhaltene Danke: 1447
Win 7, 8.1, 10
Delphi 5, 7, 10.1
|
Verfasst: So 26.01.14 00:09
Seit heute übermittelt OpenWeatherMap einige Temperaturwerte, aber nicht alle und ohne spezielle Kennzeichnung, in Kelvin und nicht in °Celsius.
Das Problem ist in Version 25 jetzt abgefangen.
Beste Grüße
Mathematiker
Für diesen Beitrag haben gedankt: Anika
|
|
Horst_H
Beiträge: 1653
Erhaltene Danke: 243
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: Mi 15.08.18 10:11
Hallo,
ich war gerade beim löschen alter Dateien , da testete ich nochmals das Programm.
Es hat sich was geändert, es gab Fehler 401 irgendeine appID würde fehlen.
Mal für London von den Beispielen dort:
"http://samples.openweathermap.org/data/2.5/weather?id=2172797&appid=b6907d289e10d714a6e88b30761fae22"
Ohne Eröffnung eines Kontos geht es wohl nicht mehr
openweathermap.org/appid
16 Tage gibt es kostenlos auch nicht mehr, aber das ist ohnehin geraten
openweathermap.org/price
Gruß Horst
|
|
|