![]() |
335 Stringlist einträge nicht mehr?
Delphi-Quellcode:
unit Main;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, Fechter, StdCtrls; const Start_geld = 1000; Start_Fechter = 335; //max 335 Start_Trainer = 1; Start_Kassier_Proz = 10; type TForm1 = class(TForm) Showing: TStatusBar; Test: TMemo; procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; FechterListe : Array [1..200] of TFechter; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var i : Integer; TestL : TStringlist; begin // Initialisierung For i := 1 to Start_Fechter do FechterListe[i] := TFechter.Create; TestL := TStringlist.Create; for i := 1 to Start_Fechter do begin TestL := FechterListe[i].getInfo; Test.Lines.Add('Fechter ' + IntToStr(i)); Test.Lines.Add('Name: ' + TestL[0] + ' ' + TestL[1]); Test.Lines.Add('Geschlecht: ' + TestL[2]); Test.Lines.Add('Alter: ' + TestL[3]); Test.Lines.Add('Talent: ' + TestL[4]); Test.Lines.Add('Kondition: ' + TestL[5]); Test.Lines.Add('Wille: ' + TestL[6]); Test.Lines.Add('Beinarbeit: ' + TestL[7]); Test.Lines.Add('Erfahrung: ' + TestL[8]); Test.Lines.Add('----------------'); end; TestL.Destroy; Showing.Panels[0].text := 'Geld: ' + IntToStr(Start_Geld); Showing.Panels[1].text := 'Fechter: ' + IntToStr(Start_Fechter); Showing.Panels[2].text := 'Trainer: ' + IntToStr(Start_Trainer); end; end. Wenn ich bei start_Fechter jetzt 336 hinschreibe kommt am ende des Porgrammes(beim schließen) dieser fehler: Zitat:
wenn ich noch mehr hinschreibe .. also 400 zb dann kommt am anfang beim starten des Programmes Zitat:
Zitat:
Zitat:
liegt das daran dass das memo nicht mehr zeilen packen kann oder ist das was anderes Delphi 7 Enterprise danke Nico ps.: die fechterunit macht nichts besonderes außer werte zufällig vergeben und mit eienr get methode abrufen lassen ps2.: sehr schöne codeformatierung oder :mrgreen: |
Re: 335 Stringlist einträge nicht mehr?
Das Problem wird dieses Stück sein:
Delphi-Quellcode:
"FechterListe" ist ein Array von 1 bis 200, da "Start_Fechter" aber mit 335 angegeben ist, versuchst du auf das Array von 1 bis 355 zuzugreifen. Nach 200 ist aber Ende. Mach also am besten aus:
For i := 1 to Start_Fechter do
FechterListe[i] := TFechter.Create;
Delphi-Quellcode:
folgendes:
FechterListe : Array [1..200] of TFechter;
Delphi-Quellcode:
Btw: Die Variablen gehören in den private/publich Bereich.
FechterListe : Array [1..Start_Fechter] of TFechter;
MfG Pr0g |
Re: 335 Stringlist einträge nicht mehr?
verdammt das habe ich gar nicht gesehen :mrgreen:
... ich hab einfach nämlich das ganze durchgetestet ... thx --> aber warum kommt bei 335 keine feglermeldung? :gruebel: mfg Nico |
Re: 335 Stringlist einträge nicht mehr?
Moin Nico,
weil bei dem Programm erst ab 336 Speicherbereiche überschrieben werden die das Programm intern braucht. Je nach Programmaufbau hätte dies auch schon bei einem kleineren, erst bei einem grösseren Wert passieren können. |
Re: 335 Stringlist einträge nicht mehr?
danke!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:40 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