![]() |
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:
Der Fehler liegt wie gesagt im oberen array; wieso auch immer stürzt das Programm dort immer ab.
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; 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: |
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. |
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? |
Re: Verwaltungsprogramm für Fußballverein
Hallo,
SetLength zum Ändern Grösse einfach Testen mit Length(arr) Heiko |
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 06:28 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