Andorra 2D compilieren (Delphi 5)
Hallo,
ich versuche nun seit geraumer Zeit Andorra unter Delphi 5 zum Laufen zu bringen. Dabei bin ich auf mehrere Hürden gestoßen. Befehle werden nicht erkannt, Zeilen sind (angeblich) zu lang etc. Ich habe mich nun bis zur Unit AdCanvas vorgekämpft. Ich bekomme hier zwei Fehlermeldungen: 1.: [Fehler] AdCanvas.pas(1741): Undefinierter Bezeichner: 'CompareValue' 2. kennt Delphi 5 PSingle und PInteger nicht. Kann ich die einfach durch Single bzw. Integer ersetzen? Viele Grüße! |
AW: Andorra 2D compilieren (Delphi 5)
Zitat:
Zitat:
Delphi-Quellcode:
PInteger = @Integer;
PSingl = @Single; |
AW: Andorra 2D compilieren (Delphi 5)
Danke für die schnelle Antwort.
Wie deklarier ich das denn?! :oops: Wenn ich PInteger durch @Integer ersetze kommt ebenfalls ein Fehler... EDIT: Schon gefunden...
Delphi-Quellcode:
PInteger=^Integer;
Kann mir jemand die CompareValue Funktion zukommen lassen? :-D Viele Grüße! |
AW: Andorra 2D compilieren (Delphi 5)
Mal so frei aus der Hand anhand der Beschreibung hier implementiert:
Delphi-Quellcode:
inerface
type TValueRelationShip = 1..1; function CompareValue(const A: Extended; const B: Extended; Epsilon: Extended = 0): TValueRelationship; overload; function CompareValue(const A: Double; const B: Double; Epsilon: Double = 0): TValueRelationship; overload; function CompareValue(const A: Single; const B: Single; Epsilon: Single = 0): TValueRelationship; overload; function CompareValue(const A: Integer; const B: Integer): TValueRelationship; overload; function CompareValue(const A: Int64; const B: Int64): TValueRelationship; overload; implementation function CompareValue(const A: Extended; const B: Extended; Epsilon: Extended = 0): TValueRelationship; overload; begin if (abs(A - B) < Epsilon) then result := 0 else if (A > B) then result := 1 else result := -1; end; function CompareValue(const A: Double; const B: Double; Epsilon: Double = 0): TValueRelationship; overload; begin if (abs(A - B) < Epsilon) then result := 0 else if (A > B) then result := 1 else result := -1; end; function CompareValue(const A: Single; const B: Single; Epsilon: Single = 0): TValueRelationship; overload; begin if (abs(A - B) < Epsilon) then result := 0 else if (A > B) then result := 1 else result := -1; end; function CompareValue(const A: Integer; const B: Integer): TValueRelationship; overload; begin if (A = B) then result := 0 else if (A > B) then result := 1 else result := -1; end; function CompareValue(const A: Int64; const B: Int64): TValueRelationship; overload; begin if (A = B) then result := 0 else if (A > B) then result := 1 else result := -1; end; |
AW: Andorra 2D compilieren (Delphi 5)
Ich danke!
Ein kleiner Fehler ist dir unterlaufen :) Statt
Delphi-Quellcode:
muss
type
TValueRelationShip = 1..1;
Delphi-Quellcode:
eingesetzt werden.
type
TValueRelationShip = -1..1; Ich habe mir die dritte Funktion auch mal nach der Anleitung selbst zusammengebastelt, ist aber nicht so schön geworden, wie bei dir... Doch daher habe ich es erstmal zum Laufen gekriegt. Doch leider gibt es einige weitere Probleme in der AdBuffer.pas 1.: [Fehler] AdBuffer.pas(159): Deklaration von 'SetSize' unterscheidet sich von vorheriger Deklaration
Delphi-Quellcode:
-> Wie ist die Deklaration richtig?
protected
procedure SetSize(NewSize: Int64); override; 2.: [Fehler] AdBuffer.pas(181): Deklaration von 'Seek' unterscheidet sich von vorheriger Deklaration
Delphi-Quellcode:
-> Ich habe die richtige Deklaration zwar gefunden, doch TSeekOrigin und Word sind nicht kompatibel
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
--> Richtige Deklaration:
Delphi-Quellcode:
function Seek(Offset: Longint; Origin: Word): Longint; virtual; abstract;
Und in der Andorra-Datei sieht die Funktion so aus:
Delphi-Quellcode:
:(
function TAdBufferStreamAdapter.Seek(const Offset: Int64;
Origin: TSeekOrigin): Int64; var newpos: Int64; begin newpos := 0; //Calculate the new seek position depending on the given origin. case Origin of soBeginning: newpos := Offset; soCurrent: begin if FNewSeekPos = -1 then newpos := FPosition + Offset else newpos := FNewSeekPos + Offset end; soEnd: newpos := FStream.Size + Offset; //Offset is < 0 end; //Fit "newpos" to the stream size bounds if newpos <= 0 then newpos := 0 else if newpos > FStream.Size then newpos := FStream.Size; //Return the new position result := newpos; FNewSeekPos := newpos; end; Wie kann ich das beheben? Oder muss ich mir doch irgendwo ein neueres Delphi zulegen? Delphi 6 gabs ja mal kurzzeitig kostenlos, doch die Links sind alle tot oder man wird auf die neue Homepage weitergeleitet und kann sich da eine 30-Tage-Version laden... Viele Grüße! |
AW: Andorra 2D compilieren (Delphi 5)
Das wird schwieriger zu beheben sein, da das Problem die 64-Bit-Dateigrößen-Tauglichkeit der TStream-Klasse und die damit hinzugekommenen Funktionen und von mir überschriebenen Funktkionen sind. Man könnte das höchstens so umbauen, dass noch die alten Funktionen verwendet werden.
Vielleicht ist ja Lazarus was für dich, das gibt es kostenlos und Andorra 2D sollte auch damit funktionieren - auch wenn es noch nicht ganz so komfortabel wie die Delphi-IDE ist. |
AW: Andorra 2D compilieren (Delphi 5)
Naja, ich glaube ich hole mir lieber mal eine neue Version von Delphi. Die sind dann vielleicht auch mal 99%ig mit Vista/Win7 kompatibel.
Ab welcher Version ist Andorra denn 100%ig kompatibel? Viele Grüße und danke für die Hilfe Edit: Ich hab ja noch nicht komplett aufgegeben. Also ich bin jetzt so weit, dass ich die SetSize wieder auf alte Maßstäbe zurückgeschraubt habe. Jetzt kommt der Compiler schon mal durch die AdBuffer.pas durch. Ich hänge jetzt in der AdSimpleXML. Die ganzen Fehler kann ich jetzt hier nicht posten, das sind zig Fehler. :( Edit 2: Noch eine Frage: Ist Delphi 6 (immer noch) kostenlos? Ich hab ein bisschen gegooglt und in einem anderen Forum einen Key gefunden. Doch ist die Verwendung legal? Ich mein Borland hatte Delphi 6 ja mal freigegeben, doch der Download ist weg. Ich habe aber in einem weiteren Forum einen Link gefunden, wo einer mit Erlaubnis (angeblich) von Borland Delphi 6 auf seine HP geladen hat... |
AW: Andorra 2D compilieren (Delphi 5)
Lazarus läuft auch problemlos mit Windows Vista / 7, und besser als Delphi 5/6 ist es allemal.
(Die sind extrem veraltet, bei Lazarus hast du zumindest eine aktuelle Version. Oder du suchst hier mal nach Turbo Delphi Explorer. Dazu ist es inzwischen nur schwierig, eine Lizenz zu kriegen. |
AW: Andorra 2D compilieren (Delphi 5)
Ich werd mir das mal angucken und ausprobieren.
Ist Delphi 6 jetzt noch kostenlos oder nicht :?: Naja, erstmal danke für die vielen Antworten! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:42 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