Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Listview (gleiche Zeile- unterschiedliche Spalte) (https://www.delphipraxis.net/95929-listview-gleiche-zeile-unterschiedliche-spalte.html)

hoika 17. Jul 2007 15:12

Re: Listview (gleiche Zeile- unterschiedliche Spalte)
 
Hallo,

wie schon gesagt, deine Logik hat nen Knicks ;)
Wenn im ListView weniger Einträge stehen also in der Listbox,
musst du halt vorher noch ein paar ListItems eintragen.
Delphi-Quellcode:
iDiff:= ListBox.Items.Count-ListView.Items.Count; // oder so ähnlich
for i:= 1 to iDiff do
begin
  ListItem:= ListView.Items.Add;
end;
Danach kannst du die Routine so verwenden.

Heiko

Testy 17. Jul 2007 15:39

Re: Listview (gleiche Zeile- unterschiedliche Spalte)
 
Danke!!!! Nun geht es so wie ich möchte!
Wie kann ich denn jetzt den Inhalt prüfen. Ich hatte mir das so vorgestellt: Es wird in Spalte 1 Zeile für Zeile nachgeschaut. Wenn ein bestimmter Inhalt (bestimmte Zahl) gefunden ist dann soll er mit dem Inhalt in der zweiten Spalte (aber der gleichen Zeile) etwas machen!

Gruß!

SirThornberry 17. Jul 2007 15:40

Re: Listview (gleiche Zeile- unterschiedliche Spalte)
 
wie sieht denn dein jetziger Ansatz dafür aus und woran scheiterst du genau?

Testy 17. Jul 2007 15:45

Re: Listview (gleiche Zeile- unterschiedliche Spalte)
 
Einen Ansatz habe ich noch nicht. Da ich voher noch ein Problem habe!
Habe ein dynamisches Array und will es mit dem Inhalt der zweiten Spalte füllen!
Delphi-Quellcode:
for i := 0 to zaehler-1 do
  DynArray[i] := StrToTime(li.subItems[i]);
Bekomme aber jedesmal ein "Überschreitet maximum(1). Das komische ist: Wenn ich mir li.subItems[0] anzeigen lasse, zeigt er mir den Inhalt der letzten Zeile an. Dann ist das mit dem Maximum klar. Wie schaffe ich es, dass er von oben anfängt?

Gruß!

SirThornberry 17. Jul 2007 15:47

Re: Listview (gleiche Zeile- unterschiedliche Spalte)
 
caption = Spalte1
subitem[0] = Spalte2
subitem[1] = Spalte3
etc.
du hast doch aber nur 2 spalten :)
subitems[i] greift also, sobald i größer 0 ist, auf spalten zu welche nicht existieren

Testy 17. Jul 2007 15:50

Re: Listview (gleiche Zeile- unterschiedliche Spalte)
 
Ahhhh, stimmt!
Wie ist den die Syntax um die 2. Spalte von oben nach unten in mein Array zu lesen!

Danke.

Gruß!

SirThornberry 17. Jul 2007 15:51

Re: Listview (gleiche Zeile- unterschiedliche Spalte)
 
Delphi-Quellcode:
ListView.Items.Item[Zeile].SubItems[0]

Testy 17. Jul 2007 15:55

Re: Listview (gleiche Zeile- unterschiedliche Spalte)
 
Super! Jetzt klappt's! Nun muss ich mir mal Gedanken machen, wie ich das mit dem Prüfen des Inhalts hinbekomme! Und das er dann was mit dem Inhalt in der zweiten Spalte (gleiche Zeile macht).
Ist es sinnvoll die komplette erste Spalte mit RegExpr zu durchsuchen oder gibt es da etwas einfacheres?

Testy 17. Jul 2007 16:34

Re: Listview (gleiche Zeile- unterschiedliche Spalte)
 
Habe eine Lösung für mein Problem gefunden:
Delphi-Quellcode:
for i := 0 to zaehler-1 do
begin
if Trim(ListView1.Items.Item[i].caption)='+491' then
begin
DynArray2[i] := StrToTime(ListView1.Items.Item[i].SubItems[0]);
end;
end;

for i := Low(DynArray2) to High(DynArray2) do
begin
mobilzeit:=mobilzeit+DynArray2[i];
end;
So funktioniert es!

hoika 18. Jul 2007 06:56

Re: Listview (gleiche Zeile- unterschiedliche Spalte)
 
Hallo,

Delphi-Quellcode:
for i := 0 to zaehler-1 do
  DynArray[i] := StrToTime(li.subItems[i]);
Wenn du nicht immer so kleckerweise Code zeigen würdest,
könnte man auch helfen.

zaehler - auf was ist der gesetzt
DynArray - wie ist es initialisiert


Das dynamische Arrays sich nicht dynamisch vergrössern, weisst du ...
SetLength benutzen


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr.
Seite 2 von 2     12   

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