![]() |
Re: Probleme mit Umrechnung und korrekter Ausgabe
Geht das auch immer noch so wie gedacht, wenn ich ne Case-Anweisung benutz?
Also wenn ein Wert gewürfelt wurde, dass das nächste Feld bei erneutem Druck ausgewürfelt wird? |
Re: Probleme mit Umrechnung und korrekter Ausgabe
Case an den richtigen Stellen: sicherlich. Ein Beispiel:
Zitat:
Delphi-Quellcode:
case editCount of
0: EditMU.Text := IntToStr(i); 1: EditKL.Text := IntToStr(i); 2: EditCH.Text := IntToStr(i); 3: EditGE.Text := IntToStr(i); 4: EditKK.Text := IntToStr(i); end; |
Re: Probleme mit Umrechnung und korrekter Ausgabe
Okay, ich sollte wohl mal mehr Records üben, damit ich dafür ein Gefühl bekomm, weil das an sich schon sehr einleuchtend ist :roll:
Jetzt hab ich nur das Problem, dass in den Edits keine Zahlen mehr erscheinen und ich wegen dem Record auch bisschen im Wald steh. Wir bring ich jetzt wieder den Timer damit in Verbindung, damit durch die Edits Zahlen durchrasseln? |
Re: Probleme mit Umrechnung und korrekter Ausgabe
Wie sehen die Records aus? Wie die Verbindung zu den Edits?
|
Re: Probleme mit Umrechnung und korrekter Ausgabe
Zitat:
Zitat:
Delphi-Quellcode:
//Rechnet die angegebenen Kreuzer in Währungen um und gibt das Ergebnis als Record zurück
function KreuzerToMoneyRec(cKreuzer: Cardinal): TMoneyRec; begin //Beispiel: 1234 wurden übergeben Result.iKreuzer := cKreuzer mod 10; // = 4 Kreuzer (Rest bei Teilung durch 10) //jetzt wird erst durch 10 geteilt (= 123) //und davon wieder der Rest bei erneuter Teilung durch 10 ermittelt (= 3 Heller) Result.iHeller := cKreuzer div 10 mod 10; //nun analog das Gleiche, allerdings wird jetzt durch 100 geteilt Result.iSilber := cKreuzer div 100 mod 10; //zum Schluss brauchen wir keinen Rest mehr, das Ergebnis der Division ergibt die Dukaten Result.iDukaten := cKreuzer div 1000; end; //Rechnet den übergebenen Record wieder in Kreuzer zurück //Rechenweg umgekehrt zu oben function MoneyRecToKreuzer(aRec: TMoneyRec): Cardinal; begin Result := aRec.iKreuzer + aRec.iHeller * 10 + aRec.iSilber * 100 + aRec.iDukaten * 1000; end; procedure TFrame2CharCreate.Timer1Timer(Sender: TObject); begin GetCount(Sender); end; procedure TFrame2CharCreate.Timer2Timer(Sender: TObject); begin GetCount(Sender); end; end. |
Re: Probleme mit Umrechnung und korrekter Ausgabe
Vielleicht sollten wir die Records wieder in die Tonne treten und wirklich eine gescheite Klasse daraus machen. Das dürfte sich später auszahlen, wenn es wirklich komplex werden sollte.
|
Re: Probleme mit Umrechnung und korrekter Ausgabe
Was genau wäre denn der Vorteil eine Klasse draus zu machen? Hab ja damit bis jetzt noch nicht gearbeitet.
|
Re: Probleme mit Umrechnung und korrekter Ausgabe
Z.B. Kapselung der Daten, Gültigkeitsprüfungen in Setter-Methoden, Vererbung und solche Dinge.
|
Re: Probleme mit Umrechnung und korrekter Ausgabe
Also ich hatte bisher geplant, dass die Ausgewürfelten Daten irgendwo gespeichert werden sollen, damit sie Programmweit noch abrufbar und veränderbar sind, besonders das Vermögen des Charakters. Dazu hatte ich zuerst an eine Datenbank gedacht, die man während der Laufzeit lesen und beschreiben kann; momentan Paradox. Da ich aber einige Posts gelesen hab, die von dieser sehr abraten wäre ich auch nicht abgeneigt eine andere zu benutzen. Hauptsache ich kann die anständig und unkompliziert verwalten. Wichtig dabei ist auch noch, dass mein Programm danach auch ohne mitinstallierte System-Komponenten auf jedem anderen Rechner läuft.
|
Re: Probleme mit Umrechnung und korrekter Ausgabe
Da böte sich dann eine Embedded-DB an. Ich persönlich mag Firebird, aber das ist eine Glaubensfrage, dazu gibt es hier einige Threads, bemüh mal die Forensuche. Und wo Deine Klasse letztendlich die Daten speichert (Textdateien, DB, typisierte Dateien, etc.) ist ja erst einmal unerheblich.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz