![]() |
AW: Array Reset Probleme
Wie sieht die Funktion HighAFRExamen aus?
Wieso wird überhaupt eine globale Variable angelegt, sogar noch in einer anderen Unit, die nur lokal in einer Prozedur Verwendung findet? Und das:
Delphi-Quellcode:
schreit irgendwie nach einer Liste. Denn ein Aufruf à la
SetLengthAFRExamen(c+1);
SetAFRExamName(c, GetAExamName(b)); SetAFRExamAnzahl(c, GetAExamAnzahl(b));
Delphi-Quellcode:
oder gar nur
AFRExamen.Add(GetAExamName(b), GetAExamAnzahl(b));
Delphi-Quellcode:
ist wohl weitaus besser zu nutzen. :stupid:
AFRExamen.Add(GetAExam(b));
|
AW: Array Reset Probleme
Fehlermeldung angeguckt.
+ wissen, daß SetLength+0 und nil funktionieren = Fazit: Du hast das Array zerschossen oder zumindestens enthaltetne gemanagte Felder (wie z.B. Strings) z.B. Buffer Overrun und Co. |
AW: Array Reset Probleme
Code:
Eine Liste brauch ich imho nicht, da ich einen eigenen Type dafür hab
function HighAFRExamen:Integer;
begin Result := High(AFRExamen); end;
Code:
TFRExam = record
Name : string; Anzahl : integer; end;
Code:
AFRExamen : Array of TFRExam;
das ist ja schön, dass ICH nen Fehler gemacht habe, nur ich finde einfach nicht wo, deswegen bat ich um Hilfe. Manchmal sehen 100 Augen mehr als zwei. Die Arrays sind in einer Unit drin, wo ich von anderen drauf zugreif. Ich greife von mehrere Units drauf zu, die ich ja nach Funktion geordnet habe. (Verschiedene Sortierungsverfahren) |
AW: Array Reset Probleme
Hierzu Meine Standardfrage, was sagt der Debugger dazu?
Ich blicke nämlich durch Deine "..Examen.." nicht so richtig durch. Und den schrei nach einer Liste kann ich gut verstehen, Da kann man übrigens mehrere Sortiermöglichkeiten implementieren. Gruß K-H |
AW: Array Reset Probleme
Die Fehlerursache liegt scheinbar nicht in den geposteten Zeilen (so unschön diese auch sind).
Ich würde erst einmal die Bereichsprüfung anschalten und das Projekt neu übersetzen. |
AW: Array Reset Probleme
wird in SetAFRExamName oder SetAFRExamAnzahl etwas erzeugt ?
|
AW: Array Reset Probleme
Zitat:
Zitat:
Code:
procedure SetAFRExamName(ItemID:Integer; Value:String);
begin AFRExamen[ItemID].Name := Value; end;
Code:
procedure SetAFRExamAnzahl(ItemID:Integer; Value:Integer);
begin AFRExamen[ItemID].Anzahl := Value; end; |
AW: Array Reset Probleme
Hast du die Überlauf- und Bereichsprüfung in den Projektoptionen aktiviert?
Ansonsten schreit der Code förmlich danach, um OOP-mäßig in eine Klasse verpackt zu werden. |
AW: Array Reset Probleme
Georg,
wenn SetLength(Dingens, 0) nicht ausgeführt wird, dann wird wahrscheinlich bezüglich Dingens[i] etwas erzeugt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:47 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