AW: Button wird sichtbar
Hier ein Simulator:
Delphi-Quellcode:
Man bracht zwei Buttons und Labels. Danach kann man tasten was passiert wenn man etwas angibt.
procedure TForm1.Button1Click(Sender: TObject);
const GBGN = 'Gibt einen Betrag größer Null ein:'; HHS = 'Himmi Herrgott Sakrament, Wert größer Null'; var Abzug: Integer; begin Preis := StrToIntDef(InputBox('Preis angeben', GBGN, '100'), 0); if Preis <= 0 then raise Exception.Create(HHS); Abzug := StrToIntDef(InputBox('Abzug (Ersatz für Button mit Preis) angeben', GBGN, '100'), 0); if Abzug <= 0 then raise Exception.Create(HHS); //---------------------------------------------------------------------------- Preis := Preis - Abzug; //100 erstetzt durch Variable Abzug; L_Rest.Caption:=inttostr(Preis)+'€'; if Preis <=0 then begin L_Wechsel.Caption := 'Ihr Wechselgeld: ' + IntToStr((Preis-Wechsel)*-1)+'€'; L_Rest.Caption := IntToStr(0)+'€'; Wechsel := Wechsel + Abzug; //100 erstetzt durch Variable Abzug; //... das ist hier unwichtig B_Wechsel.Enabled := False; B_zumTicket.Enabled := True; end; if Wechsel > 0 then begin B_Wechsel.Enabled := True; B_zumTicket.Enabled := False; end; end; Also es ist mir bisher nicht gelungen was der TE vor hatte. Der Button bleib immer an. |
AW: Button wird sichtbar
Zitat:
|
AW: Button wird sichtbar
So, ich habe jetzt mal versucht nachzuvollziehen, was Du genau meinst:
Der Preis ist eigenlich der noch zu bezahlende Betrag, der immer kleiner wird. Wenn man alles abbezahlt hat und kein Wechselgeld übrig bleibt, soll sofort der zum_Ticket- Button freigeschaltet werden, wenn zu viel bezahlt wurde und Wechselgeld herausgegeben wird, soll der Wechselgeld- Button freigeschaltet werden. Das Problem ist, dass du das Wechselgeld extra zählst. Eigentlich ist es ja nichts anderes als das noch zu zahlende und zwar negativ. Du sagst gleich Wechselgeld:= Wechselgeld +100; (falls jemand noch mal Bezahlt obwohl alles schon bezahlt ist) wo das Wechselgeld eigentlich 0 sein müsste. Deswegen gehört stattdessen dort eigentlich ein Wechselgeld:= -Preis;. Damit bekommst du den Betrag heraus, der zuviel gezahlt wurde. Soweit meine Interpretation des Quellcodes. Trotz alledem wäre es hier angebracht das ganze anders zu lösen, so dass Du 3 Möglichkeiten hast (>0, 0 und <0) und nicht erst den Button anschaltest und dann wieder ausschaltest. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:16 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