Delphi-PRAXiS
Seite 3 von 4     123 4      

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)

Towmuz 29. Sep 2017 10:46

AW: ListView - Text auslesen
 
Da es sich scheinbar um eine FMX Anwendung handelt und das Listview dort nicht gleich zu behandeln ist wie das in VCL, würde ich mal hier lesen und probieren http://www.delphipraxis.net/183937-t...ect-daten.html

Gerri 29. Sep 2017 11:17

AW: ListView - Text auslesen
 
Erstmal ein Großes Danke an alle Antwortenden ! :D

Ich werde jetzt versuchen das ganze zeug zu verstehen und umzusetzen und wenn probleme auftreten melde ich mich :)


Gruß
Gerri:-D

Gerri 29. Sep 2017 14:12

AW: ListView - Text auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nach langem hin und her eine kurze Zusammenfassung:

Ich habe mich nun über die "Objekt in Listview.Item" Idee informiert und bin zu dem entschluss gekommen das ich erst einmal nicht damit arbeiten möchte.[Würde nämlich heißen das ich alles bisher geschriebene umschreiben müsste - beim nächsten projekt wird das dann von vorne rein anders gehandhabt ]


Also zurück zu der Subitem-asulesen Idee:

Ich habe nun Versucht(wie hierbeschrieben http://www.delphipraxis.net/113201-l...-subitems.html) via

ListView1.Items[1].Subitem[3];


#1 Allerdings bekomme ich da nur die meldung das "items" kein Subitem enthält und kann mich somit nicht weiter durch die methoden hangeln um den entsprechenden string zu erhalten.


komme mir wenn ich danach google vor wie der ochse vorm Wald -> Es scheint für alle selbstverstädnlich zu sein -> für mich ist es allerdings ein misterium.


Und um die Frage ob es ein Listview ist oder nicht zu klären -> Ja es ist definitiv einer (Siehe Anhang)


Ich hoffe ihr könnt mir weiterhalfen

Gruß
Gerri

Aviator 29. Sep 2017 14:42

AW: ListView - Text auslesen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Gerri,

ich habe dir mal schnell ein kleines Beispiel zusammengeklickt mit dem du etwas rumspielen kannst. Vielleicht bringt es dich ja weiter.

Deine Zeile
Delphi-Quellcode:
ListView1.Items[1].Subitem[3];
sieht soweit OK aus. Allerdings heißt das nicht, dass du nicht evtl. vergessen hast, überhaupt (Sub)Items hinzuzufügen.



Kurze Erklärung zum Programm:

Beim Start der Anwendung wird im OnShow Event der Form der Header der TListView Komponente erzeugt. Danach werden ein paar Items hinzugefügt. Das ist ein Random Wert zwischen 1 und 100.

In der SpinEdit Komponente kannst du auswählen, welcher Text in dem Label unter dem ListView angezeigt werden soll.

Code:
0 = Text vom Hauptitem
1 = Text vom Subitem 1
2 = Text vom Subitem 2
3 = Text vom Subitem 3
Im Anhang ist ein kompiliertes Beispiel enthalten. Da du im Eröffnungspost angegeben hast, dass du Delphi Berlin verwendest, sollte es aber kein Problem für dich sein, die Anwendung erneut (mit Änderungen) zu kompilieren.


Anbei mal noch der SourceCode und ein Bild der Anwendung, damit andere da direkt Einblick haben ohne sich das ganze Projekt laden zu müssen.


Viel Spaß damit. Wenn du Fragen dazu hast ... :wink:

Delphi-Quellcode:
unit Main;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.StdCtrls, Vcl.Samples.Spin, System.UITypes;

type
  TfrmListViewSample = class(TForm)
    lv1: TListView;
    Label1: TLabel;
    btnGetItemText: TButton;
    seColumnSelector: TSpinEdit;
    lblItemCaption: TLabel;
    procedure FormShow(Sender: TObject);
    procedure btnGetItemTextClick(Sender: TObject);
  private
    procedure CreateHeader;
    procedure CreateItems;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  frmListViewSample: TfrmListViewSample;

implementation

{$R *.dfm}

procedure TfrmListViewSample.FormShow(Sender: TObject);
begin
  CreateHeader;
  CreateItems;
end;

procedure TfrmListViewSample.btnGetItemTextClick(Sender: TObject);
begin
  if Assigned(lv1.Selected) then
  begin
    if (seColumnSelector.Value = 0) then
      lblItemCaption.Caption := lv1.Selected.Caption
    else
      lblItemCaption.Caption := lv1.Selected.SubItems[seColumnSelector.Value - 1];
  end
  else
  begin
    MessageDlg('Es wurde kein Item ausgewählt.', mtWarning, [mbOK], 0);
  end;
end;

procedure TfrmListViewSample.CreateHeader;
var
  i: Integer;
  Column: TListColumn;
begin
  for i := 0 to 3 do
  begin
    Column := lv1.Columns.Add;
    Column.Caption := Format('Column %d', [i]);
    Column.Width := 75;
  end;
end;

procedure TfrmListViewSample.CreateItems;
var
  Item: TListItem;
  i: Integer;
begin
  for i := 0 to Random(100) + 1 do // Damit wenigstens immer 1 Item hinzugefügt wird
  begin
    Item := lv1.Items.Add;
    Item.Caption := Format('Main Item %d', [i]);
    Item.SubItems.Add(Format('Subitem %d.1', [i]));
    Item.SubItems.Add(Format('Subitem %d.2', [i]));
    Item.SubItems.Add(Format('Subitem %d.3', [i]));
  end;
end;
end.

Gerri 2. Okt 2017 10:28

AW: ListView - Text auslesen
 
Hi Leute,

soo... habe nun ganz einfach mal versucht ein Item mit den
besagten Code dem ListView hinzuzufügen, bereits an der Stelle

1. wo ich ein Item erstellt habe

und

2. diesem item eine caption zuweisen möchste:


Code:
.
.
.
var
    Item: ListItem;
begin
                Item := ListView_DB.Items.Add;
                item.caption:= Format('Main Item &d' , [1]);
end
.
.
.

Doch bereits hier schreit die IDE das es für "Item" keine "Caption" gibt.
Habe ich vergessen etwas zu importieren oder was tue ich falsch Oo.

:oops:


Gruß
Gerri

Aviator 2. Okt 2017 10:33

AW: ListView - Text auslesen
 
Item muss als
Delphi-Quellcode:
TListItem
deklariert werden.

Das T beachten. Hast du dir mein Beispielprojekt angeschaut?

Gerri 2. Okt 2017 10:37

AW: ListView - Text auslesen
 
Zitat:

Zitat von Aviator (Beitrag 1382457)
Item muss als
Delphi-Quellcode:
TListItem
deklariert werden.

Das T beachten. Hast du dir mein Beispielprojekt angeschaut?


Ist es bei mir natürlich auch ein "TListItem" - trotzdem das selbe Problem :lol: - das ganze kommt aus deinem beispiel, ich probiere gerade ein wenig herum :)

