Delphi-PRAXiS
Seite 2 von 2     12   

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 TListView, in 1. Spalte Rechteck in bestimmter Farbe (https://www.delphipraxis.net/114911-tlistview-1-spalte-rechteck-bestimmter-farbe.html)

IceTube 2. Jun 2008 22:07

Re: TListView, in 1. Spalte Rechteck in bestimmter Farbe
 
Soo..hab dich falsch verstanden, jedoch weiß ich glaube ich jetzt was du genau meintest..

Hab mal den Code geschrieben:

Delphi-Quellcode:
procedure TForm1.ListView1AdvancedCustomDraw(Sender: TCustomListView;
  const ARect: TRect; Stage: TCustomDrawStage; var DefaultDraw: Boolean);
var rect : Trect;
  begin
//Anpassen
rect.Left := Listview1.Column[0].Width;
rect.Top := ListView1.Top;

//Färbt die 2 Spalte
Sender.Canvas.Brush.Color := clWhite;
Sender.Canvas.Brush.Style := bsSolid;
Sender.Canvas.Pen.Style := psClear;
Sender.Canvas.Pen.Color := clBlack;

Sender.Canvas.FillRect(Rect);

end;

procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
(Sender As TListView).Canvas.Brush.Color := clWhite;
(Sender As TListView).Canvas.Font.Color := clBlack;
end;
Du musst halt noch die Sachen an dein Projekt anpassen, wichtig ist die ListView am anfang auf die Farbe zu setzen die du in der ersten Spalte haben möchtest...

lg

hoika 3. Jun 2008 06:54

Re: TListView, in 1. Spalte Rechteck in bestimmter Farbe
 
Hallo,

danke, ich habe mich leider nicht genau ausgedrückt.
Die Farbe der Spalte soll natürlich in Abhängigkeit des
jeweiligen ListItems gefärbt werden.

Jetzt habe ich folgende Situation.

Delphi-Quellcode:
procedure TForm.LV_DataAdvancedCustomDraw(
  Sender: TCustomListView; const ARect: TRect; Stage: TCustomDrawStage;
  var DefaultDraw: Boolean);
ARect ist da, aber kein Item


Delphi-Quellcode:
procedure TForm.LV_DataAdvancedCustomDrawItem(
  Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
  Stage: TCustomDrawStage; var DefaultDraw: Boolean);
Item ist da, aber kein Rect, Item.DisplayRect (drLabel) bringt auch nichts.

Da muss ich wohl wirklich auf VST umsteigen,
Mann, Mann, Mann ;(


Heiko

bitsetter 3. Jun 2008 08:16

Re: TListView, in 1. Spalte Rechteck in bestimmter Farbe
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von hoika
Item ist da, aber kein Rect, Item.DisplayRect (drLabel) bringt auch nichts.

Warum bringt das nichts, habe es ausprobiert und es brachte was:

hoika 3. Jun 2008 08:39

Re: TListView, in 1. Spalte Rechteck in bestimmter Farbe
 
Hallo,

ahhhh,
nichts bringen war falsch ausgedrückt,
er hatte immer die komplette Ziele gefärbt.

Delphi-Quellcode:
Sender.Canvas.FillRect(r);
Sender.Canvas.Font.Color := Graphics.clBtnText;
Sender.Canvas.TextOut(r.Left + 2, r.Top, Item.Caption);
Sender.Canvas.Brush.Color := TListView(Sender).Color;
die letzte Zeile ist wichtig !

und hier noch mal der Code zum kopieren ;)

Delphi-Quellcode:
procedure TForm.LV_DataAdvancedCustomDrawItem(
  Sender: TCustomListView; Item: TListItem; State: TCustomDrawState;
  Stage: TCustomDrawStage; var DefaultDraw: Boolean);
var
  Rect    : TRect;
 // ListItem.Data contains our own class
  DataItem : TDataItem;
begin
  DataItem:= Item.Data;
  if DataItem<>NIL then
  begin
    if DataItem.iColor>-1 then
    begin
      begin
        Rect:= Item.DisplayRect(drLabel);
        Sender.Canvas.Brush.Color := DataItemm.iColor;
        Sender.Canvas.FillRect(Rect);
        Sender.Canvas.Brush.Color := TListView(Sender).Color;

        Exit;
      end;
    end;
  end;
end; { LV_DataAdvancedCustomDrawItem }
Deine Unterscheidung nach selected oder nicht habe ich übrigens
absichtlich nicht drin, damit beim Blättern immer die Farbe angezeigt wird.


1000 Dank

jipppiiii :cheers:



Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:02 Uhr.
Seite 2 von 2     12   

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