![]() |
Fehler nach der Form.Create-Procedure
Hallo!
Bin in meinem neuen Projekt auf folgenden Fehler gestoßen: Immer wenn ich neu kompilier, bringt er mir direkt einen SIGSEGV Fehler. Um den Fehler zu finden, habe ich in in Einzelschritten die CreateProcedure durchsucht, dort liegt der Fehler aber nicht. Ich hoffe ihr könnt mir helfen! P.S.: Ich habe erst einen groben Überblick gegeben, um später notwendige Code-Ausschnitte nachzureichen Danke! |
AW: Fehler nach der Form.Create-Procedure
|
AW: Fehler nach der Form.Create-Procedure
Ich wüsste jetzt nicht, was das mit meinem Problem zu tun hat...Die Vorgängerversionen meines Programmes laufen einwandfrei. Ich poste jetzt mal den Code, den ich so verändert habe, dass danach nichts mehr ging
Delphi-Quellcode:
Sry, für den schlechten Stil, aber ich bin halt noch relativer Anfänger ;-)
procedure TForm1.FormCreate(Sender: TObject);
var i : Integer; //Schleifenindex Config : TIniFile; AnzahlSpeicherungen : Integer; //Wie oft wurde schon abgespeichert? begin SetLength(Gericht,NumberofRecipes); for i := 1 to NumberofRecipes do Gericht[i] := TGericht.Create(i); //Anzahl wie oft ein Gericht verwendet wurde aus der Configdatei ablesen: Config := TIniFile.Create('Config.ini'); try begin CBBeans.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBBeans',0)); CBBeef.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBBeef',0)); CBBlumenkohl.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBBlumenkohl',0)); CBBratwurst.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBBratwurst',0)); CBCarrots.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBCarrots',0)); CBCheese.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBCheese',0)); CBChicken.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBChicken',0)); CBCucumbers.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBCucumbers',0)); CBEggs.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBEggs',0)); CBErbsen.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBErbsen',0)); CBFish.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBFish',0)); CBFishsticks.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBFishsticks',0)); CBGehacktes.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBGehacktes',0)); CBKloesse.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBKloesse',0)); CBLettuce.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBLettuce',0)); CBNoodles.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBNoodles',0)); CBOnions.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBOnions',0)); CBPommes.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBPommes',0)); CBPotatoes.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBPotatoes',0)); CBPork.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBPork',0)); CBRice.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBRice',0)); CBRippchen.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBRippchen',0)); CBRotkraut.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBRotkraut',0)); CBSauergurken.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBSauergurken',0)); CBSauerkraut.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBSauerkraut',0)); CBSchinken.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBSchinken',0)); CBSpinach.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBSpinach',0)); CBTomatoes.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBTomatoes',0)); CBWeisskohl.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBWeisskohl',0)); CBWienerSausage.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBWienerSausage',0)); CBPaprika.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBPaprika',0)); CBLauch.Hint := IntToStr(Config.ReadInteger('Anzahl Zutatenverwendung','CBLauch',0)); end; //Wann wurde eine Zutat das letzte Mal benutzt? begin CBBeans.Hint := CBBeans.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBBeans',Date())); CBBeef.Hint := CBBeef.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBBeef',Date())); CBBlumenkohl.Hint := CBBlumenkohl.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBBlumenkohl',Date())); CBBratwurst.Hint := CBBratwurst.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBBratwurst',Date())); CBCarrots.Hint := CBCarrots.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBCarrots',Date())); CBCheese.Hint := CBCheese.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBCheese',Date())); CBChicken.Hint := CBChicken.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBChicken',Date())); CBCucumbers.Hint := CBCucumbers.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBCucumbers',Date())); CBEggs.Hint := CBEggs.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBEggs',Date())); CBErbsen.Hint := CBErbsen.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBErbsen',Date())); CBFish.Hint := CBFish.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBFish',Date())); CBFishsticks.Hint := CBFishsticks.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBFishsticks',Date())); CBGehacktes.Hint := CBGehacktes.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBGehacktes',Date())); CBKloesse.Hint := CBKloesse.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBKloesse',Date())); CBLettuce.Hint := CBLettuce.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBLettuce',Date())); CBNoodles.Hint := CBNoodles.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBNoodles',Date())); CBOnions.Hint := CBOnions.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBOnions',Date())); CBPommes.Hint := CBPommes.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBPommes',Date())); CBPotatoes.Hint := CBPotatoes.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBPotatoes',Date())); CBPork.Hint := CBPork.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBPork',Date())); CBRice.Hint := CBRice.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBRice',Date())); CBRippchen.Hint := CBRippchen.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBRippchen',Date())); CBRotkraut.Hint := CBRotkraut.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBRotkraut',Date())); CBSauergurken.Hint := CBSauergurken.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBSauergurken',Date())); CBSauerkraut.Hint := CBSauerkraut.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBSauerkraut',Date())); CBSchinken.Hint := CBSchinken.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBSchinken',Date())); CBSpinach.Hint := CBSpinach.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBSpinach',Date())); CBTomatoes.Hint := CBTomatoes.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBTomatoes',Date())); CBWeisskohl.Hint := CBWeisskohl.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBWeisskohl',Date())); CBWienerSausage.Hint := CBWienerSausage.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBWienerSausage',Date())); CBPaprika.Hint := CBPaprika.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBWeisskohl',Date())); CBLauch.Hint := CBLauch.Hint + ' Mal verwendet, letzte Verwendung: ' + DateToStr(Config.ReadDate('Datum der letzten Verwendung','CBWienerSausage',Date())); end; //Daten der letzten Abspeicherung auslesen und anzeigen lassen AnzahlSpeicherungen := Config.ReadInteger('AnzahlSpeicherungen','Anzahl',1); //Anzahl Schleifendurchläufe auslesen //for i := 1 to AnzahlSpeicherungen do //ComboBox1.Items.Add(DateToStr(Config.ReadDate('AnzahlSpeicherungen',IntToStr(i),Date()))); //Label2.Caption := DateToStr(Config.ReadDate('AnzahlSpeicherungen',IntToStr(AnzahlSpeicherungen),Date())); finally Config.Free; end; //Checkboxes in ein Array ablegen -> erleichtert später abspeichern in Configdatei begin SetLength(Zutat,AnzahlZutaten); Zutat[1] := CBBeans; ; Zutat[2] := CBBeef; ; Zutat[3] := CBBlumenkohl ; Zutat[4] := CBBratwurst ; Zutat[5] := CBCarrots ; Zutat[6] := CBCheese ; Zutat[7] := CBChicken ; Zutat[8] := CBCucumbers ; Zutat[9] := CBEggs ; Zutat[10] := CBErbsen ; Zutat[11] := CBFish ; Zutat[12] := CBFishsticks ; Zutat[13] := CBGehacktes ; Zutat[14] := CBKloesse ; Zutat[15] := CBLettuce ; Zutat[16] := CBNoodles ; Zutat[17] := CBOnions ; Zutat[18] := CBPommes ; Zutat[19] := CBPork ; Zutat[20] := CBPotatoes ; Zutat[21] := CBRice ; Zutat[22] := CBRippchen ; Zutat[23] := CBRotkraut ; Zutat[24] := CBSauergurken; Zutat[25] := CBSauerkraut; Zutat[26] := CBSchinken; Zutat[27] := CBSpinach; Zutat[28] := CBTomatoes; Zutat[29] := CBWeisskohl; Zutat[30] := CBWienerSausage; Zutat[31] := CBPaprika; Zutat[32] := CBLauch; end; end; Das Programm schlägt einem vor, was man kochen soll. Anhand von Checkboxes wählt man die vorhandenen Zutaten aus. |
AW: Fehler nach der Form.Create-Procedure
Dein Schleifenindex ist falsch.
Zitat:
Delphi-Quellcode:
Ob das nun die Fehlerursache war, kann ich Dir nicht sagen, ein Fehler war es auf jeden Fall.
SetLength(Gericht,NumberofRecipes);
for i := Low(Gericht) to High(Gericht) do Gericht[i] := TGericht.Create(i); |
AW: Fehler nach der Form.Create-Procedure
Wenn Gericht wirklich Objekte beinhaltet, ist ggf. eine TObjectList die bessere Wahl, da diese - sofern man will - das freigeben der Objekte übernimmt und man es so nicht vergessen kann. :wink:
PS: Der von DeddyH genannte Fehler tritt auch bei den Zuweisungen von Zutat auf. |
AW: Fehler nach der Form.Create-Procedure
Danke, das mit dem Low(Gericht) und High(Gericht) hat den Fehler beseitigt, muss jetzt mal gucken, ob er alles richtig macht...
|
AW: Fehler nach der Form.Create-Procedure
Der Fehler ist immer noch nicht behoben:
Delphi-Quellcode:
Das ist FALSCH! Sie dir das Post von DeddyH noch einmal genau an :wink:
for i := 0 to NumberofRecipes do
|
AW: Fehler nach der Form.Create-Procedure
Deine Korrektur ist immer noch falsch, nun hast Du ein Element zuviel. Hast Du etwas gegen Low() und High(), oder ist Dir nur egal, was wir schreiben?
[edit] @Tiefseetaucher: :cheers: :lol: [/edit] |
AW: Fehler nach der Form.Create-Procedure
So wie er schreibt benutzt er doch Low und High? Kann man noch lower oder higher? :gruebel:
|
AW: Fehler nach der Form.Create-Procedure
Ja jetzt, nachdem der Post geändert wurde, vorher ging es von 0 bis Elementanzahl.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:56 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 by Thomas Breitkreuz