Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   conditional expressions (PHP-Code in Delphi umsetzten) (https://www.delphipraxis.net/120263-conditional-expressions-php-code-delphi-umsetzten.html)

chest3rs 8. Sep 2008 10:33


conditional expressions (PHP-Code in Delphi umsetzten)
 
Guten Tag,

ich programmiere grad mit PHP und bin über "conditional expressions" gestolpert.

PHP:

$somestr = 'hell';

$somestr = ($somestr == 'hell') ? 'dunkel' : 'hell';


Mit Delphi sieht das so aus:

Delphi-Quellcode:
if somestr = 'hell' then somestr := 'dunkel' else somestr := 'hell';
Ich möchte wissen, ob ich den Delphi-Code ähnlich wie in PHP umsetzen kann und mir die if-Abfrage sparen kann.

MFG

DeddyH 8. Sep 2008 10:34

Re: conditional expressions (PHP-Code in Delphi umsetzten)
 
Nein, dazu gibt es AFAIK in Delphi kein Äquivalent.

Bernhard Geyer 8. Sep 2008 10:37

Re: conditional expressions (PHP-Code in Delphi umsetzten)
 
Glücklicherweise gibt es kein Konstrukt. Ich hab mich schon immer zu C++-Zeiten über solchen unlesbaren Code geärgert wenn noch viel längere Zeilen dabei rausgekommen sind.

Grolle 8. Sep 2008 10:41

Re: conditional expressions (PHP-Code in Delphi umsetzten)
 
Hi,

bei den Jedis gibt es noch das folgende Konstrukt (JclSysUtils.pas):
Delphi-Quellcode:
CheckBox1.Checked := iff(1=1, true, false);
Viele Grüße ...

Sharky 8. Sep 2008 10:48

Re: conditional expressions (PHP-Code in Delphi umsetzten)
 
Zitat:

Zitat von Bernhard Geyer
Glücklicherweise gibt es kein Konstrukt. ....

Gibt es nicht? ;-)
Delphi-Quellcode:
uses
 StrUtils;

procedure TForm1.Button1Click(Sender: TObject);
var
  blubb : String;
begin
  blubb := 'hell';
  blubb := ifthen (blubb='hell','dunkel','hell');
  ShowMessage(blubb);
end;

alcaeus 8. Sep 2008 10:56

Re: conditional expressions (PHP-Code in Delphi umsetzten)
 
Es gibt das Konstrukt, allerdings sollte man aufpassen. Die Konstrukte werden beim Funktionsaufruf ausgewertet. Sowas:
Code:
$foo = ($bar != 0) ? $foobar / $bar : 0;
geht nicht, weil beim entsprechenden Aufruf (Pseudocode):
Delphi-Quellcode:
foo := ifthen(bar <> 0, foobar / bar, 0);
foobar / bar auf alle Faelle ausgewertet wird.

Greetz
alcaeus

chest3rs 8. Sep 2008 10:59

Re: conditional expressions (PHP-Code in Delphi umsetzten)
 
Zitat:

Zitat von Bernhard Geyer
Glücklicherweise gibt es kein Konstrukt. Ich hab mich schon immer zu C++-Zeiten über solchen unlesbaren Code geärgert wenn noch viel längere Zeilen dabei rausgekommen sind.

Ich wollte damit eigentlich Platz sparen... Dann greife ich lieber zur übersichlichen Altenative.

Zitat:

Zitat von Grolle
Hi,

bei den Jedis gibt es noch das folgende Konstrukt (JclSysUtils.pas):
Delphi-Quellcode:
CheckBox1.Checked := iff(1=1, true, false);
Viele Grüße ...

Zitat:

Zitat von Sharky
Gibt es nicht? ;-)
Delphi-Quellcode:
uses
 StrUtils;

procedure TForm1.Button1Click(Sender: TObject);
var
  blubb : String;
begin
  blubb := 'hell';
  blubb := ifthen (blubb='hell','dunkel','hell');
  ShowMessage(blubb);
end;


Gute Idee, man kann das mit einer zusätzlichen Funktion lösen.

Danke für eure schnelle Hilfe.

SubData 8. Sep 2008 11:03

Re: conditional expressions (PHP-Code in Delphi umsetzten)
 
Diese Funktion gibt es schon.

Ist Teil der StrUtils bzw. Math für Zahlen.

Bernhard Geyer 8. Sep 2008 11:08

Re: conditional expressions (PHP-Code in Delphi umsetzten)
 
Zitat:

Zitat von Sharky
Zitat:

Zitat von Bernhard Geyer
Glücklicherweise gibt es kein Konstrukt. ....

Gibt es nicht? ;-)

Funktionen kann man immer Schreiben, zählt nicht.

Ich glaube auch bei C/C++ hat das der Precompiler erledigt und dort konnte man sich übelste Fehler einprogrammieren wenn man vergessen hat genügend Klammern zu verwenden. Und deshalb (neben der unleserlichkeit bei zu komplexen Anweisungen) hab ich es vermieden.

Sharky 8. Sep 2008 11:10

Re: conditional expressions (PHP-Code in Delphi umsetzten)
 
Zitat:

Zitat von Bernhard Geyer
Funktionen kann man immer Schreiben, zählt nicht. ...

Stimmt. Auch wenn diese Funktion inzwichen bei Delphi dabei ist gibt es keinen Sprachsyntax der diese Funktionalität bietet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:54 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