![]() |
{$IF exists(...)} the include
Tachchen,
da gab's grad 'ne blöde Idee meinerseits diese sah nun so aus (wo das $IF doch auch schon "Funktionen" wie Declared und Defined kennt)
Delphi-Quellcode:
Komischer Weise wird dieses ohne zu murren compiliert,
{$IF Exists('himXML_Lang.inc')}
{$INCLUDE 'himXML_Lang.inc'} {$ELSE} ... {$IFEND} also muß es die "Function" Exists ja wohl geben. PS: {$IF FileExists(...)} geht nicht und ich bin anfangs durch 'nen Denkfehler nur auf Exists gekommen (die guten alten BatchFiles lenkten mich wohl etwas ab) und hab es gleich damit probiert. Nun die Frage(n): > Ist sowas überhaupt möglich? Also etwas nur einzubinden, wenn es existiert. > Was macht nun Exists? Nach der Datei sucht es jedenfalls nciht, denn da ist es geal, ob diese Existiert oder nicht. dat himilein |
Re: {$IF exists(...)} the include
Zitat:
Delphi-Quellcode:
{$IF sendtohimitsu('hallo')}
Kuckuck {$ELSE} {$IFEND} |
Re: {$IF exists(...)} the include
Zitat:
Zitat:
Du kannst ja och mal
Delphi-Quellcode:
ausprobieren.
{$IF Himilein}
MessageBox(0, PCHAR('Nö'), 'Doch', MB_OK); {$IFEND} |
Re: {$IF exists(...)} the include
Delphi-Quellcode:
aber hier meckert der Compiler ... komisch :gruebel:
{$IF FileExists('himXML_Lang.inc')}
{$INCLUDE 'himXML_Lang.inc'} {$ELSE} ... {$IFEND} Zitat:
![]() |
Re: {$IF exists(...)} the include
Zitat:
|
Re: {$IF exists(...)} the include
Zitat:
Zitat:
|
Re: {$IF exists(...)} the include
Zitat:
Hätte ja sein können, daß das schon welche eingebaut sind :angel2: |
Re: {$IF exists(...)} the include
Es ist aber schon ein kleiner Wiederspruch in sich das der Compiler an sich beim kompilieren
eine Function ausführt die gerade am kompilieren ist.. ?!* :gruebel: |
Re: {$IF exists(...)} the include
Zitat:
die Funktion, welche man so aufrufen möchte, müßte ja eh schon vorher kompiliert wurden sein und wer sagt, daß er z.B. keine vorkompilierten/externen Funktionen nehmen darf? > da hätten ja auch schon welche im Kompiler drin sein können jedenfalls wäre das doch eine super Ergänzung zu den Pre-/Postcompile-Scripts? |
Re: {$IF exists(...)} the include
Mit den Skripten könnte man so etwas ja auch realisieren. Das ginge sogar direkt mit den Kommandozeilenerweiterungen unter XP usw. mit Batchdateien.
Ich selbst nutze um die Abwärtskompatibilität zu wahren externe Build- und Distributionsskripte, die diese Sachen ggf. konfigurieren, die Projekte erzeugen, die Verzeichnisse säubern, die Pakete erstellen und am Ende diese via FTP hochladen (die automatische Aktualisierung in den Foren und auf meiner Seite kommt noch :mrgreen:). |
Re: {$IF exists(...)} the include
genau darum wollte ich ja keine dieser "externen" Scripte verwenden
himXML ist ja nur ein Programmteil, also kann ich z.B. die Pre-/Postcompile-Sachen schlecht in den (nichtvorhandenen) Projektoptionen voreinstellen. Es wäre nur schön gewesen, wenn sowas möglich gewesen wäre, dann hätt ich den Hauptteil wieder komplett in nur einer Datei. Aber gegen viele andere Komponenten ist es ja schon wenig, wenn man mindestens nur die Hauptunit und eine Sprachunit benötigt ... die anderen Units sind alle optional. Im Grunde kann ich ja dennoch die Hauptsprachstrings dennoch eingebaut lassen und binde eben eine zusätzliche/alternative Sprachedatei via einem manuell einstellbarem Compilerschalter ein. :angel: |
Re: {$IF exists(...)} the include
spricht irgendwas dagegen das so zu machen?
Delphi-Quellcode:
habs jetzt nicht getestet ... sollte aber funktionieren :gruebel:
if FileExists('himXML_Lang.inc') then
begin {$DEFINE LANG_EXISTS} end; {$IFDEF LANG_EXISTS} {$INCLUDE 'himXML_Lang.inc'} {$ELSE} ... {$IFEND} Edit: muss natürlich FileExists heissen |
Re: {$IF exists(...)} the include
Ich denke das wird nicht funktionieren.
Compilerschalter sind unabhängig von dem Code drumrum... |
Re: {$IF exists(...)} the include
Zitat:
(also das $DEFINE in die Funktion eingebaut) blöd ist halt, daß diese Initialisierung und auch die Variablen (durch die Initialisierung) immer vorhanden sind, selbst wenn sie nicht benötig werden. :wall:
Delphi-Quellcode:
und dann bringt dieses so nur etwas zur Laufzeit (wo dieser Code ausgeführt wird) und nicht schon wärend des Kompilierens
if FileExists('himXML_Lang.inc') then
|
Re: {$IF exists(...)} the include
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:53 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