Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: StringGrid reihenweise füllen ?

  Alt 3. Apr 2006, 22:49
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
  Mit Zitat antworten Zitat