Die beiden Aktionen "Tabelle dimensionieren" und "Leistung berechnen" sind unabhängig voneinander, also solltest du sie auch nicht miteinander vermischen. Nimm einen eigenen Button für die Dimensionierung oder was immer sonst dir für deine Benutzeroberfläche gefällt. Ich habe deinen Code ein wenig umgestellt. Das Nummerieren der Zeilen geschieht jetzt in einer eigenen Prozedur:
Delphi-Quellcode:
const
MAXVALUES = 20;
procedure TCalcForm.RenumberGridLines;
var
i: integer;
begin
with Grid do
for i := FixedRows to RowCount - 1 do
Cells[0, i] := IntToStr(Succ(i - FixedRows)) + '.';
end;
procedure TCalcForm.ResizeButtonClick(Sender: TObject);
var
s: string;
i: integer;
begin
s := IntToStr(Grid.RowCount - 1);
if not InputQuery('Tabelle dimensionieren', 'Zeilen', s) then
Exit;
if not TryStrToInt(s, i) then
ShowMessage(Format('"%s" ist nicht numerisch', [s]))
else if not (i in [1..MAXVALUES]) then
ShowMessage(Format('"%d" ist keine gültige Zeilenzahl', [i]))
else begin
Grid.RowCount := Succ(i);
RenumberGridLines;
end;
end;
marabu