Einzelnen Beitrag anzeigen

Benutzerbild von Glocke89
Glocke89

Registriert seit: 2. Mär 2007
Ort: Thüringen
80 Beiträge
 
Lazarus
 
#6

Re: [Lazarus + Andorra 2D]

  Alt 9. Mai 2010, 20:30
Zitat von JamesTKirk:
Meinst du wirklich Quelltextdateien (also *.pas) oder kompilierte Units (*.o, *.ppu)? Im ersten Fall ist das seltsam und im zweiten Fall "by design".
Okay - war unzureichend erklärt von mir. die .o und .ppu sind es.

Zitat von JamesTKirk:
Ich empfehle dir also so oder so immer ein Unitausgabeverzeichnis in den Compilereinstellungen anzugeben, da dies deinen Projektordner "sauber" hält. Den Ordner, den ich immer angebe ist obj\$TargetCPU()-$TargetOS() (unter Linux natürlich mit "/" statt "\"), was z. B. unter Win32 den Ordner obj\i386-win32 relativ zur Projektdatei (*.lpi) bezeichnet (Lazarus erstellt diesen Ordner übrigens automatisch). Allerdings wird hier dann auch die fertige Anwendung hinkompiliert. Um dies zu verhindern solltest du unter Projekt->Projekteinstellungen->Anwendung->Zieldateiname noch $NameOnly($ProjFile()) angeben, so wird die Anwendung nämlich in deinem Projektverzeichnis unter dem Namen deiner Projektdatei erzeugt.
Hat wunderbar funktioniert! Danke

/EDIT:
Hab aber noch nen anderes Problem:

Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  AdDraws, AdClasses, AdTypes;

type

  { TForm1 }

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Idle(Sender: TObject; var Done:boolean);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;

  AdDraw: TAdDraw;

implementation

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
  AdDraw := TAdDraw.Create(self);
  AdDraw.DllName := 'AndorraOGLLaz.dll';
  //Application.OnIdle := @Idle;
  AdDraw.Initialize;
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;
end;

initialization
  {$I unit1.lrs}

end.
Wenn ich die Zeile  //Application.OnIdle := @Idle; nicht auskommentiere, kommt

Zitat:
Error
Project project1 raised exception class 'RunError(216)'.
dannach wird "AdFontFactory" im Editor angezeigt und Zeile 152 wird markiert:
  FLastKey := nil; Wenn ich es auskommentiert lasse, kommt keine Fehlermeldung aber es passiert auch nichts (was ja logisch ist )

Ich kann damit nichts anfangen. Jmd. da eine Idee ? =)
Christian
  Mit Zitat antworten Zitat