Folgendes hat sich geändert: Ich habe die
dll in den Ordner der Exe kopiert. Ich habe die Fehlerbehandlung eingebaut und tatsächlich beschwert er sich nun, dass die Initialisierung fehlgeschlagen ist.
Ich benutze übrigens Windows 32Bit.
Hier mein momentaner Quellcode:
Delphi-Quellcode:
unit Unit1;
{$MODE DELPHI}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, AdDraws, AdClasses,AdComponentWindow,AdStdWindow;
type
{ TForm1 }
TForm1 =
class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ private declarations }
public
procedure Idle(Sender: TObject;
var Done:boolean);
AdDraw : TAdDraw;
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
AdDraw := TAdDraw.Create(Form1);
AdDraw.DllName := '
AndorraOGLLaz.dll';
if AdDraw.Initialize
then
begin
Application.OnIdle := Idle;
end
else
begin
ShowMessage('
Error while initializing Andorra 2D. Try to use another display'+
'
mode or another video adapter.');
halt;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
AdDraw.Free;
end;
procedure TForm1.Idle(Sender: TObject;
var Done:boolean);
begin
AdDraw.ClearSurface(0);
AdDraw.BeginScene;
with AdDraw.Canvas
do
begin
Font := AdDraw.Fonts.GenerateFont('
Arial', 24, []);
TextOut(0,0,'
Andorra 2D...');
Font := AdDraw.Fonts.GenerateFont('
Arial', 10, []);
TextOut(0,30,'
...works with Lazarus too');
end;
AdDraw.EndScene;
AdDraw.Flip;
Done := false;
end;
initialization
{$I Unit1.lrs}
end.
Woran könnte es liegen, dass die Initialisierung fehl geschlagen ist?
Muss ich noch irgendetwas in den Ordner kopieren, in dem meine .exe-Datei liegt?