Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - TGauge in TListView?


jackie05 - Fr 03.12.10 20:18
Titel: TGauge in TListView?
Hallo,
wie kann ich eine TGauge Komponente in ein ListView SubItems zeichnen?

Ich hab schon viel versucht, leider weiss ich nicht wie ich diese richtig in TListView anzeigen lassen kann, beim Scrollen der TListView sollen die TGauge natürlich mit gescrollt werden.

Ich bedanke mich schonmal im Voraus.

MfG


jaenicke - Fr 03.12.10 20:45

Müssen es denn echte TGauge-Komponenten sein? Wenn ja, musst du die immer neu positionieren.

Einfacher wäre es, wenn du einfach in den CustomDraw oder AdvancedCustomDraw Ereignissen selbst zeichnest was du zeichnen möchtest.


bummi - Fr 03.12.10 20:55

Falls Du nicht selbst zeichnen möchtest, was ich Dir empfehlen würde:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
uses ....,CommCtrl;
//......
gauge1.Parent := ListView1;
//......



procedure TForm1.ListView1AdvancedCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
  var DefaultDraw: Boolean);
var
 r:Trect;
begin
  
  ListView_GetItemRect(Sender.Handle, Item.Index, r, LVIR_BOUNDS);
  if Item.Index=2 then gauge1.BoundsRect:= r;
end;