![]() |
Zwei Labels nacheinander mit Ziffernbuttons füllen
Liste der Anhänge anzeigen (Anzahl: 1)
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 |
AW: Zwei Labels nacheinander mit Ziffernbuttons füllen
Alle Buttons bekommen die gleiche Routine zugewiesen. Dann prüfst du die Länge vom Label1 und Label2. Damit solltest du alles haben.
|
AW: Zwei Labels nacheinander mit Ziffernbuttons füllen
Zitat:
|
AW: Zwei Labels nacheinander mit Ziffernbuttons füllen
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; |
AW: Zwei Labels nacheinander mit Ziffernbuttons füllen
Zitat:
|
AW: Zwei Labels nacheinander mit Ziffernbuttons füllen
Zitat:
Ist das vielleicht eine Hausaufgabe in der Corona Zeit, die Online vorm Lehrer kommt?) |
AW: Zwei Labels nacheinander mit Ziffernbuttons füllen
Moin...:P
Zitat:
Wie schon gesagt: Für dich sind Events (ButtonClick) interessant. Im Eventhandler weißt du die Werte den Labels zu...fertsch. :wink: |
AW: Zwei Labels nacheinander mit Ziffernbuttons füllen
Hallo,
GetNumber hätte ich über Nutzung des Properties Tag ersetzt. |
AW: Zwei Labels nacheinander mit Ziffernbuttons füllen
Bei dem Beispiel von Alallart kannst du, wenn du normale Buttons benutzt auch einfach anstatt
Delphi-Quellcode:
folgendes nutzen (deine Buttons sind ja entsprechend "konfiguriert"):
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;
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; |
AW: Zwei Labels nacheinander mit Ziffernbuttons füllen
@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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr. |
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