ich habe ein Problem bei meinem Programm. Ich möchte ein Programm erstellen, welches durch mehrere SpinEdit-Komponente die Ausgabe in ein und derselben Label-Komponente anzeigt. Dabei soll es den String aus dem Label vor dem SpinEdit-Klick speichern und nach dem SpinEdit-Klick anzeigen zusammen mit den neuen Wert. Dabei hat sich das Problem aufgestellt, dass an Stelle von z.B. "H5" nach 5-maligen drücken vonSpinEdit1 "H5H4H3H2H" steht oder "H2HHe3He2He" bei 2-maligen drücken von SpinEdit1 und 3-maligen drücken von SpinEdit2. Gibt es einen Weg dieses Problem zu beheben?
procedure TForm2.SpinEdit1Change(Sender: TObject);
var Merke: string;
begin
if SpinEdit1.value> 1
then Label1.caption:='H'+IntToStr(SpinEdit1.Value)+Merke
else
if SpinEdit1.value=1
then begin Label1.caption:='H'+IntToStr(SpinEdit1.Value)+Merke;
Label1.caption:=StringReplace(Label1.caption,'H1','H',[rfReplaceAll, rfIgnoreCase]) ;
end;
if SpinEdit1.value<=0
then
begin
Label1.caption:='H'+IntToStr(SpinEdit1.Value)+Merke;
Label1.caption:=Stringreplace(Label1.caption,'H','', [rfReplaceAll, rfIgnoreCase]);
end;
Merke:=Label1.caption;
end;
procedure TForm2.SpinEdit2Change(Sender: TObject);
var Merke: string;
begin
if SpinEdit2.value> 1
then Label1.caption:='He'+IntToStr(SpinEdit2.Value)+Merke
else
if SpinEdit2.value=1
then begin Label1.caption:='He'+IntToStr(SpinEdit2.Value)+Merke;
Label1.caption:=StringReplace(Label1.caption,'He1','He',[rfReplaceAll, rfIgnoreCase]) ;
end;
if SpinEdit2.value<=0
then
begin
Label1.caption:='He'+IntToStr(SpinEdit2.Value)+Merke;
Label1.caption:=Stringreplace(Label1.caption,'He','', [rfReplaceAll, rfIgnoreCase]);
end;
Merke:=Label1.caption;
end;
end.
Das Problem ist, dass ich nach den anklicken des SpinEdit-Feldes an Stelle von z.B. "H5H4H3H2H" nur "H5" aka den höchsten Wert stehen haben möchte und gleichzeitig auch, dass andere SpinEdit-Felder mit eingebaut werden können. Zum Beispiel dass ich 2x SpinEdit1 und 3x SpinEdit2 anklicke und das dann im Label steht "H2He3" oder bei 1x anklicken von SpinEdit1 und 5x anklicken SpinEdit2 dann im Label steht "HHe5"