Einzelnen Beitrag anzeigen

Asura

Registriert seit: 10. Jun 2013
87 Beiträge
 
#1

Zahleneingabe über mehrere Labels

  Alt 22. Dez 2017, 14:14
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!

Geändert von Asura (22. Dez 2017 um 14:21 Uhr)
  Mit Zitat antworten Zitat