Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi selber erkennen von CheckBox (https://www.delphipraxis.net/52102-selber-erkennen-von-checkbox.html)

gsh 24. Aug 2005 22:09

Re: selber erkennen von CheckBox
 
Erstens pushen ist erst nach 24h erlaubt

zweitens benutze bitte die Delphi Tags
Code:
[delphi][/delphi]
dritens hast du einen Fehler: du prüfst zuerst den RadioButton1 dann 3 und dann die 2 die Beiläge Preise werden aber immer mehr.

viertens kannst du mit begin und end die Befehle "gruppieren"
Delphi-Quellcode:
If RadioButton1.checked then       //Prüfen ob es markiert ist
bergin
  if CheckBox1.Checked then Kosten:= Kosten + 0.55; //wenn ja dann hier her
  if CheckBox2.Checked then Kosten:= Kosten + 0.55;
  ...
end;
If RadioButton2.checked then      //wenn nicht dann hier her
bergin
  if CheckBox1.Checked then Kosten:= Kosten + 0.55;
  if CheckBox2.Checked then Kosten:= Kosten + 0.55;
  ...
end;
If RadioButton3.checked then
bergin
  if CheckBox1.Checked then Kosten:= Kosten + 0.55;
  if CheckBox2.Checked then Kosten:= Kosten + 0.55;
  ...
end;

tigerman33 25. Aug 2005 17:03

Re: selber erkennen von CheckBox
 
Entschuldige wenn ich so offen bin, aber bei dem Code rollen sich einem ja die Fußnägel auf. Nicht böse gemeint (meine ersten Progs sahen auch nicht unbedingt schön aus), aber ich denke, im Dienste der Lesbarkeit wäre wohl folgendes besser (siehe auch mein vorheriger Post):

Delphi-Quellcode:
var Belagkosten,
    Grundkosten,  
    Gesamtkosten: real;
    i : integer;
begin
  Belagkosten := 0;
  for i := 0 to (ControlCount - 1) do // Alle untergeordneten Controls des Forms durchlaufen
    if Controls[i] is TCheckbox then // Gucken was das für ne Control ist
      Belagkosten := Belagkosten + Controls[i].Tag / 100; // Speicher in Tag den Preis in Cents

  if Radiobutton3.Checked then
    Belagkosten := Belagkosten * 2; // Bei großer Pizza kostet der Belag doppelt

  if Radiobutton1.Checked then
    Grundkosten := 1,50;
  if Radiobutton2.Checked then
    Grundkosten := 2,30;
  if Radiobutton3.Checked then
    Grundkosten := 3,00;

  Gesamtkosten := Grundkosten + Belagkosten;

  Label3 := FloatToStr(Gesamtkosten);
end;
Genau für solche Sachen ist die Tag property ja da: Um dem Programmierer die Möglichkeit zu geben, Daten mit in der Control abzuspeichern--notfalls halt als pointer.
Den Tipp von dfried find ich übrigens auch gut (-> Radiogroup). Macht den Code nochmal eine Ecke eleganter.

Und schon richtig, interessante Programmidee :mrgreen:

Guten appetit


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 Uhr.
Seite 2 von 2     12   

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