AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem bei SetLength()

Ein Thema von the3dcloser · begonnen am 19. Aug 2015 · letzter Beitrag vom 24. Aug 2015
Antwort Antwort
Seite 2 von 3     12 3   
EWeiss
(Gast)

n/a Beiträge
 
#11

AW: Problem bei SetLength()

  Alt 19. Aug 2015, 19:42
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

Geändert von EWeiss (19. Aug 2015 um 19:47 Uhr)
  Mit Zitat antworten Zitat
the3dcloser

Registriert seit: 5. Okt 2013
19 Beiträge
 
#12

AW: Problem bei SetLength()

  Alt 19. Aug 2015, 19:50
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.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#13

AW: Problem bei SetLength()

  Alt 19. Aug 2015, 19:56
Zitat:
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.
Sorry und du bist dir sicher das du das auch wirklich tust.? vor dem zweiten laden?
Wenn ja hilft dir nur debuggen.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.033 Beiträge
 
Delphi 10.3 Rio
 
#14

AW: Problem bei SetLength()

  Alt 19. Aug 2015, 20:04
Luckie, was verstehst du unter "Probleme bereiten"? Kannst du dabei etwas genauer werden?
Daher auch meine Frage... Longstring ist eine Refrenz... "nur ein Pointer" mit Refcount usw...
  Mit Zitat antworten Zitat
the3dcloser

Registriert seit: 5. Okt 2013
19 Beiträge
 
#15

AW: Problem bei SetLength()

  Alt 20. Aug 2015, 12:01
Sorry und du bist dir sicher das du das auch wirklich tust.? vor dem zweiten laden?
Wenn ja hilft dir nur debuggen.

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 von Assembler:
00403514 0f1004c6 movups (%esi,%eax,8),%xmm0
Ich persönlich kann damit nichts anfangen :/
  Mit Zitat antworten Zitat
Benutzerbild von frankyboy1974
frankyboy1974

Registriert seit: 7. Apr 2015
Ort: SH
169 Beiträge
 
Delphi XE7 Professional
 
#16

AW: Problem bei SetLength()

  Alt 20. Aug 2015, 12:24
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
Java ist auch eine Insel.
Ist Delphi von Oracle?
In meiner Buchstabensuppen fehlt das C++!
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#17

AW: Problem bei SetLength()

  Alt 20. Aug 2015, 12:54
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()
Nochmals zum mitschreiben:

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.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.

Geändert von BadenPower (20. Aug 2015 um 12:57 Uhr)
  Mit Zitat antworten Zitat
the3dcloser

Registriert seit: 5. Okt 2013
19 Beiträge
 
#18

AW: Problem bei SetLength()

  Alt 20. Aug 2015, 13:17
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: http://www.file-upload.net/download-...4/Tool.7z.html
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#19

AW: Problem bei SetLength()

  Alt 20. Aug 2015, 14:06
Bei mir ist das Programm überhaupt nicht lauffähig.

1. Fehler in Zeile 257 der Mainunit.pas in TForm1.LoadShader.
ProgramO:=glCreateProgram;
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.

Geändert von BadenPower (20. Aug 2015 um 14:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#20

AW: Problem bei SetLength()

  Alt 20. Aug 2015, 14:57
Egal was in "TRXHead.Materials" steht, wirft SetLength() niemals diesen Exceptiontyp.
Man kriegt das vermutlich hin, wenn man die Strings, das Array oder allgemein die Speicherverwaltung kaputt macht

Wenn man keine besseren Analysewerkzeuge hat, könnte man zum Beispiel versuchen, systematisch Programmbestandteile zwischen den Aufrufen auszukommentieren bis es wieder funktioniert.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf