Mir ist gerade eingefallen, das auch in Pascal viele Wege zum Ziel führen (wenn das N.W. wüsste)
Vielleicht ist eine andere Variante besser verständlich für den TS:
Delphi-Quellcode:
procedure TFormTR.SpZahlClick(Sender: TObject);
VAR Nr : INTEGER;
begin
if (LabelAnzeige.caption='0') or (LabelAnzeige.caption='Error') then
LabelAnzeige.caption:='';
// dann so
if sender = SpDecimalSep then
LabelAnzeige.caption:=LabelAnzeige.caption+','
else
FOR Nr := 0 TO 9 DO
if Sender = SpArray[Nr] then
LabelAnzeige.caption:=LabelAnzeige.caption+IntToStr(Nr);
// oder so, wenn die Buttons entspr. benannt sind (aber das ist nicht fein, sieht nur fein aus)
LabelAnzeige.caption := LabelAnzeige.caption + (Sender as TSpeedButton).caption;
// oder so, wenn die Tags passend initialisiert sind
Nr := (Sender as TComponent).Tag;
case Nr of
0..9 : LabelAnzeige.caption:=LabelAnzeige.caption+IntToStr(Nr);
10 : LabelAnzeige.caption:=LabelAnzeige.caption+DecimalSeperator;
end;
end;
(Ja, mir war ein Moment lang langweilig und wahrscheinlich hab' ich auch noch einen doofen Fehler eingebaut)