Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi ListView - Text auslesen (https://www.delphipraxis.net/193957-listview-text-auslesen.html)

Uwe Raabe 28. Sep 2017 15:03

AW: ListView - Text auslesen
 
Zitat:

Zitat von Glados (Beitrag 1382190)
Eines verstehe ich nur nicht. Ich habe noch nie eine ListView mit Nodes gesehen?!
Sicher, dass deine Komponente einen TListView ist?

Vermutlich die von FMX.

Gerri 28. Sep 2017 15:05

AW: ListView - Text auslesen
 
Hi Leute,

ist tatsächlich die Ansicht aus der IDE -> sollte aber ein listview sein !:)

Ich lese mich mal in das Subitem Thema ein und melde mich dann noch einmal :)


Gruß
Gerri

edit :jip ist von FMX @ Glados & Uwe

haentschman 28. Sep 2017 17:39

AW: ListView - Text auslesen
 
Hallöle...:P

Unabhängig von der verwendeten Komponente, ließt man die Werte nie aus dem visuellen Control sondern aus den Quelldataset. :thumb:

Glados 28. Sep 2017 18:21

AW: ListView - Text auslesen
 
Zitat:

Zitat von Gerri (Beitrag 1382185)
Ich Kündige vorher an : ich bin ein absoluter Neuling was Delphi (RAD-Studio 10.1) angeht und habe auch schon die Suchfunktion benutzt-> leider bin ich nicht fündig geworden.

Ich denke für einen Anfänger ist das Auslesen aus dem Control erst einmal alles was er braucht.

Gerri 28. Sep 2017 19:07

AW: ListView - Text auslesen
 
Guten Abend,

Vorab: ich komme erst morgen dazu mir das ganze nochmal anzuschauen.

Grundsätzlich sollte das auslesen aus dem Listview erst einmal reichen(ist ein Einarbeitungs Projekt).
Allerdings bin ich natürlich auch für "Best Practice" - Lösungen Offen.

Mein Problem Dabei ist das ich keine Ahnung habe wie ich von den Bereits eingetragenden Items (aus der DB) einen Rückschluss auf den PK des Datensatzes bekomme - wenn da jemand eine schöne Lösung kennt würde ich auch das in betracht ziehen :-D

Melde mich Morgen wieder, einen Schönen Abend euch !


P.S. Anfänger heißt bei mir 40 Stunden insgesamt damit auseinander gesetzt und davon 20 Stunden Dokumentation gelesen :lol:

Luckie 28. Sep 2017 19:21

AW: ListView - Text auslesen
 
Speichere die PK als Objekt in den Items der ersten Spalte.

Gerri 28. Sep 2017 19:35

AW: ListView - Text auslesen
 
Hi :)

Wäre über ein kleines Code Beispiel(oder kleine Anleitung für "Klick Klick hurra" Sehr Dankbar.

Mir fehlt Aktuell einfach der Durchlick, da die IDE durch das ganze "klick klick Hurra" einfach die sicht auf die
Dinge Extrem Trübt.

Luckie 28. Sep 2017 20:51

AW: ListView - Text auslesen
 
Zwar für eine Listbox, aber das Prinzip ist das gleiche.

http://michael-puff.de/Programmierun...ddObject.shtml

Aviator 29. Sep 2017 00:30

AW: ListView - Text auslesen
 
Zitat:

Zitat von Glados (Beitrag 1382192)
Wenn es um TreeViews jeglicher Art geht, dann ist der Profi hier im Forum Aviator. Sicherlich auch noch andere aber mir ist nur er bekannt.

Danke für das Lob. :thumb:

Allerdings beschränkt sich mein (doch ganz gutes) Wissen über TreeViews hauptsächlich auf den VirtualTreeView. Mit dem Standard TreeView arbeite ich eigentlich kaum bis gar nicht. Aber klar. Der normale TreeView arbeitet auch nur mit ParentNodes und ChildNodes. Als ebenso guten TreeView Kenner würde ich aber gerne noch jeanicke in den Raum werfen wenn wir schon dabei sind. :-D

Es wäre nur doch interessant zu wissen, ob es sich hier um ein TTreeView oder TListView handelt. Weil das sind zwei total unterschiedliche Komponenten. Es sei denn ich habe es überlesen.

haentschman 29. Sep 2017 07:41

AW: ListView - Text auslesen
 
Moin...:P
Zitat:

Ich denke für einen Anfänger ist das Auslesen aus dem Control erst einmal alles was er braucht.
Das denke ich nicht. Ich hätte manche Fehler damals nicht gemacht, wenn ich die DP schon gehabt hätte und mir jemand gezeigt hätte wie man es "richtig" (Da gibt es 1000 Varianten :P) macht. Klar muß man sich auf den Kenntnisstand einstellen, aber die visuellen Komponenten als Datenablage zu mißbrauchen rächt sich später. Was kostet es mehr es gleich richtig zu machen...8-) Erst recht als Einsteiger sollte man DRY und KISS schon gehört haben.

