AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung TListViewItem mit Custom Appearance... wo wurde hingeklickt?
Thema durchsuchen
Ansicht
Themen-Optionen

TListViewItem mit Custom Appearance... wo wurde hingeklickt?

Ein Thema von DeddyH · begonnen am 25. Sep 2015 · letzter Beitrag vom 25. Sep 2015
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#1

TListViewItem mit Custom Appearance... wo wurde hingeklickt?

  Alt 25. Sep 2015, 11:27
Grüezi,

ich habe hier eine FMX-ListView mit ItemAppearance Custom (Text, Detail und Image, letzteres rechts ausgerichtet). Das sieht so aus, wie ich das wollte, allerdings würde ich nun gerne auf einen Click auf das Image reagieren. Mein erster Gedanke war, im OnItemClickEx das übergebene ItemObject auszuwerten:
Delphi-Quellcode:
procedure TfrmMain.lvRunningItemClickEx(const Sender: TObject;
  ItemIndex: Integer; const LocalClickPos: TPointF;
  const ItemObject: TListItemObject);
begin
  if ItemObject is TListItemImage then
    //Bildchen geklickt
end;
Tut nix, lässt man sich den Klassennamen ausgeben, kommt "T" heraus. Eine andere Möglichkeit wäre, die Position auszuwerten (LocalClickPos wird ja auch übergeben). Da habe ich aber das Problem, die Koordinaten des Bildes relativ zum ListViewItem zu ermitteln. Hat jemand eine zündende Idee, es kann ja nicht sein, dass man sich mit solchen Niggeligkeiten immer wieder stundenlang aufhalten muss?

P.S.: XE8 aktuell
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH (25. Sep 2015 um 11:55 Uhr) Grund: Code nach Hinweis korrigiert
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: TListViewItem mit Custom Appearance... wo wurde hingeklickt?

  Alt 25. Sep 2015, 11:41
Wo kommt denn das Item her?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TListViewItem mit Custom Appearance... wo wurde hingeklickt?

  Alt 25. Sep 2015, 11:56
Sry, das sollte ItemObject heißen, korrigiert.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: TListViewItem mit Custom Appearance... wo wurde hingeklickt?

  Alt 25. Sep 2015, 11:57
Wenn ich das mache, erhalte ich als Klassenname z.b. TListItemText. Du hast XE 10 im Profil. Die Signatur des Events ist aber dort eine ganz andere:
Delphi-Quellcode:
ItemClickEx(const Sender: TObject;
  ItemIndex: Integer; const [Ref] LocalClickPos: TPointF;
  const ItemObject: TListItemDrawable);
Im Bereich ListView hat sich sehr viel getan. Das musste ich auch schmerzlich erfahren, weil ich Appearance-Komponenten mit XE5 erstellt hatte und die Kompatibilität ist sehr schwer herzustellen.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all

Geändert von Union (25. Sep 2015 um 12:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: TListViewItem mit Custom Appearance... wo wurde hingeklickt?

  Alt 25. Sep 2015, 12:04
In einem Testprojekt erhalte ich das jetzt auch, aber immer, egal, wo ich hinklicke. Und an diesem Projekt arbeite ich noch mit XE8, siehe Postscriptum
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: TListViewItem mit Custom Appearance... wo wurde hingeklickt?

  Alt 25. Sep 2015, 13:20
Wenn du einen langen Text im Listview anzeigst, geht der dann über das Bild hinaus? Eventuell muss man da mit Margins für die einzelnen Objekte arbeiten?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: TListViewItem mit Custom Appearance... wo wurde hingeklickt?

  Alt 25. Sep 2015, 13:50
Diese Objekte verfügen über keine Margins-Eigenschaft
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#8

AW: TListViewItem mit Custom Appearance... wo wurde hingeklickt?

  Alt 25. Sep 2015, 16:30
XE10:
NUR wenn sich der ItemIndex gerade geändert hat, liefert ClickEx im ItemObject das richtige getroffene EinzelElement(z.B. TListItemText), sonst bekommt man nur "TListView" als "Absender" und muss halt selber mit "InRect" abfragen ob der Punkt im gewünschten (Image)Element ist


Delphi-Quellcode:
procedure TfrmPscreen.lvDevicesItemClickEx(const Sender: TObject;
  ItemIndex: Integer; const [Ref] LocalClickPos: TPointF;
  const ItemObject: TListItemDrawable);
begin
  if(Assigned(ItemObject)) then
    lbDebug.Items.Add('Item '+ItemObject.ClassName + '='+ IntToStr(ItemIndex)+' '+FloatToStr(LocalClickPos.X) +' '+FloatToStr(LocalClickPos.Y) )
  else
    lbDebug.Items.Add('Sender '+Sender.ClassName + '='+ IntToStr(ItemIndex)+' '+FloatToStr(LocalClickPos.X) +' '+FloatToStr(LocalClickPos.Y) );
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: TListViewItem mit Custom Appearance... wo wurde hingeklickt?

  Alt 25. Sep 2015, 18:17
Mit PtInRect würde ich ja zur Not auch arbeiten, aber woher bekomme ich das Rechteck des Image relativ zum ListViewItem?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 22:33 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