![]() |
[Lazarus + Andorra 2D] kopiert Andorra2Dsrc in projektordner
Hi,
wenn ich in den Compilereinstellungen bei "Andere Units" den Pfad zur Andorra 2D src eingebe (/home/glocke/Programmierung/Lazarus/ad2d_451/src/) und dann mein projekt compiliere, werden haufenweise Andorra2D src-Dateien ins Projektverzeichnis kopiert. Ich glaube nicht, dass das Sinn und Zweck der Sache ist :D Andorra: 0.451 Lazarus: 0.9.28.2-0 Beta LG Glocke |
Re: [Lazarus + Andorra 2D] kopiert Andorra2Dsrc in projektor
Hi!
Meinst du wirklich Quelltextdateien (also *.pas) oder kompilierte Units (*.o, *.ppu)? Im ersten Fall ist das seltsam und im zweiten Fall "by design". Im Gegensatz zu Delphi kompiliert Free Pascal die Units nicht im selben Verzeichnis, falls kein Unitausgabepfad angegeben ist, sondern im Verzeichnis des Hauptquelltextes. 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. Für Andorra2D wäre es wahrscheinlich empfehlenswert ein Lazarus-Package anzulegen (ich sollte wohl mal einen Featurerequest machen :D ). Dieses muss man ja nichteinmal bei Lazarus installieren, um es verwenden zu können, und die Andorra2D Units bleiben in einem eigenem Quelltextverzeichnis. (ich liebe Packages unter Lazarus... im Gegensatz zu Delphipackages :mrgreen: ) Gruß, Sven |
Re: [Lazarus + Andorra 2D] kopiert Andorra2Dsrc in projektor
Wenn jemand ein Package von Andorra 2D erstellen könnte wäre das prima, ich persönlich bin jedoch noch nicht dahinter gestiegen, wie ich ein Package erstelle, das einfach nur die entsprechenden Units in den Suchpfad aufnimmt ohne zu versuchen immer alle Units zu kompilieren.
|
Re: [Lazarus + Andorra 2D] kopiert Andorra2Dsrc in projektor
Zitat:
Gruß, Sven |
Re: [Lazarus + Andorra 2D] kopiert Andorra2Dsrc in projektor
Zitat:
|
Re: [Lazarus + Andorra 2D]
Zitat:
Zitat:
/EDIT: Hab aber noch nen anderes Problem:
Delphi-Quellcode:
Wenn ich die Zeile
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.
Delphi-Quellcode:
nicht auskommentiere, kommt
//Application.OnIdle := @Idle;
Zitat:
Delphi-Quellcode:
Wenn ich es auskommentiert lasse, kommt keine Fehlermeldung aber es passiert auch nichts (was ja logisch ist :P )
FLastKey := nil;
Ich kann damit nichts anfangen. Jmd. da eine Idee ? =) |
Re: [Lazarus + Andorra 2D] kopiert Andorra2Dsrc in projektor
Zitat:
Zitat:
Delphi-Quellcode:
in
Application.OnIdle := @Idle;
AdDraw.Initialize;
Delphi-Quellcode:
Ansonsten hab ich keine Ahnung, denn bei mir läufts (allerdings verwende ich eine ApplicationProperties-Komponente, in der ich das OnIdle-Ereignis zugewiesen habe).
AdDraw.Initialize;
Application.OnIdle := @Idle; Oh halt... mir kommt noch eine Idee: liegt die AndorraOGLLaz.dll denn im selben Verzeichnis wie die Anwendung? Gruß, Sven |
Re: [Lazarus + Andorra 2D] kopiert Andorra2Dsrc in projektor
Zitat:
Zitat:
Zitat:
LG Glocke |
Re: [Lazarus + Andorra 2D] kopiert Andorra2Dsrc in projektor
Zitat:
Zitat:
Gruß, Sven |
Re: [Lazarus + Andorra 2D] kopiert Andorra2Dsrc in projektor
Zitat:
/EDIT: hat geklappt... also fast xD Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:52 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