![]() |
Compilerschalter für "Ist Komponente Installiert"
Hallo @all,
gibt es einen Compilerschalter, mit dem ich während der Compilierung Prüfen kann, ob eine Komponente Installiert ist und die entsprechenden Units dann Laden kann? |
Re: Compilerschalter für "Ist Komponente Installiert&am
wsa verstehst du unter "installiert"? Meinst du damit das man es zur Designzeit auf's Formular packen kann? Davon sollte man nichts abhängig machen denn man kann jede Komponente auch dynamich erzeugen.
|
Re: Compilerschalter für "Ist Komponente Installiert&am
Ich hab mir unter D6 das Package WinXP Installiert, für das XP-Theming. Dieses muss ich nicht aufs Formular ziehen, es reicht, wenn ich in die Uses-Klausel "WinXP" schreibe. Ich wollte, das es nur geladen wird, wenn es auch Installiert ist. Etwa so
System, Windows {$IF INSTALLED="WinXP"}, WinXP {$ENDIF}, Dialogs; |
Re: Compilerschalter für "Ist Komponente Installiert&am
wenn es davon abhängig ist das in den uses "winxp" auftaucht könntest du einfach in dieser Unit einen Define machen und darauf prüfen
|
Re: Compilerschalter für "Ist Komponente Installiert&am
Ich ahbe jetzt in das Create der Komponente ein {$DEFINE XPMANIFEST} geschrieben und in einem Textprogramm folgende USES-Klausel
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs {$IFDEF XPMANIFEST}, WinXP{$ENDIF}, StdCtrls ; Trotzdem funktioniert es nicht. Das PAckage wird nicht mitgeladen, obwohl es neu Installiert ist. |
Re: Compilerschalter für "Ist Komponente Installiert&am
Das geht so nicht, die Compilerschalter/-anweisungen hab mit dem Programmablauf überhaupt nix zu tun!
Sie werden vom Compiler Zeile für Zeile abgearbeitet. Ich würde den Compilerschalter daher in die dpr-Datei schreiben. |
Re: Compilerschalter für "Ist Komponente Installiert&am
Geht auch nicht
ich hab jetzt in der .dpr-datei: uses Forms, {$IFDEF XPMANIFEST} WinXP, {$ENDIF} ... stehen. |
Re: Compilerschalter für "Ist Komponente Installiert&am
^^
Ich meinte das {$DEFINE XPManifest} sollte in der dpr stehen. Denn im Create der Komponente wird ganz sicher erst geprüft, ob die Konstante definiert ist, und dann wird sie erst definiert. USchalter.pas:
Delphi-Quellcode:
UPuef.pas:
unit USchalter;
{$DEFINE XPManifest} end.
Delphi-Quellcode:
Ist dir klar, dass es so nicht gehen kann?
unit UPruef;
interface uses {$IFDEF XPManifest} WinXP, {$ENDIF} USchalter, .... ... |
Re: Compilerschalter für "Ist Komponente Installiert&am
Ich habe jetzt das {$DEFINE XPManifest} in die dpk-Datei geschriben, zu den anderen Compileranweisungen. Ohne erfolg!
|
Re: Compilerschalter für "Ist Komponente Installiert&am
Zitat:
{$INCLUDE Datei.pas} in denen man dann das DEFINE mitgibt und welche man in alle relevanten Units einbindet. Deswegen machen es die JEDIs auch so, weil's ander nicht geht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 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