Hola.
En cuanto a realizar la suma y alinearla a la derecha me refería a algo así:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
a, b, i, j : Integer;
gr : TStringGrid;
le1, le2, le3 : TLabeledEdit;
begin
gr := StringGrid1;
le1 := LabeledEdit1;
le2 := LabeledEdit2;
le3 := LabeledEdit3;
if not TryStrToInt( le1.Text, a ) then
raise Exception.Create('El primer número es inválido');
if not TryStrToInt( le2.Text, b ) then
raise Exception.Create('El segundo número es inválido');
le3.Text := IntToStr( a + b );
gr.Colcount := Length( le3.Text );
for i := 0 to gr.ColCount - 1 do gr.ColWidths[i] := 30;
for i := 1 to Length(le1.Text) do
gr.Cells[gr.ColCount-i, 0] := le1.Text[ Length( le1.Text )-i+1 ];
for i := 1 to Length(LabeledEdit2.Text) do
gr.Cells[gr.ColCount-i, 1] := le2.Text[ Length( le2.Text )-i+1 ];
for i := 1 to Length(le3.Text) do
gr.Cells[gr.ColCount-i, 2] := le3.Text[ Length( le3.Text )-i+1 ]; end;
Resultado:
El proceder es similar usando tres StringGrids (uno para cada sumando y otro para el resultado), sólo debes definir cada StringGrid con una fila y las columnas correspondientes a los respectivos dígitos .
Sin embargo, no entiendo que papel debería jugar el "StringGrid2" que mencionas en tu último mensaje.
Saludos