[Lazarus] How to draw a progressbar under a column of a listview?
Graeme Geldenhuys
graemeg.lists at gmail.com
Sat Apr 11 08:43:21 CEST 2009
2009/4/11 闫程远 <yanchengyuan at gmail.com>:
> first i wanted to draw a progressbar.i know there is a method of a TListItem
> called "DisplayRect",but whatever i do,the rect it returns is (0,0,0,0)
As far as I can see you have found a bug. Please report this in Mantis.
I have tried the following code and the DisplaySubItemRect() is also
always (0,0,0,0). The other thing is that I use Sender
(TCustomListView type) to retrieve the canvas. If the code below runs,
the whole Form is painted Green, whereas at least it should only have
been inside the ListView.
I use Lazarus (latest trunk revision) with GTK2 widgetset. Can you
try to reproduce this and give feedback?
Steps to reproduce:
-----------------------------
* New LCL application
* Drop TListView on form
* Create 3 new items.
* Create 1 new subitem for each item.
* Add the event handler below
* Run from command line (so writeln() statements work)
===================================
procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem;
SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean);
var
rect: TRect;
begin
writeln('CustomDrawSubItem');
if Item.Caption = 'Item1' then
begin
// if cdsDefault in State then
begin
// DefaultDraw := False;
Rect := Item.DisplayRectSubItem(SubItem, drBounds);
writeln('r.right = ', rect.Right);
Brush.Color := clGreen;
Rect.Right := Trunc(Rect.Right * 0.75); // 75%
Sender.Canvas.FillRect(Rect);
end;
end;
end;
===================================
> and whatever i wrote for the drawsubitem/drawitem method it just doesn't
> work.
> then i tried to put a Tprogressbar under a column,and it failed again.
> can anyone help me?
>
> regard,
> Yan Chengyuan
>
> --
> I'm sure that I will win.
>
> _______________________________________________
> Lazarus mailing list
> Lazarus at lazarus.freepascal.org
> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
>
>
--
Regards,
- Graeme -
_______________________________________________
fpGUI - a cross-platform Free Pascal GUI toolkit
http://opensoft.homeip.net/fpgui/
More information about the Lazarus
mailing list