...zum Thema:
Beispiel mit Objekten:
Delphi-Quellcode:
// das Datenobjekt (ähnlich wie der Datensatz im Dataset)
  TCustomer = class
  strict private
    FName: string;
    FTown: string;
    FFirstName: string;
  public
    constructor Create;
    destructor Destroy; override;
    property Name: string read FName write FName;
    property FirstName: string read FFirstName write FFirstName;
    property Town: string read FTown write FTown;
  end;
...
// die Liste (ähnlich wie TDataSet)
  TCustomerList = TObjectList<TCustomer>; // generische Liste
...
//Implementierung
procedure TfoMain.ShowCustomerList(List: TCustomerList);
var
  Item: TListItem;
  Customer: TCustomer;
begin
  lvCustomers.Items.Clear;
  for Customer in List do
  begin
    Item:= lvCustomers.Items.Add;
    Item.Data:= Customer; // Das komplette Objekt (Pointer) hängt an dem Eintrag
    Item.SubItems.Add(Customer.Name);
    Item.SubItems.Add(Customer.FirstName);
    Item.SubItems.Add(Customer.Town);
    Item.ImageIndex:= 99; // der Index des Images aus der Imagelist der Listview
  end;
  lvCustomers.Items.Item[0].Selected := True; // ersten Eintrag markieren...oder so
end;
Werte auslesen:
Delphi-Quellcode:
var
  Customer: TCustomer;
  Town: string
...
Customer := TCustomer(lvCustomer.Data); // über die Zwischenvariable ist der Quelltext dann besser lesbar :-)
Town := Customer.Town; // nicht aus dem ListView lesen sondern aus der Liste über den Pointer (automatisch)
Beispiel mit Dataset:
Delphi-Quellcode:
// das TDataSet
* auf dem Datenmodul als Komponente  
...
//Implementierung
procedure TfoMain.ShowCustomerList(DataSet: TDataSet);
var
  I: Integer;
  Item: TListItem;
begin
  lvCustomers.Items.Clear;
  DataSet.First;
  while not DataSet.Eof do
  begin
    Item:= lvCustomers.Items.Add;
    Item.Data:= TObjekt(Dataset.FieldByName('ID').AsInteger); // Der PK (PrimaryKey) hängt an dem Eintrag
    Item.SubItems.Add(Dataset.FieldByName('NAME').AsString);
    Item.SubItems.Add(Dataset.FieldByName('FIRSTNAME').AsString);
    Item.SubItems.Add(Dataset.FieldByName('TOWN').AsString);
    Item.ImageIndex:= 99; // der Index des Images aus der Imagelist der Listview
    DataSet.Next;
  end;
  lvCustomers.Items.Item[0].Selected := True; // ersten Eintrag markieren...oder so
end;
Werte auslesen:
Delphi-Quellcode:
var
  Town: string
...
DataSet.Locate('ID', Integer(lvCustomer.Data),[]); // positionieren des DataSets auf den Datensatz mit dem richtigem PK
Town := DataSet.FieldByName('TOWN').AsSting; // nicht aus dem ListView lesen sondern aus dem DataSet


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:54 Uhr.
Seite 2 von 4     12 34      

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