Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Datensätze bei Listview-ItemSelcet abrufen

  Alt 8. Feb 2005, 12:57
Hai Plague,

da ein TListView keine Datenbanksensitive-Komponente ist musst Du das alles von Hand machen. Ich mache es immer so:
Ich speichere mit über die Eigenschaft .Data eines Items den Primärschlüssel eines Datensatzes (ID-Feld). Bei einem klick auf die Zeile des ListViews führe ich ein neues SELECT aus und filtere auf die Ausgewähle ID.

Hier mal ein Beispiel wie ich es in einem Projekt gemacht habe:
Delphi-Quellcode:
procedure TFRM_Main.ShowAnreden; // Alle Anreden in einem ListView anzeigen
var
  LI: TListItem;
  LC: TListColumn;
begin
  with DataModule1.ZReadOnlyQuery1 do
  begin
    close;
    SQL.Text := 'SELECT * FROM anreden ORDER BY anrede';
    open;
    ListView1.Items.BeginUpdate;
    Listview1.Items.Clear;
    Listview1.Columns.Clear;
    LC := ListView1.Columns.Add;
    LC.Caption := 'Anrede';
    LC.Width := 150;
    LC := ListView1.Columns.Add;
    LC.Caption := 'Briefanrede';
    LC.Width := 250;
    while not (EOF) do
    begin
      LI := Listview1.Items.Add;
      LI.ImageIndex := 0;
      LI.Data := Pointer(FieldByName('id').AsInteger); // ID speichern!
      LI.Caption := FieldByName('anrede').AsString;
      LI.SubItems.Add(FieldByName('briefanrede').AsString);
      Next;
    end;
    ListView1.Items.EndUpdate;
    close;
  end;
end;
An die ID des markierten Items kommst Du dann so:
 ID := Integer(ListView1.Items[ListView1.ItemIndex].Data)
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat