Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi {$IF exists(...)} the include (https://www.delphipraxis.net/139786-%7B%24if-exists-%7D-include.html)

himitsu 5. Sep 2009 08:18


{$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:
{$IF Exists('himXML_Lang.inc')}
  {$INCLUDE 'himXML_Lang.inc'}
{$ELSE}
  ...
{$IFEND}
Komischer Weise wird dieses ohne zu murren compiliert,
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

jaenicke 5. Sep 2009 09:34

Re: {$IF exists(...)} the include
 
Zitat:

Zitat von himitsu
Komischer Weise wird dieses ohne zu murren compiliert,
also muß es die "Function" Exists ja wohl geben.

Meinst du? Hmm, dann probier mal das aus: :zwinker:
Delphi-Quellcode:
{$IF sendtohimitsu('hallo')}
Kuckuck
{$ELSE}
{$IFEND}

turboPASCAL 5. Sep 2009 09:35

Re: {$IF exists(...)} the include
 
Zitat:

Nun die Frage(n):

> Ist sowas überhaupt möglich? Also etwas nur einzubinden, wenn es existiert.
Nein, nicht das ich wüsste.

Zitat:

> Was macht nun Exists? Nach der Datei sucht es jedenfalls nciht, denn da ist es geal, ob diese Existiert oder nicht.
Nüschts.

Du kannst ja och mal

Delphi-Quellcode:
{$IF Himilein}
          MessageBox(0, PCHAR('Nö'), 'Doch', MB_OK);
        {$IFEND}
ausprobieren.

himitsu 5. Sep 2009 10:15

Re: {$IF exists(...)} the include
 
Delphi-Quellcode:
{$IF FileExists('himXML_Lang.inc')}
  {$INCLUDE 'himXML_Lang.inc'}
{$ELSE}
  ...
{$IFEND}
aber hier meckert der Compiler ... komisch :gruebel:

Zitat:

Zitat von turboPASCAL
Nein, nicht das ich wüsste.

das ist aber gemein http://fnse.de/S01/1LK.gif

turboPASCAL 5. Sep 2009 10:30

Re: {$IF exists(...)} the include
 
Zitat:

Zitat von himitsu
Delphi-Quellcode:
{$IF FileExists('himXML_Lang.inc')}
  {$INCLUDE 'himXML_Lang.inc'}
{$ELSE}
  ...
{$IFEND}
aber hier meckert der Compiler ... komisch :gruebel:

Nö, macht er nicht in sofern die SysUtils nicht eingebunden ist. ;)

Stevie 7. Sep 2009 07:02

Re: {$IF exists(...)} the include
 
Zitat:

Zitat von himitsu
Ist sowas überhaupt möglich? Also etwas nur einzubinden, wenn es existiert.

Zitat:

Zitat von turboPASCAL
Nö, macht er nicht in sofern die SysUtils nicht eingebunden ist. ;)

Und dann sagt dir der Compiler sogar die Antwort: "Constant expression expected"

himitsu 7. Sep 2009 07:35

Re: {$IF exists(...)} the include
 
Zitat:

Zitat von Stevie
Und dann sagt dir der Compiler sogar die Antwort: "Constant expression expected"

Dennoch wäre es ja möglich, daß der Compiler dort auch nichtkonstante Funktionen anbieten könnte.

Hätte ja sein können, daß das schon welche eingebaut sind :angel2:

turboPASCAL 7. Sep 2009 08:11

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:

himitsu 7. Sep 2009 08:29

Re: {$IF exists(...)} the include
 
Zitat:

Zitat von turboPASCAL
Es ist aber schon ein kleiner Wiederspruch in sich das ...

Wieso?

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?

jaenicke 7. Sep 2009 08:32

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:).


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:04 Uhr.
Seite 1 von 2  1 2      

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