Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mysteriöser Stack-Overflow (https://www.delphipraxis.net/17111-mysterioeser-stack-overflow.html)

Chris1986 28. Feb 2004 12:57


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:
  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;
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.
Delphi-Quellcode:
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;
Weiß jemand warum?

MfG
Christian

nailor 28. Feb 2004 13:03

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?

Chris1986 28. Feb 2004 15:29

Re: Mysteriöser Stack-Overflow
 
Nein, das kann nicht sein.
Wenn man das Fenster nicht mit der Fkt sucht, sondern direkt anspricht, dann gehts.

Chris1986 29. Feb 2004 01:08

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 08:26 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