AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Listview Item onklick auslesen

Ein Thema von renekr · begonnen am 11. Mär 2011 · letzter Beitrag vom 11. Mär 2011
Antwort Antwort
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#1

Listview Item onklick auslesen

  Alt 11. Mär 2011, 07:42
Hallo,

Ich habe schon gesucht aber leider nix gefunden.

Habe das Problem das ich eine Listview im Report Style habe.
1 Item und 1 Subitem.
Beim Onklick auf das Item geht es mit

memo1.text := Listview1.Items[Listview1.ItemIndex].SubItems[0]; Nun wenn ich auf das Subitem klicke kommt eine Zugriffsverletzung.

Kann mir ev. jemand nen Tipp geben.

Danke.
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#2

AW: Listview Item onklick auslesen

  Alt 11. Mär 2011, 08:41
Hmm wie jetzt? Du klickst doch auf das SubItem.

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
  ListView1.Items.Add;
  ListView1.Items[0].SubItems.Add('test');
  ListView1.Items[0].Caption:='test';
end;

procedure TForm2.ListView1Click(Sender: TObject);
begin
  Memo1.Text:=ListView1.Items[ListView1.ItemIndex].SubItems[0];
end;
Funktioniert. Oder wo ist das Problem ?

PS: Die Zugriffverletzung kommt logischerweise wenn du im ListView irgendwo hinklickst wo kein Item ist.

Geändert von -187- (11. Mär 2011 um 08:43 Uhr)
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
650 Beiträge
 
Delphi 12 Athens
 
#3

AW: Listview Item onklick auslesen

  Alt 11. Mär 2011, 09:38
Ich schätze mal, du hast die Eigenschaft "RowSelect" im ListView nicht auf "true" gestellt, insofern wird die Zeile vielleicht nicht ausgewählt, wenn du auf das Subitem klickst? Damit wäre dann der ItemIndex=-1 und die Excpetion kommt völlig zurecht.

Generell solltest aber sowieso noch ein if ListView1.ItemIndex>=0 then vorschalten.
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#4

AW: Listview Item onklick auslesen

  Alt 11. Mär 2011, 10:05
Hallo,

Also füllen tue ich es so.
Delphi-Quellcode:
for I := 0 to ADOQuery1.RecordCount - 1 do begin
      ListItem := ListView1.Items.Add;
      ListItem.Caption := ADOQuery1.FieldByName('Line').asstring;
      ListItem.SubItems.Add(ADOQuery1.FieldByName('SQL_Where').asstring);
      ADOQuery1.next;
end;
Leider hatte ich da vorher nen Fehler .
ListItem.SubItems.Text :=ADOQuery1.FieldByName('SQL_Where').asstring;

Dann hat es beim Klick auf das Subitem gekracht, Zugriffsverletzung.


Nun hab ich es so wie oben gemacht und ich bekomme beim Klick auf das Subitem immer itemindex -1.
Klick auf das Item funktioniert.

Edit:
Ohman nDanke Bbommel, das war es, Vielen Dank.
Ich habe es im Onklick schon drin mit dem Itemindex >-1.


Danke

Geändert von renekr (11. Mär 2011 um 10:07 Uhr) Grund: Beitrag gelesen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:11 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