Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Text unter Listvieweintrag (https://www.delphipraxis.net/69452-text-unter-listvieweintrag.html)

drschubi 15. Mai 2006 13:52


Text unter Listvieweintrag
 
Ja hallo erst mal, habe jetzt Stunden gesucht und die OH benmüht komme aber nicht weiter.

Ich habe eine TListview mit Daten gefüllt und möchte, wenn ich per Hoch/Runter-Taste scrolle, in meinen Edits die jeweils markierte Caption und Subitems angezigt bekommen. Egal wie ich es anstelle, ich bekomme eine AV.
Wenn ich einen Eintrag mit der Maus markiere funktioniert es so:
Delphi-Quellcode:
 lblid.Caption := lvshopdaten.Selected.Caption;
Komme einfach nicht weiter, weiss jemand Rat?

Danke Schubi

s-off 15. Mai 2006 14:14

Re: Text unter Listvieweintrag
 
Hallo,

Delphi-Quellcode:
procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
   label1.Caption := item.Caption;
end;

Klaus01 15. Mai 2006 14:18

Re: Text unter Listvieweintrag
 
weiß es nicht ganz genau, aber kannst Du das nicht mit dem Onchange Event lösen?

Aus der OH:

Occurs immediately after an item in the list changes.

type TLVChangeEvent = procedure(Sender: TObject; Item: TListItem; Change: TItemChange) of object;
property OnChange: TLVChangeEvent;

Description

Write an OnChange event handler to respond to changes in the list items. OnChange allows a response once the list has been successfully changed.

The Item parameter is the list item that just changed. The Change parameter indicates the type of change that just occurred. Change is ctText if the Caption property of the item changed. Change is ctImage if the ImageIndex property of the item changed or the appropriate image list changed in the list view. Change is ctState if the Cut, Focused, or Selected property of the item changed.

Grüße
Klaus

drschubi 15. Mai 2006 14:32

Re: Text unter Listvieweintrag
 
@s-off

Das hat hingehauen.

Subitems lese ich dann mit := item.SubItems[1] aus

Danke schön.
Warum steht sowas bloß nicht in der Hilfe :roll:

Schwedenbitter 28. Dez 2006 15:25

Re: Text unter Listvieweintrag
 
Zitat:

Zitat von drschubi
...
Subitems lese ich dann mit := item.SubItems[1] aus
...

Kann mal bitte jemand einen Quellcode bzw. einen Link posten, wie man an einen konkreten Eintrag in der TListView z.B. in der Spalte 3 an Position 5 kommt?

DGL-luke 28. Dez 2006 15:32

Re: Text unter Listvieweintrag
 
Hier kommst du an die 5. Spalte in der 3. Zeile ("Y")

Code:
 "blindtext"

\ - 1 2 3 4

1 x x x x x
2 x x x x x
3 x x x x Y
4 x x x x x
so:

Delphi-Quellcode:
Items[2].SubItems[4]
für Position "-"
Delphi-Quellcode:
Items[2].Caption
;-)

marabu 28. Dez 2006 15:46

Re: Text unter Listvieweintrag
 
Hier noch eine kleine Gehhilfe für Einzelzugriffe:

Delphi-Quellcode:
function GetLVStr(
  lv: TListView;
  subIndex: Integer = -1; // caption addressed by negative value
  itemIndex: Integer = -1  // focused item addressed by negative value
): String;
var
  item: TListItem;
begin
  if itemIndex < 0 then
    itemIndex := lv.ItemIndex;
  if itemIndex < 0 then
    Result := '' else
  begin
    item := lv.Items[itemIndex];
    if subIndex < 0 then
      Result := item.Caption else
    if subIndex < item.SubItems.Count
      then Result := item.SubItems[subIndex]
      else Result := '';
  end;
end;
Getippt und nicht getestet.

Freundliche Grüße


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