Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

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 Lösung TListview eigene Farbe andere Icons für Aktive Items (https://www.delphipraxis.net/58244-loesung-tlistview-eigene-farbe-andere-icons-fuer-aktive-items.html)

100nF 8. Dez 2005 18:41

Re: Lösung TListview eigene Farbe andere Icons für Aktive It
 
probiers mal an einer listview mit viewstyle = vsReport, da hats bei mir nicht funktioniert...

ach ja, ich habe grad rausgefunden, dass wenn es ein & in der listview hat (in einem item) wird dieses gelöscht wenn diese zeile markiert wird.
muss irgendwie am drawtext liegen.
kann man das ändern oder nicht?

etom291272 8. Dez 2005 19:31

Re: Lösung TListview eigene Farbe andere Icons für Aktive It
 
bei mir gings bei beiden viewstyles

100nF 8. Dez 2005 21:01

Re: Lösung TListview eigene Farbe andere Icons für Aktive It
 
Liste der Anhänge anzeigen (Anzahl: 2)
ups, ich glaube ich habe den rahmen mit der gleichen farbe wie der hintergrund gezeichnet :shock:

nun habe ich aber noch ein problem...
ich habe es zuerst so gemacht:
wenn das vorherige item markiert ist, soll der obere rahmen nicht gezeichnet werden,
und wenn das untere item markiert ist, soll der untere rahmen nicht gezeichnet werden.
wenn aber die items nacheinander von oben nach unten oder von unten nach oben markiert werden, wird logischerweise immer der untere oder der obere rahmen gezeichnet, und im endeffekt sieht man dann die horizontalen rahmen-linien trotzdem.

dann hatte ich eine andere idee:
wenn das vorherige item markiert ist, soll der untere rahmen vom vorherigen item mit der hintergrundfarbe übermalt werden. klappte aber irgendwie auch nicht, hier der code:
Delphi-Quellcode:
if item.Index > 0 then
  if tlistview(sender).Items.Item[item.Index-1].Selected = true then
  begin
    aVorherRect := tlistview(sender).Items.Item[item.index-1].DisplayRect(drLabel);
    Canvas.Pen.Color := listviewItemBackColor;
    Canvas.Brush.Color := listviewItemBackColor;
    aVorherRect.Left:=aVorherRect.Left+2;
    aVorherRect.Right := aVorherRect.Right+6;
    canvas.MoveTo(aVorherRect.right, aVorherRect.bottom);
    canvas.LineTo(aVorherRect.left, aVorherRect.bottom);
  end;
EDIT: ich habe jetzt herausgefunden, dass wenn man mehrere items mit der maus markiert (also so ein gestricheltes viereck zieht), dass die eigenschaft selected der markierten items erst true wird, wenn die maus losgelassen wird. so funktioniert mein code natürlich auch nicht...
aber wenn man mehrere items mit der Shift-taste markiert, funktionierts wunderbar (siehe anhang)

etom291272 9. Dez 2005 21:19

Re: Lösung TListview eigene Farbe andere Icons für Aktive It
 
:-D na ja die geschmäcker sind verschieden (gott sei dank) ich fand den effekt das bei multiselect alle items gerahmt werden ziemlich cool ist mal was anderes

:gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:32 Uhr.
Seite 4 von 4   « Erste     234   

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