Guten Tag,
ich bin gerade dabei eine Zahleneingabe zu erstellen. Das Formular wird über ein Tablet genutzt, weshalb ich auf ein NumPad in Form von Speedbutton zurückgegriffen habe.
Daraufhin steht darüber in einer festen Form 6 Labels, wofür 5 für eine Zahl bestimmt ist: 0 0 0 . 0 0. Von Links beginnend: lb_depo5 bis lb_depo1. Der Punkt ist hiervon nicht betroffen.
Man soll nun über die Eingabe den Effekt haben, dass von Rechts die Zahlen nacheinander eingefügt werden.
Beispiel: Ich klicke auf dem Numpad 1, dann erscheint bei lb_depo1 die Nummer 1. Nach dem Klicken auf 2. Rutscht die 1 auf lb_depo2 und die eingegebene 2 auf Position lb_depo1.
Leider funktioniert das nicht so wirklich, ab der dritten Eingabe funktioniert dieses System nicht mehr.
Delphi-Quellcode:
// Zahleneingabe // { TODO : Zahleneingabe: }
procedure TF_Admin2_2.sb_Click(Sender: TObject);
begin
if J = 1 then
begin
TLabel(Self.FindComponent('lb_depo' + IntToStr(J))).Caption := (Sender as TSpeedButton).Caption ;
J := J+1;
end
else if (J <= 5) and (J > 1) then
begin
TLabel(Self.FindComponent('lb_depo' + IntToStr(J))).Caption := TLabel(Self.FindComponent('lb_depo' + IntToStr(J-1))).Caption ;
TLabel(Self.FindComponent('lb_depo' + IntToStr(J-1))).Caption := (Sender as TSpeedButton).Caption ;
J := J+1
end
else if J > 5 then begin btn_delete.Click; J := 1; end;
// Kontoguthaben - Einzahlung
lb_Acc_m_Depo.Caption := FloattoStrF(CheckAccountAmount(F_Users.UserID) - GetDeposit, ffCurrency, 15,2);
end;
Weswegen ich mal davon ausgehe, dass bei dem Zweiten If der Fehler liegt.
Ich würde mich freuen, wenn sich da jemand diesem kleinem logischen Problem annehmen könnte und bin für andere Vorschläge für eine eventuell bessere Umsetzung auch offen!