Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Case mit negative Werten? (https://www.delphipraxis.net/110971-case-mit-negative-werten.html)

little_budda 27. Mär 2008 13:53


Case mit negative Werten?
 
Hallo,

ich nutze folgenden "Case" unter D5 Pro
Delphi-Quellcode:
case iStromRange of
  -1 : eKorrekturFaktorStrom := 0.5;
  -2 : eKorrekturFaktorStrom := 0.25;
  -3 : eKorrekturFaktorStrom := 0.125;
  -4 : eKorrekturFaktorStrom := 0.0625;
end;
Mein Wert "iStromRange" kommt mit -2 herein aber er landet nicht auf meinem zweiten Eintrag.
Klappt eine Case Schleife mit negativen Werten nicht?

Gruß Holger.

:gruebel:

Die Muhkuh 27. Mär 2008 14:08

Re: Case mit negative Werten?
 
Doch, case klappt auch mit negativen Werten.

Mach mal noch folgendes:

Delphi-Quellcode:
case iStromRange of
  -1 : eKorrekturFaktorStrom := 0.5;
  -2 : eKorrekturFaktorStrom := 0.25;
  -3 : eKorrekturFaktorStrom := 0.125;
  -4 : eKorrekturFaktorStrom := 0.0625;
default
  ShowMessage(IntToStr(iStromRange));
end;

Bei mir klappte das eben mit negativen Werten.

Ansonsten ginge auch noch folgendes:

Delphi-Quellcode:
case Abs(iStromRange) of
  1 : eKorrekturFaktorStrom := 0.5;
  2 : eKorrekturFaktorStrom := 0.25;
  3 : eKorrekturFaktorStrom := 0.125;
  4 : eKorrekturFaktorStrom := 0.0625;
end;

mkinzler 27. Mär 2008 14:10

Re: Case mit negative Werten?
 
Sollte funktionieren? was kommt den bei dir raus?
BTW. Es gibt keine Case-Schleife, genauso wenig wie eine If-Schleife

dominikkv 27. Mär 2008 14:18

Re: Case mit negative Werten?
 
Zitat:

Zitat von Die Muhkuh
Mach mal noch folgendes:

Delphi-Quellcode:
case iStromRange of
  -1 : eKorrekturFaktorStrom := 0.5;
  -2 : eKorrekturFaktorStrom := 0.25;
  -3 : eKorrekturFaktorStrom := 0.125;
  -4 : eKorrekturFaktorStrom := 0.0625;
default
  ShowMessage(IntToStr(iStromRange));
end;

Du meinst else?
Delphi-Quellcode:
case iStromRange of
  -1 : eKorrekturFaktorStrom := 0.5;
  -2 : eKorrekturFaktorStrom := 0.25;
  -3 : eKorrekturFaktorStrom := 0.125;
  -4 : eKorrekturFaktorStrom := 0.0625;
else
  ShowMessage(IntToStr(iStromRange));
end;

little_budda 27. Mär 2008 14:19

Re: Case mit negative Werten?
 
Die Case "Anweisung" :-) wird einfach überlaufen.
Der Wert "eKorrekturFaktorStrom" hat den selben wert wie vor der Anweisung.
(0.8333333)
:wall:

[edit]
Das ShowMessage bringt wie zu erwarten mein -2.
[/edit]

mkinzler 27. Mär 2008 14:25

Re: Case mit negative Werten?
 
Unter D2007 funktioniert es.

Kroko1999 27. Mär 2008 14:25

Re: Case mit negative Werten?
 
Wenn "eKorrekturFaktorStrom" nicht weiter verwendet wird, optimiert der Compiler es weg, sollte aber eine Medlung bringen

little_budda 27. Mär 2008 14:29

Re: Case mit negative Werten?
 
Das ist es!
Die Meldung hatte ich gesehen, aber ich dachte der Wert müsste trotzdem erhalten bleiben.
Sobald ich den Wert verwende klappt auch die Case-Anweisung.
:oops:
Danke.


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