![]() |
case abfrage
so,da sind wir wieder :) unser nächstes problem ist nun eine case abfrage
Delphi-Quellcode:
usw. das funktioniert auch alles.
const TraegerTyp: array [1..18] of integer = (80,100,120,140,160,180,200,220,240,270,300,330,360,400,450,500,550,600);
//Berechnung des Gewichtes eines I-Träger + Typzuweisung for a := 1 to 6 do begin if (Widerstandsmomente_array[a] >= 1) and (Widerstandsmomente_array[a] <= 20) then begin KGItraeger_array[a] := (LaengeITraeger_array[a]/1000) * MproKilo[1]; //MproKilo= kg/m ; LaengeITraeger in m umrechnen ITraegerTyp := TraegerTyp[1]; end; aber dann wollen wir abhängig vom ausgegebenen itraeger den gesamtpreis berechnen und dann kommt die fehlermeldung array type required...hilfe!
Delphi-Quellcode:
for a := 1 to 6 do
begin //1. case ITraegertyp of Traegertyp [1,2,3,4]: if (GewichtItraeger_array[a] > 0) and (GewichtItraeger_array[a] <= 399) then GesamtpreisI_array[a] := (GewichtItraeger_array[a])/1000 * EuroproTonne[1] else begin if (GewichtItraeger_array[a] >= 400 ) and (GewichtItraeger_array[a] <= 999) then GesamtpreisI_array[a] := (GewichtItraeger_array[a])/1000 * EuroproTonne[2] else begin if (GewichtItraeger_array[a] >=1000) then GesamtpreisI_array[a] := (GewichtItraeger_array[a])/1000 * EuroproTonne[3]; end; end; |
Re: case abfrage
Von welchem Typ ist denn ITraegertyp?
[edit] Ah, scheint integer zu sein. Was wollt Ihr denn mit der case-Abfrage bezwecken? [/edit] |
Re: case abfrage
je nachdem welcher träger vorher bestimmt wurde und wie schwer das ganze is,soll abhängig davon der gesamtpreis ausgerechnet werden. der teil is jetzt nur nen auszug daraus, es gibt noch weitere abfragen,da wir eben 18 verschiedene trägertypen haben, drei gewichtskategorien und etliche unterschiedliche preise.
|
Re: case abfrage
Also soll abgefragt werden, ob ITraegertyp 80,100,120 oder 140 beträgt?
|
Re: case abfrage
ne,also wenn der trägertyp 80,100,120 oder 140 ist, soll eben abgefragt werden,wie schwer die träger sind und dann soll je nach gewicht (zwischen 0 und 399kg,zwischen 400 und 999kg und über 1000kg)ein bestimmter preis zugeordnet werden. daraus ergeben sich dann die gesamtkosten für die träger.
|
Re: case abfrage
Da hab ich im Moment keine gescheite Idee dazu, alles was mir gerade einfällt, sieht unheimlich umständlich aus.
[edit] Naja, vielleicht etwas in der Art:
Delphi-Quellcode:
const
i80 = 80; i100 = 100; ... TraegerTyp: array [1..18] of integer = (i80, i100,...); ... case iTraegertyp of i80, i100, ...: begin //Code end; end; |
Re: case abfrage
Statt ITraegertyp den Wert aus dem Array Traegertyp zuzuweisen, solltest du dir besser den Index merken:
Delphi-Quellcode:
Wenn du den Arraywert wirklich brauchst, schreibst du einfach sowas wie:
//Berechnung des Gewichtes eines I-Träger + Typzuweisung
for a := 1 to 6 do begin if (Widerstandsmomente_array[a] >= 1) and (Widerstandsmomente_array[a] <= 20) then begin KGItraeger_array[a] := (LaengeITraeger_array[a]/1000) * MproKilo[1]; //MproKilo= kg/m ; LaengeITraeger in m umrechnen idxTraegerTyp := 1; end;
Delphi-Quellcode:
Dann kannst du später in der case-Anweisung einfach schreiben:
ITraegertyp := Traegertyp[idxTraegertyp];
Delphi-Quellcode:
begin
//1. case idxTraegertyp of 1,2,3,4: begin if (GewichtItraeger_array[a] > 0) and (GewichtItraeger_array[a] <= 399) then ... |
Re: case abfrage
Das wird wirklich die beste Lösung sein.
|
Re: case abfrage
haben schon den fehler, danke trotzdem :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:33 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