Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   [Andorra 2D] Probleme mit Canvas.Circle (https://www.delphipraxis.net/125492-%5Bandorra-2d%5D-probleme-mit-canvas-circle.html)

Mikescher 7. Dez 2008 11:36


[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:
  AdDraw.Canvas.Circle(50, 50, 10);
Aber es kommt nur eine Fehlermeldung: "Integerüberlauf". :cry:
Ich kann nur einen Kreis mit dem Radius 1 zeichnen, ohne dass eine Fehlermeldung kommt.

MfG Mikescher

igel457 7. Dez 2008 18:35

Re: [Andorra 2D] Probleme mit Canvas.Circle
 
Ich kann den Fehler leider nicht reproduzieren.

Kannst du ein einfaches Testprogramm schreiben, dass diesen Fehler hervorbringt?

Looper 7. Dez 2008 19:06

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:
Pen.Width := 1
auf. Ich kann es mir eigentlich nicht vorstellen, aber ein Verscuh ist es wert.

Gruß Janek

Mikescher 7. Dez 2008 20:06

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:
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.
MfG Mikescher

igel457 8. Dez 2008 16:18

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.

Mikescher 8. Dez 2008 16:31

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 :?:

Looper 8. Dez 2008 17:54

Re: [Andorra 2D] Probleme mit Canvas.Circle
 
Mir ist nur aufgefallen, dass diese Zeile fehlt:
Delphi-Quellcode:
AdDraw.Canvas.Circle(50, 50, 10);
AdDraw.Canvas.Release; //diese Zeile fehlt bei dir
AdDraw.EndScene;
Aber ich denke, dass ist nicht der Fehler, der die Exception auslöst, da es sich ja auch um einen Integerüberlauf handelt.

igel457 8. Dez 2008 18:10

Re: [Andorra 2D] Probleme mit Canvas.Circle
 
Nein, das ist nicht der Fehler, Release wird automatisch mit EndScene aufgerufen.

Mikescher 8. Dez 2008 18:41

Re: [Andorra 2D] Probleme mit Canvas.Circle
 
Der Freund (bigben37) hat die AdCanvas-Unit neu heruntergeladen und jetzt gehts bei nihm auch
*juchee*

Danke an alle die hier geholfen haben :thumb:

MfG Mikescher


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