AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit TListView.OnDrawItem

Ein Thema von alcaeus · begonnen am 18. Sep 2003 · letzter Beitrag vom 18. Sep 2003
Antwort Antwort
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

Problem mit TListView.OnDrawItem

  Alt 18. Sep 2003, 14:50
Hi! Ich versuche in einer ListView einzelne Zeilen fett darzustellen. Dabei habe ich ein klitzekleines Problem: Beim Verändern der Spaltenbreite wird nicht das gesamte Element neu gezeichnet, sondern nur von der Spalte weg,deren Größe ich bearbeite. Das heißt, wenn ich Spalte 2 größer mache, werden nur Spalten 3, 4, etc. neu gezeichnet, und sobald Spalte 2 groß genug ist, sieht man wieder den alten Inhalt von Spalte 2. Das ist wirklich nervend, und auch sobald der Resize abgschlossen ist, muss ich immer noch das Element anklicken, ansonsten bleibt es einfach wie oben beschrieben. Falls ich eine Spalte kleiner mache, wird der zuerst unsichtbare Bereich nicht neu gezeichnet, d.h., dass Spalten die aufgrund eine kleineren Spalte am Anfang wieder Platz finden, werden nicht neu aufbereitet. Ok, nun genug der theorie, hier der Source:

Delphi-Quellcode:
procedure Tf_Addresses.lv_AddressesDrawItem(Sender: TCustomListView;
  Item: TListItem; Rect: TRect; State: TOwnerDrawState);
var
  CurrentLeft: Integer;
  i: Integer;
begin
//TODO:Custom draw the items
  with Sender as TListView do
  begin
    Canvas.FillRect(Rect);
    if Item.SubItems[5] = '1then
      Canvas.Font.Style := [fsBold]
    else
      Canvas.Font.Style := [];
    Canvas.Font.Color := clBlack;
    CurrentLeft := Rect.Left+2;
    Canvas.TextOut(CurrentLeft, Rect.Top, Item.Caption);
    for i := 1 to Columns.Count-1 do
    begin
      Inc(CurrentLeft,Columns[i-1].Width);
      Canvas.TextOut(CurrentLeft, Rect.Top, Item.SubItems[i-1]);
      Canvas.FillRect(GetRect(CurrentLeft+Canvas.TextWidth(Item.SubItems[i-1]),Rect.Top,Rect.Right,Rect.Bottom));
    end;
  end;
end;
Kann mir vielleicht irgendjemand helfen???
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Problem mit TListView.OnDrawItem

  Alt 18. Sep 2003, 15:57
*nachobenrück*

Es ist wirklich wichtig, kann mir wirklich keiner helfen?
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  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 21:17 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