Revisando el código que has puesto veo que estás asignando valores diferentes a dos instancias del mismo proceso
TForm1.SpinAndEditChange, cosa que no se puede.
Te sugiero hacer lo siguiente, de acuerdo a lo que tú señalas:
- Colocar en tu Form 2 SpinEdit, en la misma posición y asignar los dos códigos diferentes, el que suma y el que resta, a cada uno de los SpinEdit.
- Colocar en tu Form 1 RadioGroup con 2 Items y asignarle el siguiente código:
Código Delphi
[-]procedure TForm1.FormCreate(Sender: TObject);
begin
RadioGroup1.ItemIndex:= 0;
end;
Código Delphi
[-]procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
if RadioGroup1.ItemIndex=0 then
begin
SpinEdit1.BringtoFront
end
else
begin
SpinEdit2.BringtoFront;
end;
end;
Además para optimizar tu código te sugiero cambiar esto:
Código Delphi
[-]opcion:= StrToInt(SpinEdit1.Text);
por esto y te evitas una conversión:
Código Delphi
[-]opcion:= SpinEdit1.Value;
Espero haber entendido lo que quieres hacer y ojalá te sirva
Salu2