![]() |
Mysteriöser Stack-Overflow
Hallo,
ich habe in meinem Programm Forms, die aus einem Array geladen und angezeigt werden. Der Type des Arrays:
Delphi-Quellcode:
Wird ein Fenster erstellt, wird aktiv auf true gesetzt. Versuche ich jetzt mit folgender Funktion ein Fenster im Array zu finden, das gerade angezeigt (Fenster.showing) wird, stürzt das Programm mit einem Stack-Overflow Fehler ab.
TAuswertungsfenster = Array[1..255] of record //max 255 Fenster können geöffnet werden
aktiv : boolean; Fenster : TForm; Personendaten : TTestperson; pnPersonendaten, Optionen: TPanel; Name, Geburtstag, Bestzeit, DschnittZeit : TLabel; maennlich, weiblich : TRadiobutton; Tabelle : TStringgrid; Diagramm : TImage; gbGrafik, gbTabelle : TGroupBox; end;
Delphi-Quellcode:
Weiß jemand warum?
function TReaktionstest.aktives_Fenster (Formfeld: TAuswertungsfenster; Anzahl_Fenster: byte): byte;
var lauf: byte; begin Result := 0; for lauf := 1 to Anzahl_Fenster do begin if Formfeld[lauf].aktiv //Hier stürzt das Programm ab then begin if Formfeld[lauf].Fenster.showing then Result := lauf; end; end; end; MfG Christian |
Re: Mysteriöser Stack-Overflow
kann es sein, dass dein " Anzahl_Fenster: byte" das du übergibts größer ist, als die Anzahl an erstellten Auswertungsfenstern, oder dass die erstellten Auswertungsfenster nicht der Reihe nach in das Array kommen, sondern dass da Lücken drin sind?
|
Re: Mysteriöser Stack-Overflow
Nein, das kann nicht sein.
Wenn man das Fenster nicht mit der Fkt sucht, sondern direkt anspricht, dann gehts. |
Re: Mysteriöser Stack-Overflow
Fehler gefunden.
Es lag am Übergabeparameter. Mit einem Verweisparameter gehts :? So ein dummer Fehler :x |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 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