Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie kann ich Mit Button Tags arbeiten(bitte helfen wichtig) (https://www.delphipraxis.net/34406-wie-kann-ich-mit-button-tags-arbeiten-bitte-helfen-wichtig.html)

PeterPan 22. Nov 2004 19:32


Wie kann ich Mit Button Tags arbeiten(bitte helfen wichtig)
 
Habe ein Problem habe 5 Buttons bei jedem button den ich klicken kann soll ein wert abgezogen ausgegeben werden.

Angenommen ich muss 10 Euro bezahlen und drücke button1 dann sind es noch 5 euro. Button 2 drücken dann sinds noch 3 euro .... Also im Prinzip die Funktion einen Park Automates.

Ich wollte das mit Tags machen also habe ich jedem button einen tag zugewiesen von 1 bis 5. Leider weiß ich nicht wie ich das anspreche (den Tag).

Bitte helft mir es ist sehr wichtig.

Ultimator 22. Nov 2004 19:33

Re: Wie kann ich Mit Button Tags arbeiten(bitte helfen wicht
 
Delphi-Quellcode:
Button1.Tag:=23;
Meinst du das? :gruebel:

Dax 22. Nov 2004 19:34

Re: Wie kann ich Mit Button Tags arbeiten(bitte helfen wicht
 
Durch Typecast in der Ereignisprozedur:
Delphi-Quellcode:
procedure TForm1.Button1CLick(Sender: TObject);
begin
  case TButton(Sender).Tag of
    1: //Mach was
    2: //Mach was anderes
  //...
  end;
  //...
end;

geisi 22. Nov 2004 19:35

Re: Wie kann ich Mit Button Tags arbeiten(bitte helfen wicht
 
Delphi-Quellcode:
wert:=wert-Button1.Tag;
hast vielleicht das gemeint?

PeterPan 22. Nov 2004 19:39

Re: Wie kann ich Mit Button Tags arbeiten(bitte helfen wicht
 
mmh also ich meinte. so ne art case oder so.

Oder ne IF abfrage:

If tag = 1 then
Geld - 5
If Tag = 2 then
Geld -2 ........

kann ich das irgentwie in einer procedure ansprechen alles? Die buttons haben alle tags von 1-5

PeterPan 22. Nov 2004 19:49

Re: Wie kann ich Mit Button Tags arbeiten(bitte helfen wicht
 
Code:
  case TButton(Sender).Tag of
    1: Endbetrag:= Parkgebuehr - 10;
    2: Endbetrag:= Parkgebuehr - 5;
    3: Endbetrag:= Parkgebuehr - 2;
    4: Endbetrag:= Parkgebuehr - 1;
    5: Endbetrag:= Parkgebuehr - 0,5;

so habe jetzt ein problem ich kann nicht minus 0,5 rechnen wieso beide var sind double.
Wieso nicht? und wie kann ich das ändern?

Ultimator 22. Nov 2004 19:50

Re: Wie kann ich Mit Button Tags arbeiten(bitte helfen wicht
 
Ersetz mal das Komma in der 0,5 durch einen Punkt ;-)

[edit]Oder du schreibst:
Delphi-Quellcode:
DecimalSeparator:=',';
[/edit]

Dax 22. Nov 2004 19:50

Re: Wie kann ich Mit Button Tags arbeiten(bitte helfen wicht
 
Endbetrag muss als DOuble definiert sein und Fliesskommazahlen schriebt man in Delphi mit ., also 0.5.

PeterPan 22. Nov 2004 19:55

Re: Wie kann ich Mit Button Tags arbeiten(bitte helfen wicht
 
so nächstes problem wenn ich jetzt auf einen button drücke kommt da aber nix habe jetzt mal mit showmessage getestet wieso nimmt der den button(sender) nicht=?

PeterPan 22. Nov 2004 22:08

Re: Wie kann ich Mit Button Tags arbeiten(bitte helfen wicht
 
Code:
 
const Gebuehr = 1/2;
procedure TForm1.Button1Click(Sender: TObject);
var Parkgebuehr,Endbetrag: Currency;
    Zeit1, Zeit2, Zeit : TDateTime;
    Stunden : integer;
begin
  //Endbetrag := 0;
  Parkgebuehr :=0;
  Zeit2 := Time;
  Zeit1 := StrToTime(EditZeit1.Text);
  LabelAZeit.Caption := TimeToStr(Zeit2);
  Zeit:= Zeit2-Zeit1;
  LabelZeit.Caption := TimeToStr (Zeit);
  Stunden := Hourof(Zeit);
  if Minuteof(Zeit) > 0 then
    Stunden := Stunden + 1;
  LabelStunden.Caption := IntToStr(Stunden);
  Parkgebuehr := Stunden * Gebuehr;
  LabelGebuehr.Caption := FloatToStr (Parkgebuehr);



case TButton(Sender).Tag of
    1:begin
        If Parkgebuehr >=10 then
        begin
          Parkgebuehr := Parkgebuehr -10;
          Endbetrag:= Parkgebuehr;
          Memo1.Lines.Add((Format('%4f',[Endbetrag])));
        end;
      end;
    2:begin
        If (Parkgebuehr>=5) then
        begin
          Parkgebuehr := Parkgebuehr -5;
          Endbetrag:= Parkgebuehr;
          Memo1.Lines.Add((Format('%4f',[Endbetrag])));
        end;
      end;
    3:begin
        If (Parkgebuehr>=2) then
        begin
          Parkgebuehr := Parkgebuehr -2;
          Endbetrag:= Parkgebuehr;
          Memo1.Lines.Add((Format('%4f',[Endbetrag])));
        end;
      end;
    4:begin
        If (Parkgebuehr>=1) then
        begin
          Parkgebuehr := Parkgebuehr -1;
          Endbetrag:= Endbetrag - Parkgebuehr;
          Memo1.Lines.Add((Format('%4f',[Endbetrag])));
        end;
      end;
    5:begin
        If (Parkgebuehr>=0.5) then
        begin
          Parkgebuehr := Parkgebuehr -0.5;
          Endbetrag:= Parkgebuehr;
          Memo1.Lines.Add((Format('%4f',[Endbetrag])));
        end;
      end;
    6:begin
        If (Parkgebuehr>=0.2) then
        begin
          Parkgebuehr := Parkgebuehr -0.2;
          Endbetrag:= Parkgebuehr;
          Memo1.Lines.Add((Format('%4f',[Endbetrag])));
        end;
      end;
    7:begin
        If (Parkgebuehr>=0.1) then
        begin
          Parkgebuehr := Parkgebuehr -0.1;
          Endbetrag:= Parkgebuehr;
          Memo1.Lines.Add((Format('%4f',[Endbetrag])));
        end;
      end;
    8:begin
        If (Parkgebuehr>=0.05) then
        begin
          Parkgebuehr := Parkgebuehr -0.05;
          Endbetrag:= Parkgebuehr;
          Memo1.Lines.Add((Format('%4f',[Endbetrag])));
        end;
      end;
so bin jetzt so weit gekommen wenn ich 2,5 Parkgebühr habe und dann auf den 2 euro button klicke dann stehen im Memo noch 0,5 aber klicke ich dann auf 0,5 so gibt das Memo wieder 2 aus also heißt es das parkgebuehr doch immer noch 0 ist oder nicht?

Wie kann ich das ändern oder verbessern?


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