Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Highscore-Funktion bzw. Text aus Editfeld in Datei speichern


Waldkauz - Do 07.05.09 18:45
Titel: Highscore-Funktion bzw. Text aus Editfeld in Datei speichern
Hallo!

Ich hab ein kleines Spiel programmiert, und ich möchte als kleine Zusatzfunktion eine Art Highscore-Funktion machen.
Ich hab mir das so überlegt: Also wenn die erhaltenen Punkte (werden in einem Editfeld ausgegeben) höher sind, als der Inhalt des .txt-Dokuments "Punkte", dann wird man idealerweise eine Art prompt-Funktion (wie nennt sich die in Delphi?) oder wenn das zu kompliziert ist, über ein erscheinendes Editfeld aufgefordert, seinen Namen einzugeben und der Name wird samt Punktezahl im Textdokument gespeichert...
Ich wüsste allerdings nicht, wie ich das anstellen soll, dass der Inhalt des Editfeldes gespeichert wird...


jaenicke - Do 07.05.09 19:37

Wie wäre es mit TStringList oder AssignFile, Reset/Rewrite, ReadLn/WriteLn, CloseFile?

Oder schau doch einfach einmal in die FAQ, da gibt es einige Einträge wie diesen:
http://www.delphi-library.de/viewtopic.php?p=126424


ffgorcky - Do 07.05.09 19:52

Die PromptFunktion ist doch einfach nur

Delphi-Quelltext
1:
MessageBox('und hier der anzuzeigene Text',MBOK);                    

Damit gibst Du eine Meldung aus, die nur einen OK-Button hat.


jaenicke - Do 07.05.09 19:54

Da kannst du aber keinen Text eingeben... :gruebel: ;-)

Dafür gibt es InputBox oder InputQuery.


ffgorcky - Do 07.05.09 20:00

Sprich eine InputBox in dieser Art:

Delphi-Quelltext
1:
Name:=InputBox('Name?','Bitte geben Sie hier Ihren Namen ein!'+#13#10+'Danke!','');                    


Waldkauz - Do 07.05.09 20:12

user profile iconffgorcky hat folgendes geschrieben Zum zitierten Posting springen:
Sprich eine InputBox in dieser Art:

Delphi-Quelltext
1:
Name:=InputBox('Name?','Bitte geben Sie hier Ihren Namen ein!'+#13#10+'Danke!','');                    


und kann man auch die Eingabe der InputBox irgendwo abspeichern?


jaenicke - Do 07.05.09 20:27

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Wie wäre es mit TStringList oder AssignFile, Reset/Rewrite, ReadLn/WriteLn, CloseFile?


ffgorcky - Do 07.05.09 20:28

Du meinst jetzt so in etwa?:


Delphi-Quelltext
1:
2:
3:
4:
5:
MemoGewinnerListe.Lines.LoadFromFile('Gewinnerliste.beliebigeEndung');
while Name='' do
    Name:=InputBox('Name?','Bitte geben Sie hier Ihren Namen ein!'+#13#10+'Danke!','');
memo1.lines.add(Name+'   '+Gewinnsumme);
MemoGewinnerListe.Lines.SaveToFile('Gewinnerliste.beliebigeEndung');

Wobei Du die while-Zeile auch weglassen kannst.

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Wobei Du auch VK_TAB statt der Leerzeichen nutzen kannst,
also so:
Name+VK_TAB+Gewinnsumme

PS: Ich habe eben noch mal meinen Eintag davor abgeändert, weil das ja dann so ( mit dem Add(Zeile) ) wohl die sauberere Methode sein soll.


jaenicke - Do 07.05.09 21:00

Wenn du jetzt noch das Memo weglässt und durch eine TStringList ersetzt, dann wäre die Lösung schon recht gut...
Ein Memo ist ausschließlich zur Anzeige und nicht als Hilfsmittel zur Datenspeicherung geeignet.


Waldkauz - Do 07.05.09 21:40

ich finde die TStringList (gibts bei der eig. 'nen Scrollbalken?) nicht...


jaenicke - Do 07.05.09 21:51

Wenn du etwas anzeigen willst, ist das TMemo ja richtig, das hat ja auch nen Scrollbalken, wenn du das einstellst.

Eine TStringList ist eben keine visuelle Komponente, wenn du also nur etwas speichern, aber nicht auf dem Formular anzeigen willst, dann ist die TStringList passender.


Waldkauz - Do 07.05.09 22:10

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Wenn du etwas anzeigen willst, ist das TMemo ja richtig, das hat ja auch nen Scrollbalken, wenn du das einstellst.

Eine TStringList ist eben keine visuelle Komponente, wenn du also nur etwas speichern, aber nicht auf dem Formular anzeigen willst, dann ist die TStringList passender.


Habs mit TMemo schon gehabt, aber da komt kein ScrollBalken...


jaenicke - Do 07.05.09 22:13

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
ist das TMemo ja richtig, das hat ja auch nen Scrollbalken, wenn du das einstellst.
:roll:
Und rate mal wie die passende Eigenschaft heißt... schau mal im Objektinspektor nach...

Wobei zur Anzeige eine TListBox besser wäre, da diese nicht editierbar ist, ein TMemo muss dafür auf ReadOnly = True stehen.


Waldkauz - Do 07.05.09 22:15

so, jetzt passts.
Danke für eure Hilfe!