Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi GLScene installieren (https://www.delphipraxis.net/163008-glscene-installieren.html)

roboter202 12. Sep 2011 18:36

GLScene installieren
 
Hallo,

entweder bin ich zu blöd oder ich hab wirklich einen Fehler

Ich möchte GLScene installieren und alles ist auch importiert und die Pfade stimmen. Jedoch erhalte ich die Fehler

Delphi-Quellcode:
[Fehler] GLCrossPlatform.pas(931): Undefinierter Bezeichner: 'MinsPerHour'
[Fehler] GLCrossPlatform.pas(931): Undefinierter Bezeichner: 'SecsPerMin'
[Fehler] GLCrossPlatform.pas(931): Undefinierter Bezeichner: 'MSecsPerSec'
[Fehler] GLCrossPlatform.pas(1263): Undefinierter Bezeichner: 'ValueFromIndex'
[Fataler Fehler] VectorTypes.pas(38): Verwendete Unit '..\Source\Platform\GLCrossPlatform.pas' kann nicht compiliert werden
Hier die passenden Zeilen code

Delphi-Quellcode:
function GLSTime: Double;
{$IFDEF MSWINDOWS}
var
  SystemTime: TSystemTime;
begin
  GetLocalTime(SystemTime);
  with SystemTime do
    Result := (wHour * (MinsPerHour * SecsPerMin * MSecsPerSec) +
             wMinute * (SecsPerMin * MSecsPerSec) +
             wSecond * MSecsPerSec +
             wMilliSeconds) - vGLSStartTime;
  // Hack to fix time precession
  if Result - vLastTime = 0 then
  begin
    Result := Result + vDeltaMilliSecond;
    vDeltaMilliSecond := vDeltaMilliSecond + 0.1;
  end
  else begin
    vLastTime := Result;
    vDeltaMilliSecond := 0.1;
  end;
end;
Delphi-Quellcode:
function GetValueFromStringsIndex(const AStrings: TStrings; const AIndex: Integer): string;
begin
  {$IFNDEF GLS_DELPHI_5}
  Result := AStrings.ValueFromIndex[AIndex];
  {$ELSE}
  if AIndex >= 0 then
    Result := Copy(AStrings[AIndex], Length(AStrings.Names[AIndex]) + 2, MaxInt)
  else
    Result := '';
  {$ENDIF}
end;
Hab ich jetzt etwas falsch gemacht ?
Ist die Version beschädigt ? => Wo finde ich eine Funktionierende Version ?
Was muss/kann ich ändern ?

Gruß rooter202

Uwe Raabe 12. Sep 2011 18:53

AW: GLScene installieren
 
Mit welcher Delphi-Version compilierst du denn?

TiGü 12. Sep 2011 18:54

AW: GLScene installieren
 
Kann der Compiler die angemeckeren Variabeln auflösen?

roboter202 12. Sep 2011 19:34

AW: GLScene installieren
 
Zitat:

Mit welcher Delphi-Version compilierst du denn?
Delphi6

Code:
Kann der Compiler die angemeckeren Variabeln auflösen?

Delphi-Quellcode:
Result := (wHour * (MinsPerHour * SecsPerMin * MSecsPerSec) +
hier sind keine Werte hinterlegt

in der nächsten Zeile erhalte ich auch nur
Delphi-Quellcode:
 wMinute * (SecsPerMin * MSecsPerSec) +
var SecsPerMin: erroneous type - GLCrossPlatform.pas(931)
var MSecsPerSec: erroneous type - GLCrossPlatform.pas(931)

TiGü 12. Sep 2011 19:37

AW: GLScene installieren
 
Zitat:

Zitat von roboter202 (Beitrag 1123798)
Delphi6

Code:
Kann der Compiler die angemeckeren Variabeln auflösen?

Delphi-Quellcode:
Result := (wHour * (MinsPerHour * SecsPerMin * MSecsPerSec) +
hier sind keine Werte hinterlegt

Nimm mal das "with Systemtime do" weg und ergänze entsprechend den Record-Namen an den jeweiligen Variabeln.

roboter202 12. Sep 2011 19:43

AW: GLScene installieren
 
Hoffe ich hab das richtig gemacht

Delphi-Quellcode:
begin
  GetLocalTime(SystemTime);
    Result := (SystemTime.wHour * (MinsPerHour * SecsPerMin * MSecsPerSec) +
              SystemTime.wMinute * (SecsPerMin * MSecsPerSec) +
              SystemTime.wSecond * MSecsPerSec +
              SystemTime.wMilliSeconds) -  vGLSStartTime;
  // Hack to fix time precession
geht aber immer noch nicht die Meldungen sind die gleichen

TiGü 12. Sep 2011 19:48

AW: GLScene installieren
 
Fehlt dir vielleicht eine Unit im uses?

Was passiert denn bei den Variabeln, wenn du mit Strg+Linksklick bzw. rechte Maustaste und Find Declaration danach auflöst?

roboter202 12. Sep 2011 19:51

AW: GLScene installieren
 
Zitat:

Was passiert denn bei den Variabeln, wenn du mit Strg+Linksklick bzw. rechte Maustaste und Find Declaration danach auflöst?
Dann passiert gar nichts !

Delphi-Quellcode:
Fehlt dir vielleicht eine Unit im uses?
Das weiß ich nicht der Code ist ja nicht von mir.
Und die Dateien scheinen alle eingebunden denn sonst würde ich ja einen Fehler dazu bekommen

TiGü 12. Sep 2011 19:57

AW: GLScene installieren
 
Gibt es in Delphi 6 schon ein "In Verzeichnissen suchen"?
Würde auf der Jagd nach den verschwunden Variabeln so vorgehen. Es liest sich so, als das du vergessen hast eine Unit von GLScene einzubinden.

roboter202 12. Sep 2011 20:12

AW: GLScene installieren
 
Naja

Also ich hab jetzt einen ältere Version genommen und jetzt geht es hoffe das ich nichts wichtiges missen werden.

Vielen Dank
Eine Super Community :cheers:

Gruß
roboter202

roboter202 13. Sep 2011 20:11

AW: GLScene installieren
 
Vielleicht greife ich das Thema an dieser Stelle nochmals auf :nerd:,
da ich mit dem Kompromiss nicht (mehr) zufrieden bin.

Gibt es in Delphi 6 schon ein "In Verzeichnissen suchen"?

Nein das gibt es nicht aber ich hab ein Programm mit dem ich das kann. Ich habe alles durchsucht was ich heruntergeladen habe. Und der Name MinsPerHour taucht nur in der Unit auf in der auch der Fehler auftritt.

Mit Ausmahne einer weiteren Datei die jedoch eingebunden ist weil sie in einem Unterverzeichnis ist das ich nicht einbinden kann.

Irgendwelche anderen Ideen

PS: Ein Franzose hat auch so ein Problem gehabt

http://www.developpez.net/forums/d10...ation-glscene/

Uwe Raabe 13. Sep 2011 20:54

AW: GLScene installieren
 
GLScene geht davon aus, daß die Konstanten ab Delphi > 5 in SysUtils.pas definiert sind. Ich habe leider kein Delphi 6 installiert mit dem ich das verifizieren könnte. Wenn es die Konstanten in Delphi 6 auch noch nicht gibt, dann ist das wohl eine fehlerhafte Annahme in GLScene.

Warum muss es denn unbedingt so eine antike Delphi-Version sein :roll:

roboter202 13. Sep 2011 21:06

AW: GLScene installieren
 
Moment hab gerade etwas im Interface Abschnitt des Codes gefunden

const
PathDelim = {$IFDEF MSWINDOWS} '\'; {$ELSE} '/'; {$ENDIF}
HoursPerDay = 24;
MinsPerHour = 60;
SecsPerMin = 60;
MSecsPerSec = 1000;
MinsPerDay = HoursPerDay * MinsPerHour;
SecsPerDay = MinsPerDay * SecsPerMin;
MSecsPerDay = SecsPerDay * MSecsPerSec;
type

wenn ich das nochmal über die Funktion selbst einfüge geht es jetzt bleibt noch der Fehler mit dem ValueFromIndex der Delphi auch nicht kennt

Uwe Raabe 13. Sep 2011 21:32

AW: GLScene installieren
 
Zitat:

Zitat von roboter202 (Beitrag 1124153)
Moment hab gerade etwas im Interface Abschnitt des Codes gefunden

Das steht da für Delphi 5 und ist über ein IFDEF gesteuert, das bei Delphi 6 nicht greift. Natürlich funktioniert es, wenn du den Code von Hand einfügst, aber das ist keine allgemeine Lösung. Das gleiche gilt übrigens auch für ValueFromIndex, was angeblich auch ab D6 funktionieren sollte. Wie gesagt: ich habe kein D6 um das nachzuprüfen.

Da Delphi 6 nicht mehr ganz so verbreitet ist, wird wohl seit langem niemand versucht haben, GLScene unter D6 zu compilieren.

roboter202 14. Sep 2011 14:04

AW: GLScene installieren
 
Schade, dann werde ich wohl einen anderen Kompromiss finden müssen.

PS: Ich benutze Delphi6 weil es die Version ist die wir von unserer Schule bekommen.

Uwe Raabe 14. Sep 2011 16:30

AW: GLScene installieren
 
Wie gesagt, ich habe zur Zeit kein D6 installiert. Wenn du mir aber die nötigen Änderungen nennst, will ich die gerne einchecken.

Ich weiß aber auch nicht, wie lange GLScene überhaupt noch Delphi Versionen unter 7 unterstützen wird. Mit der Abwärtskompatibilität verbaut man sich halt auch die Möglichkeit, neuere Features zu nutzen. Auch das Testen ist (wie man hier sieht) recht aufwändig und wird gelegentlich auch mal weggelassen. Nicht jeder der Entwickler hat die ganze Palette von Delphis installiert und probiert bei einer Änderung alles mit allen Versionen durch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 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