Hallo RX3,
wenn Button1 bei dir eine neue Zeile an das StringGrid anfügen soll, dann solltest du ihn vielleicht AppendButton nennen. Auch Form1 ist kein besonders sprechender Name, MainForm oder GridForm würden mir besser gefallen. Das soll dich auf die Tugend der Programmdokumentation durch geeignete Namensgebung hinweisen - mehr nicht.
Lass uns ein paar vorsichtige Änderungen an deinem Code vornehmen. Es ist sicher nicht nötig bei jedem Hinzufügen einer neuen Zeile die Spaltenüberschriften neu einzutragen. Vielleicht solltest du einen InitButton spendieren um das Grid einzustellen:
Delphi-Quellcode:
procedure TForm1.InitButtonClick(Sender: TObject);
var
iCol: Integer;
begin
// Spaltenüberschriften eintragen
with StringGrid1 do
begin
Tag := 0;
RowCount := 2;
ColCount := StrToInt(EditPlaneten.Text) + 1;
for iCol := 0 to ColCount - 1 do
if iCol = 0
then Cells[iCol, 0] := 'Name'
else Cells[iCol, 0] := 'Planet '+ IntToStr(iCol);
end;
end;
procedure TForm1.AppendButtonClick(Sender: TObject);
var
iCol, iRow: Integer;
begin
with StringGrid1 do
begin
Tag := Tag + 1; // Anzahl der Datenzeilen
if Tag > 1 then
RowCount := RowCount + 1;
iRow := RowCount - 1;
Cells[0, iRow] := EditName.Text + ' | ' + EditAlly.Text;
for iCol := 1 to ColCount - 1 do
Cells[iCol, iRow] := Edit5.Text;
end;
end;
Ich habe den Code nicht getestet und hoffentlich nicht zuviele Fehler eingebaut, aber du solltest erkennen, wie das Hinzufügen einer einzelnen Zeile funktioniert.
Grüße vom marabu