Aviator 2. Okt 2017 10:41

AW: ListView - Text auslesen
 
Zitat:

Zitat von Gerri (Beitrag 1382458)
Zitat:

Zitat von Aviator (Beitrag 1382457)
Item muss als
Delphi-Quellcode:
TListItem
deklariert werden.

Das T beachten. Hast du dir mein Beispielprojekt angeschaut?


Ist es bei mir natürlich auch ein "TListItem" - trotzdem das selbe Problem :lol: - das ganze kommt aus deinem beispiel, ich probiere gerade ein wenig herum :)

Am besten postest du mal ein bisschen mehr vom SourceCode. Weil wenn es wirklich ein TListItem bei dir ist, dann sollte das eigentlich funktionieren. :roll:

Towmuz 2. Okt 2017 10:45

AW: ListView - Text auslesen
 
Wie oben schon erwähnt, aus deinem Anfangspost und dem darin beigefügten Screenshot ergibt sich, dass du eine Geräteübergreifende Anwendung (FMX) erstellt hast.
Das VCL Listview hat keine Header und Footer in der Standard Komponente.

Anbei das Itemhinzufügen in FMX

Delphi-Quellcode:
var
  item: TListViewItem;
begin
  item := ListView1.Items.Add;
  item.Text := 'asdasd';
end;
Kann natürlich auch sein, das ich irgendwas nicht mitbekommen habe, dann bitte ignorieren. :)

Aviator 2. Okt 2017 10:48

AW: ListView - Text auslesen
 
Zitat:

Zitat von Towmuz (Beitrag 1382460)
Wie oben schon erwähnt, aus deinem Anfangspost und dem darin beigefügten Screenshot ergibt sich, dass du eine Geräteübergreifende Anwendung (FMX) erstellt hast.
Das VCL Listview hat keine Header und Footer in der Standard Komponente.

Also in Post 12 hat er das ja versucht klar zu stellen. Das setzt natürlich voraus, dass er den Unterschied zwischen VCL und FMX kennt. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:01 Uhr.
Seite 3 von 4     123 4      

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