Autor Beitrag
real76
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mi 05.04.06 14:45 
Hi,

ich bin neu in der Delphi(6)-Programmierung und versuche mich schon seit mehreren Stunden daran, ein Listview mit zwei Spalten mit Daten (Strings) zu füllen. :x

Mein Code zum Füllen sieht wie folgt aus:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
   item: TListItem;
begin
   ...
   item := Form1.ListView1.Items.Add;
   item.Caption := '';
   item.SubItems.Add('Wert Spalte1');
   item.SubItems.Add('Wert Spalte2');

Muss ich irgendwas beim Design der Listview beachten oder warum schlägt mein Versuch fehl.

Die Threads in diesem Forum zum Thema Listview übersteigen meine Vorstellungskraft - ich wollte erstmal simpel anfangen. :)

Danke
René
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mi 05.04.06 14:54 
Bei der Listview musst Du zuerst den Style auf Report einstellen und zusätzlich beachten, dass die erste Spalte über ListItem.Caption angesprochen wird. Jede weitere (also ab der zweiten Spalte) trägst Du unter SubItems ein.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
einfach112
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 168

xp
del7
BeitragVerfasst: Di 25.04.06 23:45 
Titel: wo wir gerade dabei sind !
Hallo !
kannst du mir zum gleichen thema vieleicht auch noch weiterhelfen ??
ich habe auch eine tabelle die ganz genau so aufgebaut ist !
jetzt würde ich mir gerne den inhalt einer markierten zeile
z.B. in label1.caption anzeigen lassen !
naja ok das bekomme ich so gerade noch hin mit :
label1.Caption := LvHeaders.Selected.SubItems.GetText;
das problem ist aber ich würde mir gerne nur den inhalt der 4ten spalte anzeigen lassen !
kannste mir sagen wie das genau geht ?
Währe über hilfe sehr dankbar !
mfg
einfach112

_________________
sorry bin noob !
Logikmensch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 390

Win XP
Delphi 2007 Prof., XE2, XE5
BeitragVerfasst: Mi 26.04.06 06:24 
Hallo!

die gerade markierte Zeile bekommst Du über

ausblenden Delphi-Quelltext
1:
ListView.Selected					


raus. Bitte auch auf nil prüfen. Wenn Du z.B. schreibst:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
...
var
  li:TListItem;
begin
  ....
  li:=ListView.Selected;
  if assigned(li) then begin
    if li.subitems.count>=3 then begin
      showmessage(li.subitems[2]); //Inhalt der 4.Spalte der markierten Zeile
    end
  end
  ....
end;


Dann bekommst Du den Inhalt der 4. Spalte angezeigt, vorausgesetzt, es gibt auch einen Subitems-Inhalt dazu. Auch hier bitte prüfen (Achtung: Subitems-Zählung beginnt bei 0. Subitems[0] ist aber die Spalte Nr. 2 weil, wie oben bereits erwähnt, die Caption die Spalte Nr. 1 übernimmt. Ein bisschen verwirrend, hihi).
Interessanterweise kann man mehr Subitems in einem Item haben, als Spalten da sind und umgekehrt. Also Vorsicht.

Viel Spaß. Die ListView ist eines der vielseitigsten Controls. Ich liebe es! :-D

Liebe Grüße,

Claus.
einfach112
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 168

xp
del7
BeitragVerfasst: Mi 26.04.06 10:10 
Titel: THX
jo thx hat mir sehr geholfen !
thx cu
einfach112

_________________
sorry bin noob !