Einzelnen Beitrag anzeigen

Martin W

Registriert seit: 29. Mai 2004
Ort: Augsburg
220 Beiträge
 
Delphi XE3 Enterprise
 
#1

Daten von Datenbank in eine Tabelle füllen

  Alt 20. Feb 2005, 15:00
Datenbank: mysql • Version: neuste • Zugriff über: direkt
Also folgendes... ich hab das Tutorial von Luckie mal durchgemacht und mir die Beispielanwendung, das Adressbuch, mal "vorgenommen". Siehe hier (tutoriallink)


Hab auf das Formular noch ne TListView draufgesetzt. Diese soll genau so gefüllt werden wie das TStringGrid welches schon drauf war. Also hab ich diese prozedur (FillGrid) leicht modifiziert:

Delphi-Quellcode:
procedure tform1.FillGrid(SG: TStringGrid; Cols: TCols; Rows: TRows);
var
  i, j : Integer;
  NewItem: TlistItem;
  clmen: TListColumn;
  k : integer;
begin
  ListView1.Clear;
  SG.ColCount := 0;
  SG.RowCount := 0;
  if Assigned(Rows) then
  begin
    SG.RowCount := length(Rows[0]) + 1;
    SG.ColCount := length(Cols);
    SG.FixedRows := 0;
    for i := 0 to length(Cols) - 1 do
    begin
      SG.Cols[i].Add(Cols[i]);
      SG.Cells[i, 0] := Cols[i];
    end;
    for i := 0 to length(Cols) - 1 do
    begin
      for j := 0 to length(Rows[0]) - 1 do
      begin
        SG.Cells[i, j + 1] := Rows[i, j];
      end;
    end;
  end;
  if Assigned(Rows) then
    begin
    for i := 0 to length(Cols) - 1 do
    begin
      clmen := ListView1.Columns.Add;
      clmen.Caption := Cols[i];
    end;
    for k := 0 to length(rows[0]) + 1 do
      begin
          NewItem := ListView1.Items.Add;
          NewItem.Caption := '';
          for i := 0 to length(rows) + 1 do
            NewItem.SubItems.Add('');
          end;
      end;
    for i := -1 to length(Cols) - 1 do
    begin
      for j := 0 to length(Rows[0]) - 1 do
      begin
        ListView1.Items[j].SubItems[i] := Rows[i, j];
      end;
    end;
end;
Aber irgendwie funktioniert das nicht richtig... Momentan kommt dann immer ne Fehlermeldung "Zugriffsverletzung..."


Gruß
Martin W
  Mit Zitat antworten Zitat