Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Checkbox (https://www.delphipraxis.net/146821-checkbox.html)

Noris 27. Jan 2010 12:57


Checkbox
 
Hallo,
ich habe (wieder) ein Problem...
Hier ist es:

Was muss ich schreiben, wenn ich möchte, das er bevor er eine Rechnung in einer Procedure durchführt zuerst kontrolliert ob eine oder mehrere Checkboxen angeklickt sind oder nicht?
UNd falls ja..
Was muss ich schreiben, damit er in der Rechnung die Action der Checkbox mit ausfürhrt (in dem Falle soll eine Preis berechnet werden. UNd wenn eine bzw. mehrere Checkboxen aktiviert sind soll ein Wert abgezogen werden...

Hier der COde:

Delphi-Quellcode:
Unit uRechnung;

type
   TRechnung = class
         private
           ZaehlerAlt,
           ZaehlerNeu,
           Verbrauch    : integer;
           PreisJeWoche,
           BVP          : real;
           Wagentyp : boolean;
           Verzicht : boolean;


 public
           procedure init;
           procedure SetZaehlerAlt ( za: integer);    virtual;
           procedure SetZaehlerNeu ( zn: integer);    virtual;
           function GetZaehlerAlt  : integer;       virtual;
           function GetZaehlerNeu  : integer;       virtual;
           function GetVerbrauch   : integer;       virtual;
           function GetPreisJeWoche : real;          virtual;
           function GetBVP         : real;          virtual;


           function EingabeOk      : boolean;       virtual;
           procedure Berechnen;                       virtual;
           procedure KomfortRechnung;                  virtual;
           procedure SetWagentyp (wt : boolean);
           procedure BetaRechnung; virtual;
           procedure GetVerzicht (vz: boolean); virtual;


function TRechnung.EingabeOk : boolean;
(* -------------------------------------------------------------------- *)
begin
  if ZaehlerAlt > Zaehlerneu
  then
     Result := false
  else
     if ZaehlerAlt < 0
     then Result := false
     else if ZaehlerNeu < 1
          then Result := false
          else Result := true;
end;

procedure TRechnung.Berechnen;
(* -------------------------------------------------------------------- *)
begin
  Verbrauch := ZaehlerNeu - ZaehlerAlt;
  case (Verbrauch) of

       1..3  : PreisJeWoche := 210;
        else PreisJeWoche := 190;


  end; (* case verbrauch *)

  BVP := Verbrauch * PreisJeWoche;
end; (* TRechnung.Berechnen *)



procedure TRechnung.KomfortRechnung;
(* -------------------------------------------------------------------- *)
begin
  Verbrauch := ZaehlerNeu - ZaehlerAlt;
  case (Verbrauch) of

       1..3  : PreisJeWoche := 250;
        else PreisJeWoche := 220;


  end; (* case verbrauch *)

  BVP := Verbrauch * PreisJeWoche;
end; (* TRechnung.Berechnen *)

procedure TRechnung.BetaRechnung;
begin
if Wagentyp
then Berechnen
else KomfortRechnung;
end;
[b]
In der Hauptunit:[/b][u]

procedure TCopyShopFenster.OKButtonClick(Sender: TObject);
begin
  Rechnung.Init;
  DatenAktualisieren;
  if Rechnung.EingabeOk
  then begin
         Rechnung.BetaRechnung;
         MaskeAktualisieren;
       end
  else
    showmessage('Falsche Eingaben. Bitte überprüfen Sie Ihre Zahlen!');
end;




ALso, er soll zuerst abchecken ob eine Checkbox aktiviert ist (true) und wenn ja, von dem Preis der pro Woche berechnet wird, den Betrag, der in der Procedure der Checkbox steht, zu subtrahieren..

Könnte mir jemand sagen, was ich alles schreiben müsste?

Bitte genau, da ich noch ein ziemlicher Anfänger bin!

Ich hoffe ihr könnt mir helfen...

MFG N0RiS

tkone 27. Jan 2010 13:01

Re: Checkbox
 
also du bauchst nur eine if abfrage davor zu schalten.
so ungefähr
Delphi-Quellcode:
if checkbox1.checked then
prozedur 1
else
prozedur2;

Noris 27. Jan 2010 13:06

Re: Checkbox
 
Wo genau muss ich das hinsetzen?
Inw elche procedure?
Ich muss doch auch außerdem natürlich die Procedure schreiben, wo drin steht, was er amchen soll...

PS: Danke für die schnelle Hilfe...

Sherlock 27. Jan 2010 13:07

Re: Checkbox
 
Wann soll er es denn machen? Genau da schreibst Du es hin.

Sherlock

hoika 28. Jan 2010 10:10

Re: Checkbox
 
Hallo,

also rein kommt der Code z.B. in TCopyShopFenster.OKButtonClick

Du schreibst das aber ziemlich verwirrend ...


Heiko

Noris 19. Feb 2010 09:50

Re: Checkbox
 
Ich kann aber nciht einfach den Namen der Procedure für Prozedur1 bzw.Prozedr 2 ensetzen

@hoika: hab informatik inner schule...
Hat der Lehrer uns gezeigt :P

DeddyH 19. Feb 2010 10:54

Re: Checkbox
 
Zitat:

den Betrag, der in der Procedure der Checkbox steht
:?: Erklär das doch einmal genauer, das ist wirklich verwirrend. Bedenke bitte, dass wir die Aufgabenstellung nicht kennen.

p80286 19. Feb 2010 12:48

Re: Checkbox
 
Hallo Noris

Deine Frage beinhaltet einige Formulierungen, die wohl falsch sind.
Zitat:

Zitat von Noris
.. damit er in der Rechnung die Action der Checkbox mit ausfürhrt

Eine Checkbox ist zunächst einmal nur die Darstellung einer bool. Variablen (TCheckbox.Checked). Das über onClick da noch irgendeine aktion ausgeführt werden kann ist zunächst einmal nebensächlich.

Zitat:

Zitat von Noris
..., den Betrag, der in der Procedure der Checkbox steht, zu subtrahieren..

In einer Procedure einer Checkbox steht im allg. kein (Geld)Betrag sondern in einer Variablen. Sollte irgendwo in irgendeiner Procedure, die zu einer Checkbox gehört, ein Wert vorhanden sein, so ist das reiner Zufall. In diesem Falle sollte dieser Wert "global" (für die Verfechter der reinen Lehre als "private-Variable" des Forms oder der zugehörigen Klasse) vorhanden sein.

Gruß
K-H


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