AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Lazarus (IDE) Fehler nach der Form.Create-Procedure
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler nach der Form.Create-Procedure

Ein Thema von Noobmaster · begonnen am 17. Dez 2010 · letzter Beitrag vom 17. Dez 2010
Antwort Antwort
Seite 1 von 2  1 2      
Noobmaster

Registriert seit: 18. Jul 2010
114 Beiträge
 
FreePascal / Lazarus
 
#1

Fehler nach der Form.Create-Procedure

  Alt 17. Dez 2010, 13:33
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!
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Fehler nach der Form.Create-Procedure

  Alt 17. Dez 2010, 14:38
Das hier http://www.delphipraxis.net/156611-e...-new-post.html
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Noobmaster

Registriert seit: 18. Jul 2010
114 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Fehler nach der Form.Create-Procedure

  Alt 17. Dez 2010, 17:14
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:
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;
Sry, für den schlechten Stil, aber ich bin halt noch relativer Anfänger
Das Programm schlägt einem vor, was man kochen soll. Anhand von Checkboxes wählt man die vorhandenen Zutaten aus.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: Fehler nach der Form.Create-Procedure

  Alt 17. Dez 2010, 17:20
Dein Schleifenindex ist falsch.
Zitat:
Delphi-Quellcode:
SetLength(Gericht,NumberofRecipes);
     for i := 1 to NumberofRecipes do
         Gericht[i] := TGericht.Create(i);
Dynamische Arrays beginnen mit dem Index 0. Auf jeden Fall anzuraten ist in so einem Fall die Verwendung von Low() und High(), dann muss man sich um Array-Grenzen keine Sorgen machen.
Delphi-Quellcode:
SetLength(Gericht,NumberofRecipes);
     for i := Low(Gericht) to High(Gericht) do
         Gericht[i] := TGericht.Create(i);
Ob das nun die Fehlerursache war, kann ich Dir nicht sagen, ein Fehler war es auf jeden Fall.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Fehler nach der Form.Create-Procedure

  Alt 17. Dez 2010, 17:26
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.

PS: Der von DeddyH genannte Fehler tritt auch bei den Zuweisungen von Zutat auf.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Noobmaster

Registriert seit: 18. Jul 2010
114 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Fehler nach der Form.Create-Procedure

  Alt 17. Dez 2010, 17:43
Danke, das mit dem Low(Gericht) und High(Gericht) hat den Fehler beseitigt, muss jetzt mal gucken, ob er alles richtig macht...
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Fehler nach der Form.Create-Procedure

  Alt 17. Dez 2010, 17:45
Der Fehler ist immer noch nicht behoben:
for i := 0 to NumberofRecipes do Das ist FALSCH! Sie dir das Post von DeddyH noch einmal genau an
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#8

AW: Fehler nach der Form.Create-Procedure

  Alt 17. Dez 2010, 17:45
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: [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Fehler nach der Form.Create-Procedure

  Alt 17. Dez 2010, 17:56
So wie er schreibt benutzt er doch Low und High? Kann man noch lower oder higher?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#10

AW: Fehler nach der Form.Create-Procedure

  Alt 17. Dez 2010, 17:57
Ja jetzt, nachdem der Post geändert wurde, vorher ging es von 0 bis Elementanzahl.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 09:09 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