-
Forum: Programmieren allgemein
by the3dcloser,
24. Aug 2015
Dieses Wort höre ich bedauerlicherweise zum ersten Mal.
Da ich selber noch nicht all zu lange bei Lazarus bin, habe ich gar nicht gewusst, dass dies Standardmäßig abgeschaltet ist, da diese Funktion bei Delphi ja automatisch ging (wie gesagt, ich bin ja auch nur hobbymäßig dabei).
Nach dem Einstellen wurde der Fehler erkannt & gebannt.
Vielen Dank für alle Helfer.
-
Forum: Programmieren allgemein
by the3dcloser,
23. Aug 2015
Vielen dank schoneinmal für diesen Hinweis! Wurde ausgebessert :wink:
Ja, bei mir lief das davor ohne Probleme, jedoch kommt der Fehler nach dem Ausbessern immer noch.
-
Forum: Programmieren allgemein
by the3dcloser,
23. Aug 2015
Wenn das Problem also woanders liegen sollte - ist es dann möglich, dass jemand für mich über den Code schaut? Ich bin mir immer noch im unklaren, woher genau dieser Fehler kommen könnte.
Das Programm (welches zumindest bei mir Lauffähig ist) gibts auf Seite 2
-
Forum: Programmieren allgemein
by the3dcloser,
20. Aug 2015
Genau dies war die Lösung!
Ich habe den Strings im Betroffenen Record auf eine feste Länge reduziert, somit kommt beim mehrmaligen Laden nun kein Fehler mehr.
Dafür kommt nun beim Schließen des Programms die SIGSEGV Meldung, aber immerhin wurde dieses Problem gelöst :thumb:
-
Forum: Programmieren allgemein
by the3dcloser,
20. Aug 2015
Ich habe es durchaus aufgenommen, dass der Fehler nicht von SetLength erzeugt wird, jedoch kommt die Fehlermeldung exakt bei dieser Zeile im Code.
Sonderlich glücklich bin ich bei der folgeden Handlung nicht, aber da das Projekt ja noch nicht ganz fertig ist, kann man ja ein Auge zudrücken.
Anbei sämtliche Projektdateien, sowie die beiden Beispieldateien. Auf Wunsch kann ich mehr...
-
Forum: Programmieren allgemein
by the3dcloser,
20. Aug 2015
Der Wert ist vor dem aufrufen zugewiesen, er ist bei der größeren Datei bei 2, bei der zweiten Datei bei 1. Beides sind meines Wissens nach eine gültige Zahl für SetLength()
Ich bin nur ein Hobby-Programmmierer, ohne jegliches Informatikvorwissen. Inwiefern soll mit denn dann "nur debuggen" ausführen?
Vielleicht ist es noch hilfreich, wenn ich die Assemblernachricht angebe:
Ich...
-
Forum: Programmieren allgemein
by the3dcloser,
19. Aug 2015
BUG hatte die Lösung. Lade ich beide Dateien direkt hintereinander, geht es ohne Probleme.
Es muss tatsächlich an irgendeinem Code dazwischen liegen.
Dummerweise mache ich zwischen den eigentlichen beiden Aufrufen der LoadMTL Prozedur nichts anderes, als die geladenen Daten mittels OpenGL zu rendern. Aber dabei wird ja eigentlich nichts an dem Record bzw an dem array geändert, denn das Rendern...
-
Forum: Programmieren allgemein
by the3dcloser,
19. Aug 2015
Die Fehlermeldung kann nur dort passieren, da ich - wenn ich vor dem SetLength()und nach dem SetLength()einen ShowMessage-Dialog einbaue - nur den ersten Dialog bekomme, bevor die Fehlermeldung kommt.
Sollte ich auf einen ungültigen Wert von MTL oder s zugreifen, müsste es doch auch schon beim ersten Mal nicht funktionieren, oder?
Luckie, was verstehst du unter "Probleme bereiten"? Kannst du...
-
Forum: Programmieren allgemein
by the3dcloser,
19. Aug 2015
TRXHead.Materials ist ein Integerwert aus einer zugehörigen Datei, welcher größer 0 ist.
In beiden Fällen liefert mir dieser Wert einen gültigen wert, beim ersten Mal (die größere Datei) ist der Wert 2, bei der zweiten Datei ist der Wert 1.
Ich nehme an, dass sich das erste genannte Problem erledigt hat (?)
-
Forum: Programmieren allgemein
by the3dcloser,
19. Aug 2015
Der Code ist an sich eigentlich relativ simple, es wird nur eine Datei eingelesen:
Wie schon gesagt, lade ich eine Datei, funktioniert der Code ohne Probleme, lade ich jedoch später eine neue (kleinere, d.h. kleinere Array-länge) Datei, gibt es den Fehler mit SetLength()
var
MTL: array of record //only editable values :)
Name: String;
MatClass: array of word;
Diffuse, Ambient,...
-
Forum: Programmieren allgemein
by the3dcloser,
19. Aug 2015
Hallo Community,
ich habe ein problem mit dem SetLength() Befehl aus Pascal.
Ich nutze den Befehl, um einen dynamischen array auf die Länge X zu setzen. Rufe ich die prozedure ein zweites Mal auf, dieses Mal jedoch mit einem Wert <X, bekomme ich einen External SIGSEGV Error.
Kann mir jemand erklären, warum dies so ist, bzw. wie ich diesen Fehler umgehen und ausbessern kann?
Ich nutze...