Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Inhalt in die 3. Spalte einer ListView schreiben (https://www.delphipraxis.net/192046-inhalt-die-3-spalte-einer-listview-schreiben.html)

zobien123 16. Mär 2017 13:43

Inhalt in die 3. Spalte einer ListView schreiben
 
Hallo Zusammen,

ich möchte etwas in die 3. Spalte meiner ListView schreiben. Ich habe hier im Forum schon einiges gefunden, aber nur wie man die ListView komplett füllt (1. Spalte, 2. Spalte und dann die 3). Spalte. Aber ich möchte nur die 3. Füllen, da in der 1. und 2. bereits etwas steht.

Bin total verzweifelt.:cry:

Daniel 16. Mär 2017 13:52

AW: Inhalt in die 3. Spalte einer ListView schreiben
 
Moin,

jede Zeile Deines ListViews (Darstellungsart "Report") besteht aus jeweils einem TListItem.
Dieser hat die Eigenschaft "SubItems", welche die Inhalte der Spalten 2-x definieren.
Die dritte Spalte setzt Du durch Item.SubItems[1].

zobien123 16. Mär 2017 14:06

AW: Inhalt in die 3. Spalte einer ListView schreiben
 
Danke für deine Antwort.

Mit
Code:
SubItems[3].Add(Y);
funktioniert es nicht... Fehlermeldung : 'string' enthält kein Element namens 'Add'

Was mach ich nur falsch?:?

Towmuz 16. Mär 2017 14:10

AW: Inhalt in die 3. Spalte einer ListView schreiben
 
Hoi,

Delphi-Quellcode:
SubItems[3] := 'Text';

Daniel 16. Mär 2017 14:12

AW: Inhalt in die 3. Spalte einer ListView schreiben
 
Unter der Voraussetzung, dass dieser Eintrag bereits Inhalte für die dritte Spalte hat, einfach
Delphi-Quellcode:
Item.SubItems[1] := 'Moep'
.
Item.Caption ist die erste Spalte, Item.SubItems[0] = '2. Spalte', Item.SubItems[1] = '3. Spalte'

zobien123 17. Mär 2017 07:13

AW: Inhalt in die 3. Spalte einer ListView schreiben
 
Hm also irgendwie klappt das immer noch nicht - ich glaube ich bin einfach zu doof:evil:

Ich denke es hilft, wenn ich mein Fall etwas genauer erkläre:

Also ich habe eine ListView, in die lese ich Dateien ein. Die letzte Spalte heißt "Geladen" in diese wird ein 'X' geschrieben, wenn die Datei gerade in verwendung bzw geöffnet ist. Diese abfrage wird mit einem Timer alle 2sec aufgerufen und abgefragt. Nun möchte ich, dass nach der Abfrage halt ein 'X' oder ein ' ' in die letzte Spalte Geladen geschrieben wird (wenn der Fall zutrifft).

Ich hoffe ich konnte es gut erklären:?

Schonmal vielen Dank an jeden der sich damit jetzt beschäftigt :thumb:

Ydobon 17. Mär 2017 07:36

AW: Inhalt in die 3. Spalte einer ListView schreiben
 
Existiert denn alle Zeilen und Spalten bereits? Und was besagt die Fehlermeldung?

Wenn schon alles da ist, ist der Zugriff normalerweise einfach:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var Item: TlistItem;
begin
  Item:=ListView1.Items[0]; //Item -> Zugriff gesamte erste Zeile
  Item.Caption:='setzt Text erste Spalte';
  Item.SubItems[0]:='setzt Text zweite Spalte';
  Item.SubItems[1]:='+';   //setzt Text dritte Spalte
end;

Towmuz 17. Mär 2017 07:38

AW: Inhalt in die 3. Spalte einer ListView schreiben
 
Moin,

du musst schon sagen wo "genau" du nicht weiter kommst.

Vorausgesetzt du addest SubItem 1 (Spalte 3) schon beim Befüllen des ListView, dann sollte sowas hier eigentlich funktionieren glaub ich :)

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  item: TListItem;
  i: Integer;
begin
  for i := 0 to Length(Datei) - 1 do
  begin
    for item in ListView1.Items do
    begin
      if item.Caption = Datei[i].Name then
      begin
        if Datei[i].IstGeoeffnet then
          item.SubItems[1] := 'x'
        else
          item.SubItems[1] := '';
      end;
    end;
  end;
end;

zobien123 17. Mär 2017 07:57

AW: Inhalt in die 3. Spalte einer ListView schreiben
 
Moin Zusammen,

hab es jetzt hinbekommen. Vielen Dank für eure Hilfe :thumb:

Code:
for i := 0 to ListView.Items.Count -1 do begin
  li := ListView.Items[i];
  if (li.Caption = SearchRec.Name) then li.SubItems.Strings[4] := Y;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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