![]() |
AW: Problem bei SetLength()
Prüfe doch mal beim 2ten laden welchen wert TRXHead.Materials denn nun wirklich hat.
Beim laden kann ich nirgends erkennen wo Materials ein neuer wert zugewiesen wird. Eventuell.. SetLength(MTL, TRXHead.Materials); nach dem öffen der Textdatei einfügen nicht vorher wenn Materials den neuen wert aus der Text Datei bekommt. gruss |
AW: Problem bei SetLength()
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 ist ja ein reiner Lesevorgang. Übersehe ich dabei etwas? TRXHead.Materials wird in einer anderen Lade-Prozedur zugewiesen(da sich der Wert in einer anderen Datei befindet), welche vor der LoadMTL() prozedure aufgerufen wird. Ich könnte auch anbieten, dass ich Interessierten den Code per Email zukommen lasse, damit dort ein Blick hineingeworfen werden kann. Ich möchte den Code allerdings leider nicht öffentlich teilen. |
AW: Problem bei SetLength()
Zitat:
Wenn ja hilft dir nur debuggen. gruss |
AW: Problem bei SetLength()
Zitat:
|
AW: Problem bei SetLength()
Zitat:
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: Zitat:
|
AW: Problem bei SetLength()
Hallo,
also zwischen den beiden Aufrufen renderns du nur, nehmen wir an, du rufts da eine Funktion falsch auf, und dieses FALSCH aufrufen, führt dann am Ende zu dem von dir beschriebenen Problem. Du möchtest hier nicht deinen ganzen Quellcode posten, das ist soweit ok. Aber dann müsstest du auch das Problem grundsätzlich alleine lösen. Es macht wenig Sinn, ein Problem nur halb zu posten, und dann zu erwarten, dass die anderen sich die andere Hälfte dann selber holen mfg frank |
AW: Problem bei SetLength()
Zitat:
Die Fehlermeldung, welche uns der TE gepostet hat, wird NICHT durch die Funktion SetLength() erzeugt. Egal was in "TRXHead.Materials" steht, wirft SetLength() niemals diesen Exceptiontyp. |
AW: Problem bei SetLength()
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 Beispieldateien verfügbar machen. Die zu ladendenden Dateien sind die *.trx Dateien, neben dieser Datei werden auch weitere Dateien, welche zum darstellen (via OpenGL) benötigt werden, geladen. Download: ![]() |
AW: Problem bei SetLength()
Bei mir ist das Programm überhaupt nicht lauffähig.
1. Fehler in Zeile 257 der Mainunit.pas in TForm1.LoadShader.
Delphi-Quellcode:
ProgramO:=glCreateProgram;
|
AW: Problem bei SetLength()
Zitat:
Wenn man keine besseren Analysewerkzeuge hat, könnte man zum Beispiel versuchen, systematisch Programmbestandteile zwischen den Aufrufen auszukommentieren bis es wieder funktioniert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:50 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-2025 by Thomas Breitkreuz