Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit Checkbox (https://www.delphipraxis.net/134583-problem-mit-checkbox.html)

ginimausi 25. Mai 2009 11:56


Problem mit Checkbox
 
Hallo,
ich habe folgendes Problem.
Als Projektarbeit fertigen wir in der Schule einen MC Donalds Bestellservice an.
Funktioniert auch soweit, bloß es ergab sich nun das Problem mit den Preisen
Wenn man in der Checkbox beispielsweise eine Cola und eine kleine Pommes wählt, soll es in der Ausgabe (sprich dem Kasse Button) die verschiedenen Preise addieren.
Das ist die Theorie, nur leider funktioniert die Praxis nich :-(

Bitte um Hilfe :coder2:

Vielen Dank schonmal im Voraus :spin2: :mrgreen:

DeddyH 25. Mai 2009 12:00

Re: Problem mit Checkbox
 
Wie sieht denn Dein bisheriger Code aus und was genau funktioniert nicht? :glaskugel:

Klaus01 25. Mai 2009 12:01

Re: Problem mit Checkbox
 
Hallo,

liegen Dein CheckBoxen in einem Array of TChaeckBox?
Dann könntest Du in einer Schleife dieses Array
durchlaufen und prüfen ob denn die Checkbox enabled ist.

Oder Du kannst FindComponent (SuchFunktion) verwenden.

Einfacher wäre es aber wenn Du direkt
wenn die CheckBox angekreuzt wird die
Rechnungssummer erhöhst.
(OnCheck Ereignis)

Grüße
Klaus

hoika 25. Mai 2009 12:02

Re: Problem mit Checkbox
 
Hallo,

und was sollen wir jetzt machen ?
Glaskugel rausholen ?

zuerst benutze bitte im OnButtonClick des Kasse-Buttons
F5/F7/F8

Dann entweder das Projekt anhängen (ohne Exe),
oder die Stelle zeigen, die nicht klappt.


Heiko

ginimausi 25. Mai 2009 12:06

Re: Problem mit Checkbox
 
Ach ja, noch ein Problem:
Wir haben auch Radio Button verwendet, isrt das dann genauso wie mit den Checkboxen?
(also praktisch mit dem true und false?)

Es gibt noch keinen Code für das mit den Berechnen des Endpreises, wir haben bis jetzt nur Überlegungen , also das mit Checkbox1.checked...
Wir wissen aber nicht wie das mit den Preis funktionieren soll, da ja praktisch jedes einzelne Produkt einen anderen Preis hat...

Danke für die Antworten

DeddyH 25. Mai 2009 12:10

Re: Problem mit Checkbox
 
Checkboxen und Radiobuttons verfügen beide über die Checked-Eigenschaft (angehakt oder nicht). Eine schnelle Lösung könnte so etwas sein:
Delphi-Quellcode:
function TMainForm.Gesamtpreis: double;
begin
  Result := 0;
  if CheckboxCola.Checked then
    Result := Result + Preis_Cola;
  if CheckBoxCheeseburger.Checked then
    Result := Result + Preis_Cheeseburger;
  //usw.
end;
Die einzelnen Preise hätte ich dann als Konstanten hinterlegt und würde diese dann verwenden (z.B. Preis_Cola = 1,99).

[edit] Rechtschreibung [/edit]

Forlan 25. Mai 2009 12:35

Re: Problem mit Checkbox
 
Oder wohl sonst die einfachste Lösung: Du benutzt eine Variable in deiner Procedure...

Delphi-Quellcode:
var
  sum: Currency;
begin
  if checkbox1.Checked then
    sum:= sum + ColaPreis;
  if checkbox2.Checked then
    sum:= sum + WasauchimmerPreis;
   {...}
end;
Aber ansonsten ist die Lösung von Detlef noch optimaler.

hoika 25. Mai 2009 13:55

Re: Problem mit Checkbox
 
Hallo,

wo habt ihr denn dann den Preis versteckt ???
Werden die CheckBoxen dynamisch erzeugt ?

Mehr Infos !!!

Eine Möglichkeit wäre Nutzung von Tag.
Ist ne Integer-Zahl, die jede Komponente hat.

Jede CheckBox/RadioButton bekommt ein Tag.
Anhand des Tag wird der Preis ermittelt:

Delphi-Quellcode:
function GetEuroCentOnTag(theTag: Integer): Integer;
begin
  case theTag of
    1: Result:= 100;  // 1.00 EUR
    2: Result:= 150;  // 1.50 EUR
    else Result:= 0;
end;
Dann benutzt man z.B. Components/ComponentCount,
um alle CB/RB zu durchlaufen und den Preis aufzurechnen


Heiko
PS: Immer in Cent, nie in Euro rechnen (Rundungsfehler)


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