Delphi-PRAXiS

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 ListView: OnCustromDrawSubItem -> Text flackert (https://www.delphipraxis.net/63575-listview-oncustromdrawsubitem-text-flackert.html)

Sascha L 20. Feb 2006 19:12


ListView: OnCustromDrawSubItem -> Text flackert
 
Hallo,

Ich habe folgenden Code:

Code:
procedure TForm6.ListView1CustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
  if SubItem = 1 then begin
  DefaultDraw := false;
  Item.SubItems.Strings[1] := 'test';
  end;
end;
In der ListView sind nun jedoch alle anderen SubItems leer und der Text "test" ist total am flackern, als ob er im 10tel-Sekundentakt immer wieder neu gezeichnet wird.

Wenn ich nur

Code:
procedure TForm6.ListView1CustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
  DefaultDraw := false;
  Item.SubItems.Strings[1] := 'test';
end;
verwende, dann sind alle SubItems leer.

Sinn der ganzen Sache ist der: In der 2. Spalte (SubItem 1) stehen zahlen z.B. von 0-2. Wenn also nun der Wert 0 in der Spalte steht, dann soll er dort nicht 0 anzeigen, sondern z.B. "Niedrig" für 1 dann "Mittel", usw.

Wie kann ich das am besten realisieren?

Gruß
Sascha

marabu 20. Feb 2006 19:36

Re: ListView: OnCustromDrawSubItem -> Text flackert
 
Hallo Sascha,

der event handler OnCustomDrawSubItem() ist keine gute Lösung für dein Problem. Ich würde das eher mit einer virtuellen ListView lösen. Schau dir dazu mal das Ereignis OnData() und die Eigenschaft OwnerData der ListView an.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz