Autor |
Beitrag |
Schosch
Beiträge: 46
WinXP
Lazarus
|
Verfasst: Do 22.12.11 15:57
Nersgatt hat folgendes geschrieben : |
Wenn Du dann noch Zeit übrig hast, kannst Du das Programm noch erweitern. Z.B. dass der Benutzer selbst eingeben kann, welche Währungen er gern hätte (nicht mehr festcodiert). |
Genau dass ist eine Aufgabe, die ebenfalls zu erfüllen ist...
Genau Beschreibung der Aufgabe: Eine Auswahl mehrere Währungen ermöglichen, die in Euro umzurechnen sind. Und die gesammte summe (Dollar+Yen+.... ) in einem Ausgabe Feld als Euro ausgeben. Die wechselkurse müssen vor jedem aufrufen des Formulars aktualliesiert werden um sicher zu gehen, dass bei jedem benutzen des Programms die angaben auch korreckt sind.
Das is der Kern der Aufgabe und das plus noch ein paar kleine Furmularextras (die aber kein ding sind) muss erfüllt sein!!!
|
|
Nersgatt
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Do 22.12.11 16:00
Dann mal frisch ans Werk! Ich denke, genug Hinweise zu Lösungsansätzen hast Du jetzt erst mal bekommen. Jetzt liegt es an Dir.
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
Schosch
Beiträge: 46
WinXP
Lazarus
|
Verfasst: Do 22.12.11 16:34
Glaube ich auch, Ich bedanke mich bei allen die mir geholfen haben ^^ Vielen Dank!!! Solte ich noch weitere Fragen haben wende ich mich wieder ans Forum...
MFG Schosch
|
|
Schosch
Beiträge: 46
WinXP
Lazarus
|
Verfasst: Do 26.01.12 18:43
|
|
Narses
Beiträge: 10181
Erhaltene Danke: 1254
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Do 26.01.12 19:24
Moin!
Ich weiß nicht genau, warum bummi den Quelltext so vorgeschlagen hat, aber die Indies liefern bei der .Get-Methode direkt einen String, also könnte man das etwas kürzer auch so machen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm2.Button1Click(Sender: TObject); begin try Memo1.Text := idHttp1.Get('http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml'); except ShowMessage('Es ist ein Fehler aufgetreten!'); end; end; | Pack den Code doch einfach mal in einen Button-Handler und schau, was passiert.
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Schosch
Beiträge: 46
WinXP
Lazarus
|
Verfasst: Do 26.01.12 19:29
der erkennt "idHttp1" nich, und weil ich noch nich genau weiß wie ich hier ne klasse einrichten muss, habe ich nachgefragt... weil ich mal denke, dass "idHttp1" ne Eigenschaft einer Klasse ist.. Also wie sollte denn die Ankündigung der Klasse aussehen??
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 26.01.12 19:34
Du musst dafür die TIdHttp Komponente auf dem Formular haben. Oder du erstellst sie dynamisch: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| uses IdHttp;
var HttpLoader: TIdHttp; PageContents: String; begin HttpLoader := TIdHttp.Create; try Memo1.Text := HttpLoader.Get('http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml'); finally HttpLoader.Free; end; end; |
|
|
Schosch
Beiträge: 46
WinXP
Lazarus
|
Verfasst: Do 26.01.12 20:03
tjaa, jetzt kommt da diese fehlermeldung...
Unit1.pas(x,y) Fatal: Can't find unit idHttp used by Unit1 Moderiert von Narses: Beiträge zusammengefasstals bis jetzt hab ich die wechselkurse lokal drinn, also noch komplett ohne zusammenhang zur API....
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45:
| var Eurowert: Array[0..9] of real; Waehrungen: Array[0..9] of real;
procedure TForm1.B_OKClick(Sender: TObject); var Eingabeok: boolean; begin Eingabeok:=true;
If Eingabeok=True then begin Eurowert[0]:=StrToFloat(TF_Australien.Text)/Waehrungen[0] ; Eurowert[1]:=StrToFloat(TF_China.Text)/Waehrungen[1]; Eurowert[2]:=StrToFloat(TF_Canada.Text)/Waehrungen[2]; Eurowert[3]:=StrToFloat(TF_DK.Text)/Waehrungen[3]; Eurowert[4]:=StrToFloat(TF_GBr.Text)/Waehrungen[4]; Eurowert[5]:=StrToFloat(TF_Indien.Text)/Waehrungen[5]; Eurowert[6]:=StrToFloat(TF_Japan.Text)/Waehrungen[6]; Eurowert[7]:=StrToFloat(TF_Schweden.Text)/Waehrungen[7]; Eurowert[8]:=StrToFloat(TF_Schweiz.Text)/Waehrungen[8]; Eurowert[9]:=StrToFloat(TF_USA.Text)/Waehrungen[9]; Gesamt:=Eurowert[0]+Eurowert[1]+Eurowert[2]+Eurowert[3]+Eurowert[4]+Eurowert[5]+ Eurowert[6]+Eurowert[7]+Eurowert[8]+Eurowert[9];
TF_Euro.Text:=FloatToStrF(Gesamt, ffFixed, 10, 2); end;
end;
procedure TForm1.FormCreate(Sender: TObject); begin
Waehrungen[0]:=1.2332; Waehrungen[1]:=8.2179; Waehrungen[2]:=1.3129; Waehrungen[3]:=7.4358; Waehrungen[4]:=0.83625; Waehrungen[5]:=65.0780; Waehrungen[6]:=100.10; Waehrungen[7]:=8.7791; Waehrungen[8]:=1.2061; Waehrungen[9]:=1.3017; end; |
|
|
Narses
Beiträge: 10181
Erhaltene Danke: 1254
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 27.01.12 00:30
Moin!
Schosch hat folgendes geschrieben : | tjaa, jetzt kommt da diese fehlermeldung...
Unit1.pas(x,y) Fatal: Can't find unit idHttp used by Unit1 |
Und, was könnte das wohl bedeuten? Schonmal einen Gedanken daran verschwendet, was dieses ominöse IdHTTP überhaupt sein soll? Sagt dir "Indy" irgendwas? Wie lange versuchst du schon, dich mit Delphi auseinanderzusetzen? Geht´s hier nur darum, eine (Schul-/Studium-/Sonstwas-)Aufgabe zu lösen und dann Adieu-Delphi? Oder soll die bisherige Herangehensweise tatsächlich zeigen, dass du ersthaft Interesse daran hast zu erlernen, was da passiert?
Bisher machst du c&p aus dem Forum in deinen Code, dann c&p der Fehlermeldung ins Forum - ohne weiteren erkennbaren Lösungsansatz deinerseits. Wie würdest du dich selbst einschätzen, wenn du an unserer Stelle wärst?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Andreas L.
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: Fr 27.01.12 11:05
Schosch hat folgendes geschrieben : |
Unit1.pas(x,y) Fatal: Can't find unit idHttp used by Unit1
|
Entweder liegt IdHTTP nicht im Suchpfad oder die Indy Komponente sind nicht installiert. Hier kannst du die Komponenten gratis laden:
www.indyproject.org/...Files/Indy10.DE.aspx
Installationsanleitung: www.indyproject.org/...nstallUninstall.html
Wenn du die Komponenten installiert hast kannst du sie wie Jänicke schon schrieb verwenden:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| uses ..., IdHTTP;
...
var http: TIdHTTP; html: String; begin http := TIdHTTP.Create(nil); try html := http.Get('http://www.google.de/');
finally FreeAndNil(http); end; end; |
|
|
Schosch
Beiträge: 46
WinXP
Lazarus
|
Verfasst: Fr 27.01.12 12:33
was is eine Indy??? Also bis her hab ich schon mit Delphi befasst, aber der begriff Indy ist mir noch nicht untergekommen. Und ich habe auch vor weiterhin in dem Berreich der Programmierung zu agieren. Ich will hier ja auch was lernen, aber erstmal ist primär wichtig, dass ich so schnell wie möglich ne Lösung habe... ist ja auch nich so, dass ich sinnlos coppy and past mache, sondern ich versuche schon die angegebenen codes irgentwie sinnvoll einzubasteln... deswegen meine Frage, ob das was mit Klassen zu tun hat und wenn ja, wie diese klasse aussehen würde... aber jetzt kommt ihr mit Indy, was ich noch nie gehört habe... Ich hab ja gesagt, dass ich top-programmierer werden will, nich dass ich schon einer wäre... Und ich bin auch echt meeega dankbar für jede Hilfe.
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 27.01.12 12:45
Schosch hat folgendes geschrieben : | was is eine Indy??? |
Eine Komponentensammlung für die Netzwerkkommunikation, die bei den meisten Delphiversionen bereits mitgeliefert wird.
In deinem Profil steht aber statt Delphi Lazarus. Was benutzt du denn nun, Delphi oder Lazarus? (Denn für Lazarus gibt es andere Komponenten...)
|
|
Schosch
Beiträge: 46
WinXP
Lazarus
|
Verfasst: Fr 27.01.12 13:20
Ich benutze Lazarus... Hab zwar mit Delphi7 angegfangen, doch als die schulelizenz sbgelaufen ist haben wir zu lazarus gewechselt, weil es halt ne freeware ist...
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 27.01.12 14:30
Da ich so gut wie gar nicht mit Lazarus arbeite, weiß ich nicht auswendig welche Komponenten es dafür gab. ICS oder so glaube ich z.B.
Bezüglich Indy für Lazarus siehe hier:
wiki.lazarus.freepas...rg/Indy_with_Lazarus
|
|
Schosch
Beiträge: 46
WinXP
Lazarus
|
Verfasst: Sa 28.01.12 17:40
was macht dieser Befehl??
FreeAndNil(http);
bzw. ..Create(nil);
... ich hab noch nie was von Nil gehört...
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 28.01.12 17:53
|
|
MDX
Beiträge: 595
Erhaltene Danke: 4
Windows 8.1, Linux Debian 8, Android Lollipop
Delphi, PHP, Java (Android)
|
Verfasst: Sa 28.01.12 19:40
Wie wärs mit "Hello World" als Abschlussarbeit? Wäre einfacher
Aber nein, jetzt mal im Ernst, benutz doch mal sowas wie ne Suchmaschine statt wegen jeder Kleinigkeit zu Fragen...
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Sa 28.01.12 19:45
jaenicke hat folgendes geschrieben : | {...} bzw. FreeAndNil, wobei letzteres bei lokalen Variablen nichts bringt. |
Doch, tut es, genauso wie bei Feldern.
Erklärung: FreeAndNil() hat gegenüber Free den Vorteil, dass nicht nur Free aufgerufen wird, sondern auch noch die Referenz auf nil gesetzt wird. Damit bekommt man in "Use-After-Free" (also "nutzen nach dem Freigeben")-Situationen ordentliche Fehlermeldungen, an denen man direkt erkennt dass auf ein nil-Objekt zugegriffen werden sollte.
(Konstruiertes) Beispiel: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| var list: TStringList; begin list:= TStringList.Create; try list.LoadFromFile('blubb.txt'); finally list.Free; end; list.Add('Test'); end; |
Das kann nicht funktionieren (programmiert man auch zugegeben eher selten bis gar nicht, wenn man etwas mitdenkt), aber in der Form bekommt man in der EAccessViolation eine Adresse genannt, die "irgendwo" im Speicher liegt. Verwendet man stattdessen in Zeile 9 FreeAndNil(list), wird man eine Adresse in der ersen Speicherseite bekommen und erkennt daraus direkt, dass ein Zugriff auf ein nil-Objekt erfolgt ist.
Für eine Einführung in die Sprache wird immer wieder gerne auf den Crashkurs von Christian Stelzmann verwiesen. Mach ich dann hier auch mal
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Für diesen Beitrag haben gedankt: Schosch
|
|
Schosch
Beiträge: 46
WinXP
Lazarus
|
Verfasst: Sa 28.01.12 22:37
also langsam aber sicher nähere ich mich der endgültigen lösung... Doch so ein paar kleinigkeiten lassen mich immernoch verzweifel.
Also wenn ich jetzt diese Indy heruntergeladen und installiert habe erkennt der dann in der uses-klausel "IdHTTP"?
wenn nein muss ich was machen, damit der das erkennt????
Ich hab mir auch mal diese Seite hier angeguckt:
wiki.lazarus.freepas...ugen_einer_XML-Datei
dort finde ich ebenfalls angaben die Lazarus nicht kennt, wo aber nicht beschrieben wird, wieso und wass ich tun muss damit sich das ändert... (Bsp: var Doc: TXMLDocument; )
|
|
MDX
Beiträge: 595
Erhaltene Danke: 4
Windows 8.1, Linux Debian 8, Android Lollipop
Delphi, PHP, Java (Android)
|
Verfasst: Sa 28.01.12 23:53
Zitat: | Nachfolgend ist der komplette Code für das Schreiben in eine XML-Datei. (Er wurde einem Tutorial des DeveLazarus-Blogs entnommen.) Bitte denken Sie an den Verweis auf die Bibliotheken DOM und XMLWrite in der 'uses'-Klausel. |
Wer lesen kann ist klar im Vorteil....
|
|