Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Probleme mit BitBtn... (https://www.delphipraxis.net/124684-probleme-mit-bitbtn.html)

Pro-Grammierer 23. Nov 2008 09:27


Probleme mit BitBtn...
 
Wie der Titel schon verrät habe ich ein Problem mit BitBtn.
Ich hab die BitBtn in einem Panel eingefügt. Das Panel hab ich dann mit einem OnClick Ereignis versehen. In diesem hab ich dann folgenden Code geschrieben:
Delphi-Quellcode:
procedure TForm5.plRechnungClick(Sender: TObject);
begin
if Sender = bbt10cent then Preis := Preis - 0.1;
if Sender = bbt20cent then Preis := Preis - 0.2;
if Sender = bbt50cent then Preis := Preis - 0.5;
if Sender = bbt1euro then Preis := Preis - 1;
if Sender = bbt2euro then Preis := Preis - 2;
if Sender = bbt5euro then Preis := Preis - 5;
if Sender = bbt10euro then Preis := Preis - 10;
if Sender = bbt20euro then Preis := Preis - 20;
if Sender = bbt50euro then Preis := Preis - 50;

   if Preis<=0 then
     begin
      lbPreis.Caption := FloatToStrF(0,ffCurrency,6,2);
      lbWechsel.Caption := FloatToStrF(-Preis,ffCurrency,6,2);
      Preis := 0;
     end
   else lbpreis.Caption:=FloatToStrF(Preis,ffCurrency,6,2);
end;
Die eig. funktion der BitBtn ist es, das lbPreis - Label wieder auf 0 bzw. unter null zu setzen (man kann auch ins Minus geraten). Doch wenn ich darauf klicke, passiert nichts.

Wenn ihr aus dem Abschnitt keinen Fehler entnehmen könnt, dann lad ich gerne das Projekt hoch, damit ihr es euch einsehen könnt. Ich weiß nicht mehr weiter !

Helmi 23. Nov 2008 09:34

Re: Probleme mit BitBtn...
 
Wenn ich das richtig gesehen habe, dann fragst du im OnClick-Ereignis eines Panels
den Sender auf BitBtn ab.
Das geht nicht, denn der Sender kann ja nur das Panel sein

Pro-Grammierer 23. Nov 2008 09:49

Re: Probleme mit BitBtn...
 
Wie sollte ich das stattdessen machen?
Jeden Button einzelnd mit einem OnClick Ereignis versehen? Das hatte ich schonmal, dann hat er den Preis vor jedem Button Drücken sozusagen wieder resettet.
Meinetwegen der Preis lag bei 15€ und ich hab dann auf den Button 2€ geklickt, dann hat er 15-2=13€ gerechnet. Wenn ich dann auf 1 Euro dann hat er wieder 15-1=14€.
Allerdings hat ich das da noch nicht mit dem ff,Currency. Sollte ich das bei jedem Button neu einfügen oder wie?

Die Muhkuh 23. Nov 2008 09:53

Re: Probleme mit BitBtn...
 
Du kannst ein Event auch mehreren BitBtns zuweisen, dann klappt Deine Überprüfung mit dem Sender.

Pro-Grammierer 23. Nov 2008 09:57

Re: Probleme mit BitBtn...
 
WIe würde das aussehen?

Helmi 23. Nov 2008 09:58

Re: Probleme mit BitBtn...
 
wie ist "Preis" definiert? - bzw. wo?
kann es sein, dass du irgendwo den Wert von Preis wieder auf 15€ setzt?

Du kannst ruhig eine OnClick-Ereignis jedem BitBtn-OnClick-Ereignis
zuweisen und dann mit deiner Sender=BitBtn Abfrage den jeweiligen
Button abfragen.

Wobei du dir mal die Property "Tag" anschauen solltest. Wenn du jedem
Button einen Wert in Tag zuweist, dann könntest in der OnClick-Procedure
den jeweiligen Button mittels:

Delphi-Quellcode:
begin
  case TBitBtn(Sender).Tag of
    1: ShowMessage('1');
    2: ShowMessage('2');
  end;
end;
den jeweiligen BitBtn-Button abfragen

Pro-Grammierer 23. Nov 2008 10:08

Re: Probleme mit BitBtn...
 
Hm, also bei meinem Parkautomaten ging das aber so wie ich es hier hab xD Ich weiß nicht warum das nun anders ist.

Der Preis ist als Preis in einer Variablen : real definiert.
Er setzt sich aus lpreis*Liter zusammen. lpreis ist ebenfalls eine Variable, die von den Buttons bestimmt wird, die die Kosten für einen Liter des jeweiligen Treibstoffs beschreiben.

Noedel 23. Nov 2008 10:15

Re: Probleme mit BitBtn...
 
häng das ganze mal an, ich schau mal :)

Pro-Grammierer 23. Nov 2008 10:22

Re: Probleme mit BitBtn...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habs gelöst bekommen. xD Man musste dem ganzen nur eine eigene Procedur geben. Ich häng es trotzdem mal an.

Wenn ihr euch das denn schon einmal anguckt, dann guckt doch bitte, wie ich es schaffe, dass der btWechsel Enabled ist, wenn sich das Label lbWechsel über 0 bewegt.

Irgendwo muss ich da bestimmt:

Delphi-Quellcode:
 
if lbWechsel<0 then
   btWechsel.Enabled:=true;
einfügen. Nur wo?!

Ich danke schon jetzt für eure Hilfe !

DeddyH 23. Nov 2008 10:24

Re: Probleme mit BitBtn...
 
Der Anhang fehlt ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 Uhr.
Seite 1 von 2  1 2      

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