Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Verwaltungsprogramm für Fußballverein (https://www.delphipraxis.net/103707-verwaltungsprogramm-fuer-fussballverein.html)

Kaepten-Balu 20. Nov 2007 14:14


Verwaltungsprogramm für Fußballverein
 
Hallo, bin dabei ein verwaltungsprogramm für meinen fußballclub zu schreiben und verzweifle gerade an einem Array. Das Array ist Teil eines Records der die komplette mannschaft umfasst und das Array ist Speicherort für die einzelnen Spieler ebenfalls als record mit Name, Vorname, Jahrgang etc.

Delphi-Quellcode:
var man :Tmannschaft;

procedure TFormspieler.ButtoneinfgClick(Sender: TObject);
var i:integer;
 begin
  i:= High (man.kader)+1;
    with man.kader[i] do begin
         vname:=editvname.Text;
         name :=editname.text;
         geb.day := StrToInt(editday.Text);
         geb.month:= StrToInt (editmonth.text);
         geb.year:= StrToInt (edityear.text);
    end;

with formbearb.stringGridkader do begin
         cells[0,z]:=man.kader[i].vname;
         cells[1,z]:=man.kader[i].name;
         cells[2,z]:=editday.text+'.'+editmonth.text+'.'+edityear.text;
         cells[3,z]:='Mittelfeld';
         cells[4,z]:='Info';
         end;
Der Fehler liegt wie gesagt im oberen array; wieso auch immer stürzt das Programm dort immer ab.
kader ist das Array und ist teil des man (Mannschaft) Records...
Habe auch versucht i als "1" festzulegen aber auch dann stürzt er ab. :( Hoffe ihr könnt mir helfen :cry:

Jelly 20. Nov 2007 14:23

Re: Verwaltungsprogramm für Fußballverein
 
Die funktion high(man.kader) gibt dir den Index des letzten Elementes des Arrays zurück. Wenn du jetzt da eins addierst, greifst du über die Arraygrentze hinweg. Die Folge: Es knallt...

EDIT:
Mal noch so nebenbei. Warum nutzt du nicht eine Liste (z.B. TObjectList) anstatt eines Arrays... Damit bist du wesentlich flexibler.

Kaepten-Balu 20. Nov 2007 15:21

Re: Verwaltungsprogramm für Fußballverein
 
@ Jelly: Danke, ich kenne mich noch nicht so aus, und das Array kenne ich aus der Schule, daher habe ich mich dafür entschieden, hatten allerdings auch noch keine variables array.

wie kann ich dann die größe des Arrays verändern? bzw. wie groß ist es am anfang?

hoika 20. Nov 2007 15:23

Re: Verwaltungsprogramm für Fußballverein
 
Hallo,

SetLength zum Ändern
Grösse einfach Testen mit Length(arr)


Heiko

Progman 20. Nov 2007 15:25

Re: Verwaltungsprogramm für Fußballverein
 
Dynamische Arrays sind am Anfang null lang. SetLength(ArrayName, Laenge) setzt die Größe.


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