Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#4

AW: TSpeedButton Sender Übergabe Problem

  Alt 21. Apr 2017, 01:24
Oh ja, da ist ein Fehler drin.

Der ASCII-Wert von 0 ist ja nicht 0 sondern 48, da muss nochmal gerechnet werden.
War wohl ein von mir etwas unüberlegter Schnellschuss

Nächster Versuch:
Delphi-Quellcode:
procedure TForm1.TsbClick(Sender: TObject);
begin
  if Sender is TSpeedButton then begin
    // Wir nutzen für die Ziffer das Tag-Attribut der Buttons.
    // Button für die 1 erhält Tag := 1;
    // ...
    // Button für die 9 erhält Tag := 9;
    // Button für die 0 erhält Tag := 0;
    // Tag kann man im Objektinspektor entsprechend zuweisen.
    // Die ASCII-Werte von 0 bis 9 sind 48 bis 57.
    // Chr(48) wäre also '0'
    // Chr(57) wäre '9'
    // Man könnte dem Button für die 0 als Tag auch 48 zuweisen,
    // dem Button für die 1 als Tag 49
    // ...
    // bis zum Button für die 9 als Tag 57
    zeichen := Chr(TSpeedButton(Sender).Tag + 48);
  end;
  if math_op then begin
    math_op := false;
    zeichenkette := zeichen;
  end
  else zeichenkette := zeichenkette + zeichen;
  label1.Caption := zeichenkette;
end;
Hoffentlich ist das jetzt besser.
  Mit Zitat antworten Zitat