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 Datenbankfelder in Listview einlesen ? (https://www.delphipraxis.net/83030-datenbankfelder-listview-einlesen.html)

needatip 25. Dez 2006 12:56


Datenbankfelder in Listview einlesen ?
 
Kann man in die Listview-Komponente die Datenbankfelder auch mit einer Zeile einlesen wie z. B. mit einer Listbox?
z. B. bei Listbox etwa so:
Delphi-Quellcode:
Table1.GetFieldNames(ListBox1.Items)

marabu 25. Dez 2006 15:14

Re: Datenbankfelder in Listview einlesen ?
 
Hallo,

es gibt keine vergleichbar einfache Lösung für die ListView, aber was hättest du gewonnen? Du verwendest die ListView bestimmt an Stelle einer ListBox um mehrere Informationen zu einem Feld in Spalten anzuzeigen. Da fände ich es viel bequemer, wenn die ListView virtuell betrieben würde und sich bei Bedarf die Daten für jedes Item direkt aus der Feldliste der Dataset-Komponente holen würde.

Frohe Weihnachten

needatip 25. Dez 2006 16:59

Re: Datenbankfelder in Listview einlesen ?
 
ok, meinst du etwa so...

Delphi-Quellcode:
With ListView1 do
  for i:= 0 to Table1.FieldCount -1 do
  begin
    ListItem:= Items.Add;
    ListItem.Caption := Table1.Fields[i].FieldName;
  end;

marabu 25. Dez 2006 19:02

Re: Datenbankfelder in Listview einlesen ?
 
Nein, eher so:

Delphi-Quellcode:
procedure TDataForm.TableAfterOpen(DataSet: TDataSet);
begin
  ListView.Items.Count := DataSet.FieldCount;
end;

procedure TDataForm.TableBeforeClose(DataSet: TDataSet);
begin
  ListView.Items.Count := 0;
end;

procedure TDataForm.ListViewData(Sender: TObject; Item: TListItem);
begin
  with Item do
  begin
    Caption := Table.Fields[Index].FieldName;
    // ...
  end;
end;
Dabei muss ListView.OwnerData auf True gesetzt sein.

Freundliche Grüße

needatip 27. Dez 2006 13:36

Re: Datenbankfelder in Listview einlesen ?
 
:thumb: Ok, ist die elegantere Lösung.
Danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:24 Uhr.

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