Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [Andorra 2D] unbekanntes Problemchen ;) (https://www.delphipraxis.net/92754-%5Bandorra-2d%5D-unbekanntes-problemchen-%3B.html)

incubus_v 25. Mai 2007 11:38


[Andorra 2D] unbekanntes Problemchen ;)
 
Einen schönen guten Morgen,

ich habe ein Problem mit Andorra 2D. Es passt perfekt zu meinen Vorhaben und ich hatte bis jetzt auch noch keine Probleme. Nun versuche ich Andorra in mein bereits bestehendes Programm einzubinden und dann ist dann leider auch schon ende... Bei meinem Spiel handelt es sich um ein Echtzeit-Strategiespiel, welches auf Sql aufbaut. Was ich mit Andorra anfangen möchte lassen wir einfach mal in den Raum gestellt ;) - Ist auch alles nicht so wichtig...

Nun zu meinem Problem: Wenn ich eine neue Anwendung erstelle und diese laufen lasse, funktioniert dies Problemlos. Wenn ich jetzt allerdings eine neue Form in meiner bestehenden Anwendung erzeuge treten Problme an den seltsamsten Stellen auf....
Also habe ich versucht des Wurzels Übel zu finden und erst einmal alles weggelassen und nach und nach wieder aufgebaut, bis zu folgender Stelle

Delphi-Quellcode:
  AdDraw := TAdDraw.Create(self);
  AdDraw.DllName := 'AndorraDX93D.dll';
funktioniert es ohne Fehler, doch sobald

Delphi-Quellcode:
  if AdDraw.Initialize then
aufgerufen wird, gibt es lauter Fehlermeldungen sobald ich im Ursprünglichen Programm etwas verändere. Das Initialisieren selbst macht keine Probleme.

Das Problem selbst ist das seltsamste... Es werden lauter Zahlen erzeugt, die keinen Sinn ergeben...
Folgendes lässt vielelicht klar werden was passiert:

Zitat:

['14:10:02']
System Message:='11,000000514569' ist kein gültiger Integerwert
Adresse:=0000741A
Unit:=
Method:=
Line:=0
BugPos:=g3_2
['14:14:24']
System Message:='11,000000514569' ist kein gültiger Integerwert
Adresse:=0000741A
Unit:=
Method:=
Line:=0
BugPos:=g3_2
['15:28:40']
System Message:=''TabSheet0,99999998430675'' ist kein gültiger Komponentenname
Adresse:=0001B28D
Unit:=
Method:=
Line:=0
BugPos:=m_u_6
['12:27:58']
System Message:='5,9999999058405' ist kein gültiger Integerwert
Adresse:=00007342
Unit:=
Method:=
Line:=0
BugPos:=g3_2
Nun, woher kommen diese Zahlen!? Hat vielleicht jemand eine Idee wo ich weiter ansetzen kann oder gar einen Lösungsvorschlag?

Vielen Dank schon einmal...

incubus_v

igel457 25. Mai 2007 13:55

Re: [Andorra 2D] unbekanntes Problemchen ;)
 
Hallo,

Welche Delphiversion hast du?
Welche Version von Andorra verwendest du (CVS oder die Downloadversion)?
Hast du die DLL nochmal selbst kompiliert?

Wenn du die CVS version verwendest musst du auf jeden fall die DLL neu kompilieren. Das gleiche gilt wenn du eine Delphiversion kleiner als BDS2005 nimmst. Wenn das nicht hilft, dann setzte mal einen Haltepunkt auf die "initialize" Zeile und steppe das Ganze mal durch und sag mir, wo genau der Fehler kommt.

Igel457

incubus_v 25. Mai 2007 17:05

Re: [Andorra 2D] unbekanntes Problemchen ;)
 
Guten Abend,

danke für die schnelle Hilfe, benutze BDS 2005 PE und die Andorra Version 2.0a. Leider habe ich aber heute Abend keine Zeit um weiter zu probieren, melde mich dann noch einmal.

incubus_v 26. Mai 2007 13:00

Re: [Andorra 2D] unbekanntes Problemchen ;)
 
Also,

dll kompilieren wollt ich versuchen, allerdings wird alles möglcihe rot unterstrichen zB fehlt eine dcu (d3dx9, Direct3D9).

Nun, ohne das initialisieren von Andorra sind alle Werte richtig, doch sobald es initialisiert wird, spielen alle Werte verrückt...

Als Beispiel nehm ich einmal folgende Stelle:
Delphi-Quellcode:
 
IF id <> 0 THEN
    BEGIN
      p := floattostr(id);
      where := 'id';
    END
  ELSE
    BEGIN
      p := koord;
      where := 'koord';
    END;
Der Fehler scheint jedoch einen tieferen Grund zu haben, denn es passiert anscheind bei allen möglichen integer werten...

Wenn ich mir mittels Debugger die Werte des Beispiels angucke ist das etwas, wie soll ich sagen, seltsam.
"id" hat jederzeit den richtigen Wert zB "11", doch p bekommt den Wert "11,000000514569"... Ich versteh einfach nicht was das soll. p ist lokal deklariert, die procedur selbst ist public und die form, welche andorra benutzt, steht noch nicht direkt mit dem hauptprogramm in verbindung... selbst wenn ich der variable einen namen gebe, mit der sich bestimmt nichts überschneidet, tritt der gleiche fehler auf. jedoch nur wenn AdDraw.Initialize aufgerufen wird ;)
Irgendwie werd ich nicht schlau daraus.

inherited 26. Mai 2007 13:05

Re: [Andorra 2D] unbekanntes Problemchen ;)
 
*Hokuspokuskristallkugelfidibus*
koord ist eine Reelle Zahl? Die haben immer gewisse Ungenauigkeiten. Ich denke 11,000000514569 its genau genug ;)
Sonst nimm, wenn du keine nachkommastellen braucht, Integer.

incubus_v 26. Mai 2007 13:36

Re: [Andorra 2D] unbekanntes Problemchen ;)
 
nun, koord erfüllt noch keinen zweck :D wird erst später benötigt... außerdem tritt es bei allen möglcihen integer werten an jeder stelle des programms auf. koord wäre in diesen fall auch ein string, id ist jedoch nur integer und dort ist auch der fehler!

igel457 26. Mai 2007 13:45

Re: [Andorra 2D] unbekanntes Problemchen ;)
 
Ich kann mir nicht vorstellen, das Integerwerte plötzlich Nachkommastellen bekommen. Bei Singles und Doubles ist es mit aber durchaus aufgefallen, das mit dem DirectX Plugin die genauigkeit abnimmt. Versuche einfach mal die Werte mit "round" zu runden.

inherited 26. Mai 2007 13:59

Re: [Andorra 2D] unbekanntes Problemchen ;)
 
Wenn id eh ein Integer ist, solltest du IntToStr nehmen und nicht FloatToStr.

incubus_v 27. Mai 2007 11:50

Re: [Andorra 2D] unbekanntes Problemchen ;)
 
tja, aber es treten nachkommastellen auf... und diese anscheind komplett zufällig, jedoch auch immer die gleichen.

und ob ich jetzt inttostr oder floattostr nehme bzw round benutze, es liefert doch letztlich keine erklärung für das problem. ich meine gut ist es bestimmt nicht, wenn ich es so unterdrücke... ich werd einfach weiter probiern vielleicht find ich ja noch etwas

inherited 27. Mai 2007 12:45

Re: [Andorra 2D] unbekanntes Problemchen ;)
 
Wenn id Float, Real oder eine sonstiger Typ von Zahl ist, der Nachkommastellen kann, gibt es, wie gesagt, immer eine gewisse ungenauigkeit. Was ist denn id für ein Typ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 Uhr.
Seite 1 von 2  1 2      

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