AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Labels einer ListView zuordnen - aber wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Labels einer ListView zuordnen - aber wie?

Ein Thema von Alfonso3 · begonnen am 24. Jul 2008 · letzter Beitrag vom 25. Jul 2008
Antwort Antwort
Alfonso3

Registriert seit: 14. Jul 2008
26 Beiträge
 
#1

Labels einer ListView zuordnen - aber wie?

  Alt 24. Jul 2008, 10:10
Hallo,

ich habe die Anforderung in einer ListView für jede Zeile in einer Spalte zwei Farben anzeigen zu müssen. Es ist kein Problem jedem Item ein Label via TListView.Data zuzuordnen, doch wie funktioniert das bei zwei oder mehr Elementen.

Hier sieht mein Code für das Anzeigen eines Labels in einer Spalte für jedes Item in einer ListView aus:

Delphi-Quellcode:
procedure TfmLohnartB.lvDataAdvancedCustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  Stage: TCustomDrawStage; var DefaultDraw: Boolean);
const
  pbColumnIndex = 1;
  pbMax = 100;
var
  pb : TLabel;
  pbRect : TRect;
  la : TLohnart;
  i: Integer;
  b : integer;
begin
  inherited;
  if (sender.Column[SubItem].Caption = 'Plan') then begin
    la := TLohnart(lvData.mkScroll.records[Item.Index]);
    pb := TLabel(Item.Data);
    if not Assigned(pb) then begin
      pb := TLabel.Create(self);
      pb.Parent := Sender;
      Item.Data := pb;
    end;
    {
    if Assigned(Item.Data) then begin
      pb := TLabel(Item.Data);
      pb.visible := false;
    end; }

    //pb := TLabel.Create(self);
    pb.Transparent := false;
    pb.Color := TColor(la.PlanFarbe);
    //Item.Data := pb;//
    pbRect := Item.DisplayRect(drBounds);
    pbRect.Left := pbRect.Left + ListView_GetColumnWidth(lvData.Handle, 0) +
              ListView_GetColumnWidth(lvData.Handle, 1) +
              ListView_GetColumnWidth(lvData.Handle, 2) +
              ListView_GetColumnWidth(lvData.Handle, 3) +
              ListView_GetColumnWidth(lvData.Handle, 4) +
              ListView_GetColumnWidth(lvData.Handle, 5) +
              ListView_GetColumnWidth(lvData.Handle, 6) + 15;

    pbRect.Right := pbRect.Left + ListView_GetColumnWidth(lvData.Handle, 7)-30;
    pbRect.Top := pbRect.Top + 1;
    pbRect.Bottom := pbRect.Bottom - 2;
    pb.BoundsRect := pbRect;
 // pb.Free;
  end;
..funktioniert soweit wunderbar, doch ich habe das Problem, dass ich kein zweites Label dem ListItem zuordnen kann?!?! und so nicht weiß, wie ich das zweite Label anzeigen soll.

Wäre für Tips sehr dankbar!

lg, Thorsten
  Mit Zitat antworten Zitat
extrem

Registriert seit: 27. Mai 2008
72 Beiträge
 
#2

Re: Labels einer ListView zuordnen - aber wie?

  Alt 25. Jul 2008, 08:10
Hi,

warum benutzt du überhaupt ein TLabel, könntest du den Text nicht zeichnen?

Ansonsten kannst du auch ein Objekt oder Record Item.Data zuweisen.
Delphi-Quellcode:
type
  TMyObject = class
    pb1, pb2 : TLabel;
  end;
  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 01:12 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