AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stack-Überlauf nach einiger Zeit

Ein Thema von Aike · begonnen am 21. Mai 2005 · letzter Beitrag vom 21. Mai 2005
Antwort Antwort
Seite 1 von 2  1 2      
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#1

Stack-Überlauf nach einiger Zeit

  Alt 21. Mai 2005, 14:20
Hallo, Leute,

woran kann denn das nur liegen, dass bei meinem Programm nach einiger Zeit (wahrscheinlich mehr als 10min) ein Stack-Überlauf auftritt und das Programm geschlossen wird?
Ich verwende weder Internet noch Sockets etc. Ich habe gelesen, dass es von Sortierfunktionen kommen kann, aber damit habe ich noch nie Probleme gehabt und habe dieses Mal auch keine (mir bekannten) Neuerungen verwendet. Ich habe die maximale Stackgröße schon auf das vierfache Erhöht (war ein Tipp hier im Forum), hat aber auch nichts gebracht; ich bin aber auch nicht mit der Stoppuhr daneben gesessen.

Da schaut's bei mir echt düster aus. Von Stacks hab ich keinen Plan. Das ist echt Mist: Das erste "komplexere" Programm, das auf Anhieb funktioniert und dann sowas!

Bitte, helft mir!
Achim
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Stack-Überlauf nach einiger Zeit

  Alt 21. Mai 2005, 14:25
Poste etwas Code! Ohne kann man eigentlich nur raten.
Das kann zB von einer Endlosschleife kommen, die den Stack zum Überlaufen bringt.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#3

Re: Stack-Überlauf nach einiger Zeit

  Alt 21. Mai 2005, 14:33
Ich kann aber auch nicht die 800 Zeilen posten. Ich kann's höchstens mal anhängen.
Angehängte Dateien
Dateityp: pas ustart_146.pas (20,9 KB, 7x aufgerufen)
Achim
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Stack-Überlauf nach einiger Zeit

  Alt 21. Mai 2005, 14:39
Konntest du es denn nicht irgendwie eingrenzen? Passiert es immer? Auch wenn du das Programm einfach nur im Leerlauf läßt? Oder nur, wenn du etwas bestimmtest tust?
Läuft evtl. ein Timer?
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#5

Re: Stack-Überlauf nach einiger Zeit

  Alt 21. Mai 2005, 14:46
Ich weiß nicht, wonach ich suchen soll, daher kann ich es nicht eingrenzen. Ich teste es jetzt nochmal, ob es vielleicht daran lag:
Delphi-Quellcode:
procedure TForm1.AnClick(Sender: TObject);
begin
  An.Checked:=not An.Checked;
  if An.Checked then
  begin
    //TuDiesUndJenes
    Aus.Checked:=False;
  end
  else
    Form1.AusClick(Sender);
end;


procedure TForm1.AusClick(Sender: TObject);
begin
  Aus.Checked:=not Aus.Checked;
  if Aus.Checked then
  begin
    //HinUndHer
    An.Checked:=False;
  end
  else
    Form1.AnClick(Sender);
end;
Aber das hatte ich schonmal so und da ist nix passiert.
Achim
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Stack-Überlauf nach einiger Zeit

  Alt 21. Mai 2005, 14:54
Moin Aike,

Zitat von Aike:
...ob es vielleicht daran lag:
anzunehmen, denn bei der Zuweisung eines Wertes an die Eigenschaft Checked einer CheckBox, wird auch das Ereignis OnClick ausgelöst.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Stack-Überlauf nach einiger Zeit

  Alt 21. Mai 2005, 14:57
Japp, aber genau die Stelle is es.
Das Problem ist, daß ein manuelles Setzen á la "CheckBox1.Checked := true" auch das OnClick-Ereignis aufruft. Dadurch kommt es zu einer Endlosschleife und du hast deinen Stack-Overflow.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#8

Re: Stack-Überlauf nach einiger Zeit

  Alt 21. Mai 2005, 14:58
Ich liebe euch.
Achim
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Stack-Überlauf nach einiger Zeit

  Alt 21. Mai 2005, 15:03
Danke schön!
Auf jeden Fall versteh ich nicht ganz, was du mit der jeweils ersten Zeile bezweckst. Was du bislang tust, ist bei jedem Ändern der Markierung diese wieder zurückzusetzen. Denn bereits durch den Klick wird die CheckBox "gecheckt" bzw "entcheckt". Das Umändern der Markierung wäre daher also sinnlos. Und genau das ist es auch, was zum Stack-Überlauf führt. Laß die erste Zeile weg und es funktioniert.

//Edit:
OK, aber auch nur, solange man nicht 2mal nacheinander auf die selbe CB klickt.
Damit das auch klappt, müßtest du den else-Teil auch entfernen.
Und dann klappts auch nich mehr, wie es soll. Hör einfach nich auf mich!
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#10

Re: Stack-Überlauf nach einiger Zeit

  Alt 21. Mai 2005, 15:16
Moin!

Ok, grundsätzlich bei den CheckBoxen das Checked := Not Checked raus. Und bei dem Links/Rechts Paar empfehle ich dir eine TRadioGroup bzw. 2 TRadioButtons die angeben ob links oder rechts. Weil bei denen brauchst du nur einen als aktiv zu setzen und der andere wird dann automatisch zurück gesetzt. Mit den CheckBoxen haut das nicht hin, hat mein Vorredner schon festgestellt.

Auch dein in "Vordergrund" setzen im FormCreate sollte nicht funktionieren, da das Form-Handle auf das du dich beziehst noch nicht existiert im FormCreate meines Erachtens nach.

MfG
Muetze1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 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