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 ? =)