AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Zwei Labels nacheinander mit Ziffernbuttons füllen
Thema durchsuchen
Ansicht
Themen-Optionen

Zwei Labels nacheinander mit Ziffernbuttons füllen

Ein Thema von cyberaj · begonnen am 8. Apr 2020 · letzter Beitrag vom 9. Apr 2020
Antwort Antwort
Seite 1 von 2  1 2      
cyberaj

Registriert seit: 8. Apr 2020
3 Beiträge
 
#1

Zwei Labels nacheinander mit Ziffernbuttons füllen

  Alt 8. Apr 2020, 12:58
Moin moin!

Ich steh' auf dem Schlauch, vielleicht hat ja jemand eine spontane Idee!

Ich habe ein Ziffernfeld (Button1-Button9) und zwei Labels (Label1, Label2)
siehe Anhang..

Durch klicken / tippen einer Ziffer soll das erste Label entsprechend die Ziffer zeigen, nach tippen der nächsten Ziffer, das zweite Label.

Nach der zweiten Ziffer soll nix mehr passieren, es gibt allerdings noch einen C-Button, damit kann man die Eingabe wieder löschen und auch zur 1. Ziffer zurück.

Mir fallen zwölf Handwerkermethoden ein, aber keine einzig elegante.
Hat jemand einen einfachen Lösungsansatz für mich??

Danke
AJ
Miniaturansicht angehängter Grafiken
bildschirmfoto-2020-04-08-um-13.43.15.jpg  
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#2

AW: Zwei Labels nacheinander mit Ziffernbuttons füllen

  Alt 8. Apr 2020, 13:15
Alle Buttons bekommen die gleiche Routine zugewiesen. Dann prüfst du die Länge vom Label1 und Label2. Damit solltest du alles haben.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain

Geändert von zeras ( 8. Apr 2020 um 13:20 Uhr)
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
153 Beiträge
 
#3

AW: Zwei Labels nacheinander mit Ziffernbuttons füllen

  Alt 8. Apr 2020, 13:16
Mir fallen zwölf Handwerkermethoden ein, aber keine einzig elegante.
Hat jemand einen einfachen Lösungsansatz für mich??
Und was spricht gegen eine Handwerkermethode?
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
153 Beiträge
 
#4

AW: Zwei Labels nacheinander mit Ziffernbuttons füllen

  Alt 8. Apr 2020, 13:22
Delphi-Quellcode:
//SpeedButton0 bis SpeedButton10 greifen auf die gleiche Prozedur zu
procedure TForm1.SpeedButton1Click(Sender: TObject);

  function GetNumber(LabelName: String): String;
  var
    s: String;
  begin
    //Routine geht davon aus, dass alle Buttons die Nummer
    //SpeedButton0 bis SpeedButton10 haben.
    s := LabelName;
    Delete(s, 1, Length('SpeedButton')); //Entfernt Text vor der Zahl
    Result := s;
  end;

begin
  if Label1.Caption = 'then
    Label1.Caption := GetNumber(TSpeedButton(Sender).Name)
  else
    if Label2.Caption = 'then
      Label2.Caption := GetNumber(TSpeedButton(Sender).Name);
end;

procedure TForm1.SpeedButton12Click(Sender: TObject);
begin
  Label1.Caption := '';
  Label2.Caption := '';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  SpeedButton12Click(nil);
end;
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

AW: Zwei Labels nacheinander mit Ziffernbuttons füllen

  Alt 8. Apr 2020, 13:23
Zitat:
Dann prüfst du die Länge vom Label1 und Label2. Damit solltest du alles haben.
Oder man zählt die Klicks mit. Aber das könnte alles etwas schwierig werden, wenn man zwei- oder mehrstellige Zahlen eingeben will.
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#6

AW: Zwei Labels nacheinander mit Ziffernbuttons füllen

  Alt 8. Apr 2020, 13:28
Zitat:
Dann prüfst du die Länge vom Label1 und Label2. Damit solltest du alles haben.
Oder man zählt die Klicks mit. Aber das könnte alles etwas schwierig werden, wenn man zwei- oder mehrstellige Zahlen eingeben will.
Er spricht aber von Ziffern. Also kann im Label1 nur eine Ziffer stehen und im Label2 auch nur eine Ziffer.
Ist das vielleicht eine Hausaufgabe in der Corona Zeit, die Online vorm Lehrer kommt?)
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#7

AW: Zwei Labels nacheinander mit Ziffernbuttons füllen

  Alt 8. Apr 2020, 13:35
Moin...
Zitat:
die Online vorm Lehrer kommt?
...halte ich für ein Gerücht...Android + FMX.

Wie schon gesagt: Für dich sind Events (ButtonClick) interessant. Im Eventhandler weißt du die Werte den Labels zu...fertsch.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Zwei Labels nacheinander mit Ziffernbuttons füllen

  Alt 8. Apr 2020, 13:36
Hallo,
GetNumber hätte ich über Nutzung des Properties Tag ersetzt.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Zwei Labels nacheinander mit Ziffernbuttons füllen

  Alt 8. Apr 2020, 14:20
Bei dem Beispiel von Alallart kannst du, wenn du normale Buttons benutzt auch einfach anstatt
Delphi-Quellcode:
procedure TForm1.SpeedButton1Click(Sender: TObject);

  function GetNumber(LabelName: String): String;
  var
    s: String;
  begin
    //Routine geht davon aus, dass alle Buttons die Nummer
    //SpeedButton0 bis SpeedButton10 haben.
    s := LabelName;
    Delete(s, 1, Length('SpeedButton')); //Entfernt Text vor der Zahl
    Result := s;
  end;

begin
  if Label1.Caption = 'then
    Label1.Caption := GetNumber(TSpeedButton(Sender).Name)
  else
    if Label2.Caption = 'then
      Label2.Caption := GetNumber(TSpeedButton(Sender).Name);
end;
folgendes nutzen (deine Buttons sind ja entsprechend "konfiguriert"):

Delphi-Quellcode:
procedure TForm1.ButtonClick(Sender: TObject);
begin
  if Label1.Caption = 'then
    Label1.Caption := TButton(Sender).Caption
  else
    if Label2.Caption = 'then
      Label2.Caption := TButton(Sender).Caption;
end;
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#10

AW: Zwei Labels nacheinander mit Ziffernbuttons füllen

  Alt 8. Apr 2020, 14:34
@Alallart

Warum in GetNumber die Nummer aus dem Namen extrahieren und nicht die Caption verwenden?
Wobei man hier auch ganz gut .Tag verwenden darf, dann wäre Anzeige und Inhalt getrennt und es gäbe keine Probleme auf den Buttons was Anderes anzuzeigen
und man bräuchte nichtmal eine Funktion, da Tag direkt das Ergebnis liefert.
(z.B. die Ziffern/Zahlen in einer anderen Sprache oder z.B. als Wort "Eins")

Und wer diese Komponenten weiterhin als SpeedButton1 bis sonstwas benannt lässt, der hätte es verdient mit einem rosa Wattebausch gesteinigt zu werden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 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