Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ListView ListItem und ListColumns Problem (https://www.delphipraxis.net/50351-listview-listitem-und-listcolumns-problem.html)

Hansi 24. Jul 2005 10:20


ListView ListItem und ListColumns Problem
 
Hey,

Ich möchte gerne in ein ListView zwei Spaltenbeschriftungen haben (ArtNr und Bezeichnung) und dann mit einer Schleife die Daten aus der DB holen. Jeder Datensatz in eine Zeile. Über ShowMessage weiss ich dass die Daten richtig rausgeholt werden, nur werden Sie nicht richtig angezeigt.

Delphi-Quellcode:
procedure TArtikel.cxButton11Click(Sender: TObject);
var
  x  :Integer;
  AN :Integer;
  BZ :String;
  Zeile :TListItem;
  Spalte: TListColumn;
begin
  LV1.Clear;
  ADT_Artikel.First;
  for x:=0 to ADT_Artikel.RecordCount-1 do
  begin
    AN := ADT_Artikel.FieldValues['ArtNr'];
    BZ := ADT_Artikel.FieldValues['Bezeichnung'];
    ShowMessage(''+IntToStr(AN)+' und '+BZ+'');
    Zeile := LV1.Items.Add;
    Zeile.Caption := IntToStr(AN);

    ADT_Artikel.Next;
  end;

end;
Kann mir jemand sagen wie ich meinen Code ergänzen muss damit es funzt?

Sharky 24. Jul 2005 10:37

Re: ListView ListItem und ListColumns Problem
 
Hai Hansi,

schaue Dir mal diesen Code von mir an:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  spalte : TListColumn;
  zeile : TListItem;
  AN :Integer;
  BZ :String;
begin
  Lv1.Columns.Clear; // Spalten löschen
  // Spalte 0 erzeugen
  spalte := LV1.Columns.Add;
  spalte.Caption := 'Artikelnummer';
  spalte.Width := 100;
  // Spalte 1 erzeugen
  spalte := LV1.Columns.Add;
  spalte.Caption := 'Bezeichnung';
  spalte.AutoSize := True;
  spalte.Width := -2;

// Ab hier wird das LV gefüllt.
  ADT_Artikel.First; // Erster Datensatz
  while not (ADT_Artikel.Eof) do // Solange noch nicht am ende der Tabelle...
  begin
    AN := ADT_Artikel.FieldValues['ArtNr'];
    BZ := ADT_Artikel.FieldValues['Bezeichnung'];

    zeile := LV1.Items.Add; // Neue Zeile
    zeile.Caption := IntToStr(AN); // Spalte 0
    zeile.SubItems.Add(bz); // Spalte 1 (Alles ausser Spalte 0 sind SubItems)
    ADT_Artikel.Next; // Nächster Datensatz
  end;
end;
Die Spalten (Columns) kannst Du natürlich auch zur Entwurszeit anlege. Dann brauchst Du den oberen Teil nicht.

Hansi 24. Jul 2005 10:48

Re: ListView ListItem und ListColumns Problem
 
Hallo Stephan,

Vielen Dank für Deine Ergänzung.

Aber er zeigt bei mir keine Spaltenüberschriften an und zudem stehen die beiden ArtNr in einer Reihe(Zeile) (sind nur 2 datensätze in der DB!)

Warum? Wie kann ich das hinbekommen?


***völlig verwirrt sein***

Sharky 24. Jul 2005 11:41

Re: ListView ListItem und ListColumns Problem
 
Hai Hansi,

hast Du auch ViewStyle := vsReport für dein ListView eingestellt?

Hansi 24. Jul 2005 11:44

Re: ListView ListItem und ListColumns Problem
 
Gearde wollte ich es an meinen Beitrag anfügen...

Habe es gefunden! Im OI hatten ich nicht ViewStyle := vsReport eingestellt!


Danke!

***grrrrrrrrrrrrrrrrrrr***


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz