AGB  ·  Datenschutz  ·  Impressum  







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

Listview: Zellenclick

Ein Thema von theomega · begonnen am 22. Sep 2002 · letzter Beitrag vom 22. Sep 2002
Antwort Antwort
Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#1

Listview: Zellenclick

  Alt 22. Sep 2002, 13:48
Hallo
wie kann ich es realisieren, dass jenachdem auf welche Zelle geklickt wurde eine andere Funktion ausgeführt wird. Mein Listview hat rowselect = true, will heißen, es wird immer die ganze Zelle markiert. Dass soll auch so bleiben nur hätte ich gerne, dass beim Klick in verschiedene Zellen auch verschiedene Funktionen aufgeerufen werden. Dabei stellt sich auch ein weiteres Problem: Ich meine Spalten sind resizable, von dem her kann mann auch nicht so einfach über die x - Koorinaten arbeiten.

WEiß einer einer Lösung?

Danke

TO
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2
  Alt 22. Sep 2002, 17:48
Man könnte es so lösen:
Code:
[b]function[/b] GetItemAndColAt(ListView: TListView; X, Y: Integer;
  out Item: TListItem; out Col: Integer): Boolean;
[b]var[/b] i, xx, w: Integer;
[b]begin[/b]
  Result := False;
  Col := -1;
  [b]with[/b] ListView [b]do[/b]
  [b]begin[/b]
    Item := GetItemAt(X, Y);
    [b]if[/b] Item = [b]nil[/b] [b]then[/b] Exit;
    xx := 0;
    [b]for[/b] i := 0 [b]to[/b] Columns.Count - 1 [b]do[/b]
    [b]begin[/b]
      w := Columns[i].Width;
      [b]if[/b] (X >= xx) [b]and[/b] (X < xx + w) [b]then[/b]
      [b]begin[/b]
        Col := i;
        Exit;
      [b]end[/b] [b]else[/b] Inc(xx, w);
    [b]end[/b];    
  [b]end[/b];
  Result := True;
[b]end[/b];
Diese Funktion liefert in "out Col" die Spalte. Wenn keine aus irgendwelchen Gründen keine Spalte ausgewählt wurde, dann wird -1 zurückgeliefert. In "out Item" wird das zu X/Y passende ListItem zurückgeliefert.
  Mit Zitat antworten Zitat
Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#3
  Alt 22. Sep 2002, 18:00
funzt nicht: Columns.Count gibt es nicht!
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#4
  Alt 22. Sep 2002, 18:05
Schonmal mit ListView1.Columns.Count probiert?

Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#5
  Alt 22. Sep 2002, 18:06
funzt auch nciht: es gibt kein listview.columns nur .colum Und dass erwartet sofort einen Index, es gibt kein Count!
  Mit Zitat antworten Zitat
Benutzerbild von RomanK
RomanK

Registriert seit: 7. Jun 2002
Ort: Kirchheim unter Teck
1.036 Beiträge
 
Delphi 7 Personal
 
#6
  Alt 22. Sep 2002, 18:40
also bei mir gibts es
Code:
listview1.Columns.Count
In der Hilfe die VCL und nicht die CLX nehmen!!!!
Roman Keller
Krieg ist Gottes Art den Amerikanern Geographie beizubringen!
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7
  Alt 22. Sep 2002, 19:35
Das Problem liegt an TCustomListView, des wider der in der Online Hilfe als published beschriebenen Eigenschaft Columns, diese als protected deklariert.

Ändere das TCustomListView im Prozedukopf in TListView um (so wie ich es oben bereits gemacht habe).
  Mit Zitat antworten Zitat
Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#8
  Alt 22. Sep 2002, 19:39
Habe es selber gemerkt!
  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 15:04 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