AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Highscore

Ein Thema von Gregor00 · begonnen am 18. Aug 2003 · letzter Beitrag vom 21. Aug 2003
Antwort Antwort
Seite 2 von 3     12 3      
Gregor00

Registriert seit: 18. Aug 2003
29 Beiträge
 
Delphi 5 Standard
 
#11

Re: Highscore

  Alt 18. Aug 2003, 20:24
@ alexander

klar lernt man daraus, aber nur wenn man es auch versteht und man nach einer weile erfolge verbuchen kann. Wenn man jedoch stundenlang vor dem monitor sitzt, sich seitenweise die online- hilfe durchliest und am ende immernoch nichts dabei rauskommt ist das schon ein bisschen demmotivierend, oder etwa nicht??

ok dank eurer hilfe funktioniert das sortieren jetzt ganz gut (vor allem dank kiar)

jetzt stellt sich jedoch noch die frage wie ich das realisiere nicht auf die einzelnen Columns zu klicken, sondern per Button die Column sortiert werden... einfache anweisungen á la " Button1.Click " funktionieren (natürlich) nicht (wär ja auch zu schön gewesen)
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#12

Re: Highscore

  Alt 18. Aug 2003, 20:29
In der OnClick Prozedure des Buttons schreibst du einfach
Delphi-Quellcode:
ColumnToSort := 1;
ListView1.AlphaSort;
  Mit Zitat antworten Zitat
Gregor00

Registriert seit: 18. Aug 2003
29 Beiträge
 
Delphi 5 Standard
 
#13

Re: Highscore

  Alt 19. Aug 2003, 10:58
oki thx Tpercon

jetzt vertehe ich bloß nicht so ganz wie ich die einzelnen "Subitems" direkt ansprechen kann. schließlich muss ich die niedrigste punktzahl der Highscore mit der vom spieler erreichten Punktzahl vergleichen..
Ich würde das gern mit ner " If ... then... else..." - Anweisung machen, hab schon ales mögliche ohne erfolg versucht

bye
greg
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#14

Re: Highscore

  Alt 19. Aug 2003, 11:05
Es geht ja jetzt nur um die Anzeige im ListView, oder?
Du fügst deine Werte einfach mittels Add... in die ListView ein.
Anschließend sagst du ihm halt mittels ColumnToSort welche Spalte er sortieren soll und dann sortierst du das ganze mittels AlphaSort. Da du ja Integer und keine Strings vergleichen möchtest, mußt du die entsprechende Sort Methode für die Spalte noch anpassen:
Delphi-Quellcode:
  case ColumnToSortLV1 of
    0: Compare := CompareText(Item1.Caption,Item2.Caption);
    1: begin //bzw. die Spalte die die Integer enthält
         ix := ColumnToSortLV1 - 1;
         if CompareText(Item1.SubItems[ix],Item2.SubItems[ix]) = 0 then
           Compare := 0
         else
           if StrtoInt(Item1.SubItems[ix]) > StrtoInt(Item2.SubItems[ix]) then
             Compare := 1
           else Compare := -1;
       end;
    else
      begin
        ix := ColumnToSortLV1 - 1;
        Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
      end;
Das müßte dir jetzt gut weiterhelfen, ansonsten frag einfach.
  Mit Zitat antworten Zitat
Gregor00

Registriert seit: 18. Aug 2003
29 Beiträge
 
Delphi 5 Standard
 
#15

Re: Highscore

  Alt 19. Aug 2003, 11:23
thx for answer aber ich mein was anderes, Das Sortieren der einträge funktioniert jetzt ganz gut.
ok, ich beschreib mein prob mal ausfürlicher: Also die SupItems (das sind die Punkte die der entsprechende spieler erreicht hat) werden von der größten zahl (ganz oben auf der ListView) bis zur kleinsten (ganz unten auf der ListView) sortiert, das funktioniert auch. Da ich aber nur eine bestimmte anzahl an namen und Punkten in der HighScore stehen haben will muss halt verglichen werden ob die Punktzahl, die der spieler erreicht hat (werden in einem Label ausgegeben) höher ist als die niedrigste Punktzahl auf der Highscore. wenn ja, dann soll diese höhere punktzahl auf die Highscore gesetzt werden und dementsprechned die niedrigste gelöscht werden (das löschen ist kein problem)
so ich hoffe jetzt ist meine frage deutlicher

cu greg
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#16

Re: Highscore

  Alt 19. Aug 2003, 11:29
Probier das mal so:
Delphi-Quellcode:
if (Label1.Caption > ListView1.Items[ListView1.Items.Count -1].SubItems.Text)
then ShowMEssage('Du bist auf der HighScore!!');
Erklärung:
Es wird das überprüft, ob die Zahl in dem Label größer ist als die letzte Zahl im ersten SubItem.
Nachtrag: Habe es nicht getestet.
Alexander
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#17

Re: Highscore

  Alt 19. Aug 2003, 11:32
Füge den Wert einfach in die ListView hinzu, sortiere das und lösche einfach den/ die unteren Einträge!
Delphi-Quellcode:
while ListView1.Items.Count > 10 do begin
  ListView1.Items.Delete(ListView1.items.Count - 1);
end;
Eine andere Möglichkeit wäre (Voraussetzung: ddie Liste ist wirklich sortiert!) das du einfach schaust, wie groß der letzte Wert ist und wenn die neue Punnktezahl größer ist, dann fügst du den in die ListView und löscht den letzten.
  Mit Zitat antworten Zitat
Gregor00

Registriert seit: 18. Aug 2003
29 Beiträge
 
Delphi 5 Standard
 
#18

Re: Highscore

  Alt 19. Aug 2003, 12:10
super danke alex genauso funktioniert es. so ähnlich hab ich es auch versucht...

@ tpercon
hab's bisjetzt auf eine ähnliche weise gemacht aber vielleicht änder ich's auch noch auf deinen Vorschlag um

also vielen dank für die hilfe dank euch funhtioniert mein 'Highscoretestprogramm' jetzt (fast) einwandfrei, jetzt muss ich's nur noch in das richtige spiel einbauen...(mal sehen was na wieder für probleme auftauchen..)

die nächste frage wäre, wie ich die Highscore in eine Datei speicher, aber das versuch ich erstmal selber
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#19

Re: Highscore

  Alt 19. Aug 2003, 12:13
Als Tip: Inis wären dafür Ideal. So ähnlich aufgebaut (links der Name, rechts die Punkte...):
Code:
[highscore]
name1=500
name2=400
Alexander
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#20

Re: Highscore

  Alt 19. Aug 2003, 12:16
Und beim Einlesen schön überprüfen, ob der Schlüssel z.B. name3 bzw. die Section auch wirklich existiert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz