Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi record (https://www.delphipraxis.net/128114-record.html)

nixalsverdruss 24. Jan 2009 12:35


record
 
Hallo,
ich habe ein record gemacht um eine Highscore zu erstellen:
Delphi-Quellcode:
type
  THighscoreEintrag = record
    Nr: Byte;
    Name: string;
    Punkte: Integer;
  end;
und dann einen Butten mit dem:
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var
  Hscr: array[1..10] of THighscoreEintrag;
begin
  Hscr[1].Nr := 1;
  Hscr[1].Name := 'Der Erste';
  Hscr[1].Punkte := 10000;
end;
Wie gehts jetzt weiter?

himitsu 24. Jan 2009 12:54

Re: record
 
wie geht was weiter ... bzw. was willt du denn erreichen?

Klaus01 24. Jan 2009 12:59

Re: record
 
Zitat:

Zitat von nixalsverdruss
und dann einen Butten mit dem:
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var
  Hscr: array[1..10] of THighscoreEintrag;
begin
  Hscr[1].Nr := 1;
  Hscr[1].Name := 'Der Erste';
  Hscr[1].Punkte := 10000;
end;
Wie gehts jetzt weiter?

Hallo,

Du willst doch eine Liste machen, oder?
Hier beschreibst Du immer nur das erste Element deines Arrays.

Wenn Du ein Element einfügst, mußt Du schauen an welche Stelle es kommt
und eventuell die nachfolgenden Felder nach hinten verschieben.
Ist das neue Element kleiner als alle Elemente die bereits in der Liste sind
wird es hinten angehangen es sei denn alle Felder sind schon beschrieben
dann wird das Element nicht in die Liste aufgenommen.

Mußt Du mit einem Array arbeiten?
TList wäre eine Alternative, dort gibt es schon die Methode
insert um ein Element zwischen zwei Elementen einzuschieben.

Grüße
Klaus

nixalsverdruss 24. Jan 2009 13:00

Re: record
 
Ah TStringList...ja jetzt hab ichs!! Dankeschön!

Klaus01 24. Jan 2009 13:02

Re: record
 
Zitat:

Zitat von nixalsverdruss
Ah TStringList...ja jetzt hab ichs!! Dankeschön!

In eine TStringList kannst Du, wie der Name schon sagt, keine Records einfügen.
Sie ist nur für Strings gedacht.

Grüße
Klaus

turboPASCAL 24. Jan 2009 13:05

Re: record
 
Bitte ändere mal deinen Threadtitel, mit dem Editbutton deines ersten Beitrags, in einen aussagefägigen Titel.
"record" sagt ja nicht besonders viel aus, gelle. ;) >>--> bitte lesen

Klaus01 24. Jan 2009 13:08

Re: record
 
Vielleicht könnte man das auch mit diesem Thread (Highscore erstellen) verlinken.

Grüße
Klaus

Blackheart 24. Jan 2009 14:52

Re: record
 
Zitat:

Zitat von turboPASCAL
Bitte ändere mal deinen Threadtitel, mit dem Editbutton deines ersten Beitrags, in einen aussagefägigen Titel.
"record" sagt ja nicht besonders viel aus, gelle. ;) >>--> bitte lesen

Vieleicht sollte man das den Moderatoren oder dem Verfasser deines angegebenen Links überlassen. :!: :wink: (Weihnachten ist vorbei)

mr_emre_d 24. Jan 2009 15:41

Re: record
 
Ich glaube er will das ganze speichern

Delphi-Quellcode:
procedure SaveHSList(Filename: String; const List: THighscoreEintrag);
var
  F: File of THighscoreEintrag;
  i: Integer;
begin
  try
    if FileExists(Filename) then
      case messagedlg( 'Datei existiert bereits'#13#10'Datei überschreiben', mtConfirmation, [mbYes, mbNo, mbCancel], 0 ) of
        MRNO:
        begin
          Filename := inputbox('New filename', 'Type in an another filename', '');
          SaveHSList(Filename, List);  
          EXIT;  
        end;
        MRCancel: EXIT;
      end;
    AssignFile(F, Filename);
    Rewrite(F);
    for i := low(List) to High(List) do
      BlockWrite(F, List[i], SizeOf(THighscoreEintrag));
  finally
    CloseFile(F);
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 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