Autor Beitrag
Jas DA
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Di 06.05.03 10:11 
Habe in meinem Programm unter anderem eine TListView. Nun hab ich jeweils am Zeilenanfang ein Item und dahinter mehrere Subitems. Wenn ich das Programm starte kann ich ja in der TListView die Items anklicken, so dass sie markiert sind. Kann man darauf auch irgendwie reagieren ????

Also z.B. "Wenn ein Item angeklickt wird, dann mache dieses und jenes...".
Sollte das nicht gehen, kann man dann wenigstens den Status abfragen ? Also "Schreibe das Item in ein Edit-Feld, das gerade markiert ist".

Ich hoffe jemand versteht mein Problem :cry:



Und noch kurz was zusätzliches: Kann man die Items der TListView auch sortiert ausgeben lassen ohne ein ellenlanges Sortierverfahren einbauen zu müssen ?
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Di 06.05.03 10:17 
Hi,

hast Du dir schon mal die Ereignisse der tListView angeschaut? Dort gibt es unter anderem die beiden OnChange- und OnChanging-Events. Schau Dir auch die Hilfe dazu an!

Gruß
Tino
Jas DA Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Di 06.05.03 10:25 
Das hab´ ich mir zwar schon angeschaut, bin aber nicht wirklich schlau daraus geworden. Die Hilfe ist bei uns leider nur in Englisch. Über ein Beispiel wäre ich echt dankbar.
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Di 06.05.03 10:48 
Hallo,

Das Ereignis, dass du suchst heist OnSelectItem. Deine Funktion könnte so aussehen:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
  IF Selected THEN
    Edit1.Text := Item.Caption;
end;


Noch ein Tipp am Rande: Hier kannst du das Handbuch im PDF-Format auf Deutsch runterladen ;). Musst mal in die Delphi 7 Updates gucken.

Gruß
Klabautermann
Jas DA Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Di 06.05.03 10:52 
DANKE !!!!!!!!!!!!!!!!!!!!! :D :D :D
Jas DA Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Di 06.05.03 13:46 
Klappt doch noch nicht so ganz wie ich das gerne hätte. Durch dein beschriebenes Beispiel wird ja jeweils Item.Caption im Edit1 Feld dargestellt.

Wie mache ich das denn, dass zusätzlich noch die vorhandenen Subitems in den Edit Feldern 2 bis 4 angezeigt werden ?
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Di 06.05.03 14:16 
Hi,

du hast ja durch den Parameter Item Zugriff auf das Item welches gerade selektiert ist. Über dieses Item kannst Du über die Eigenschaft SubItems auf die SubItems zugreifen. In der Delphi-Hilfe (unter der Eigenschaft SubItems) befindet sich auch ein Beispiel dazu.

Ein Beispiel:
ausblenden Quelltext
1:
Str := Item.SubItems [0];					

Gruß
Tino
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Di 06.05.03 14:17 
Hallo,

es war ja auch nur ein Beispiel, welche du noch auf deine bedürfnisse anpassen musst. Du musst zusätzlich noch die Subitems abarbeiten.
Auf ein einzelnes kannst du so zugreifen:
ausblenden Quelltext
1:
Edit2.Text := Item.SubItems[0];					

Wobei du mit 0 (null) auf das erste Element zurgeifst.

unter verwendung einer Zählschleife (FOR TO DO) und FindComponent kannst du das aber auch recht gut automatisieren. Schaue am besten mal unter den Stichworten in der Delphi Hilfe (bzw. den Runtergeladenen Handbuch) und hier im Forum nach.

Gruß
Klabautermann