![]() |
[Andorra 2D] Probleme mit Canvas.Circle
Hi DPler, :hi:
ich hab da mal wieder ein Problem: :wall: ich zeichne mit Andorra 2D so einen Kreis:
Delphi-Quellcode:
Aber es kommt nur eine Fehlermeldung: "Integerüberlauf". :cry:
AdDraw.Canvas.Circle(50, 50, 10);
Ich kann nur einen Kreis mit dem Radius 1 zeichnen, ohne dass eine Fehlermeldung kommt. MfG Mikescher |
Re: [Andorra 2D] Probleme mit Canvas.Circle
Ich kann den Fehler leider nicht reproduzieren.
Kannst du ein einfaches Testprogramm schreiben, dass diesen Fehler hervorbringt? |
Re: [Andorra 2D] Probleme mit Canvas.Circle
Hei,
also vielleicht hat das was mit diesem Phänomen zu tun. Wenn du Circle aufrust setze doch am Besten mal vorher
Delphi-Quellcode:
auf. Ich kann es mir eigentlich nicht vorstellen, aber ein Verscuh ist es wert.
Pen.Width := 1
Gruß Janek |
Re: [Andorra 2D] Probleme mit Canvas.Circle
Liste der Anhänge anzeigen (Anzahl: 2)
Ok Exe und Fehler sind im Anhang
Der Source ist wie folgt:
Delphi-Quellcode:
MfG Mikescher
unit MainUnit;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, AdDraws, AdClasses, AdTypes, AdPerformanceCounter; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } AdDraw: TAdDraw; CPUCounter: TAdPerformanceCounter; MyPath: string; procedure Idle(Sender: TObject; var Done: boolean); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin MyPath := ExtractFilePath(ParamStr(0)); AdDraw := TAdDraw.Create(self); AdDraw.DllName := (MyPath + 'AndorraDX93D.dll'); if AdDraw.Initialize then begin Application.OnIdle := Idle; CPUCounter := TAdPerformanceCounter.Create(); end; end; procedure TForm1.FormDestroy(Sender: TObject); begin CPUCounter.Free; AdDraw.Free; end; procedure TForm1.Idle(Sender: TObject; var Done: boolean); begin if AdDraw.CanDraw then begin AdDraw.ClearSurface(clBlack); AdDraw.BeginScene; AdDraw.Canvas.Pen.Width := 1; AdDraw.Canvas.Circle(50, 50, 10); AdDraw.EndScene; AdDraw.Flip; end; Done := false; end; end. |
Re: [Andorra 2D] Probleme mit Canvas.Circle
Hm, ich kann deinen Fehler immer noch nicht reproduzieren. Ich habe das ganze mit Turbo Delphi 2006 Explorer und Delphi 2005 PE getestet. Die Überlaufs- und Bereichsprüfung habe ich de-/aktiviert.
|
Re: [Andorra 2D] Probleme mit Canvas.Circle
Hmmm... Das ist seltsam ich war die ganze Zeit bei einem Freund und hab auch von dort aus das alles geschrieben (vor ca 1h heimgekommen) und bei ihm ging es nicht aber bei mir hier geht es super.
:?: seltsam :?: |
Re: [Andorra 2D] Probleme mit Canvas.Circle
Mir ist nur aufgefallen, dass diese Zeile fehlt:
Delphi-Quellcode:
Aber ich denke, dass ist nicht der Fehler, der die Exception auslöst, da es sich ja auch um einen Integerüberlauf handelt.
AdDraw.Canvas.Circle(50, 50, 10);
AdDraw.Canvas.Release; //diese Zeile fehlt bei dir AdDraw.EndScene; |
Re: [Andorra 2D] Probleme mit Canvas.Circle
Nein, das ist nicht der Fehler, Release wird automatisch mit EndScene aufgerufen.
|
Re: [Andorra 2D] Probleme mit Canvas.Circle
Der Freund (
![]() *juchee* Danke an alle die hier geholfen haben :thumb: MfG Mikescher |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 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