AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Compilerschalter für "Ist Komponente Installiert"
Thema durchsuchen
Ansicht
Themen-Optionen

Compilerschalter für "Ist Komponente Installiert"

Ein Thema von Cyberbob · begonnen am 9. Jun 2006 · letzter Beitrag vom 9. Jun 2006
Antwort Antwort
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#1

Compilerschalter für "Ist Komponente Installiert"

  Alt 9. Jun 2006, 20:58
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?
Christian
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Compilerschalter für "Ist Komponente Installiert&am

  Alt 9. Jun 2006, 21:01
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#3

Re: Compilerschalter für "Ist Komponente Installiert&am

  Alt 9. Jun 2006, 21:25
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;
Christian
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Compilerschalter für "Ist Komponente Installiert&am

  Alt 9. Jun 2006, 21:50
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
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#5

Re: Compilerschalter für "Ist Komponente Installiert&am

  Alt 9. Jun 2006, 22:03
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.
Christian
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Compilerschalter für "Ist Komponente Installiert&am

  Alt 9. Jun 2006, 22:05
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.
Lukas Erlacher
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#7

Re: Compilerschalter für "Ist Komponente Installiert&am

  Alt 9. Jun 2006, 22:19
Geht auch nicht

ich hab jetzt in der .dpr-datei:

uses
Forms,
{$IFDEF XPMANIFEST} WinXP, {$ENDIF}
...

stehen.
Christian
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Compilerschalter für "Ist Komponente Installiert&am

  Alt 9. Jun 2006, 22:24
^^

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:
unit USchalter;
{$DEFINE XPManifest}
end.
UPuef.pas:

Delphi-Quellcode:
unit UPruef;

interface

uses {$IFDEF XPManifest} WinXP, {$ENDIF} USchalter, ....

...
Ist dir klar, dass es so nicht gehen kann?
Lukas Erlacher
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#9

Re: Compilerschalter für "Ist Komponente Installiert&am

  Alt 9. Jun 2006, 22:39
Ich habe jetzt das {$DEFINE XPManifest} in die dpk-Datei geschriben, zu den anderen Compileranweisungen. Ohne erfolg!
Christian
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#10

Re: Compilerschalter für "Ist Komponente Installiert&am

  Alt 9. Jun 2006, 22:58
Zitat von SirThornberry:
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
Das geht nun wiederum nicht, weil Delphi keine globalen Compilerschalter in dieser Form kennt. Stattdessen muß man mit INCLUDE-Dateien arbeiten

{$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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz