![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа при срабатывании OnCustomDrawItem в своем компаненте [D5]
FHT © (2004-09-12 11:30:00)unit MyListView;
interface
uses
Classes,Controls,ComCtrls,Messages,Commctrl,Windows,Sysutils;
type
TMyListView = class(TListView)
protected
{ Protected declarations }
function CustomDrawItem(Item: TListItem; State: TCustomDrawState;
Stage: TCustomDrawStage): Boolean;override;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
procedure Register;
implementation
constructor TMyListView.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
end;
destructor TMyListView.Destroy;
begin
inherited Destroy;
end;
{Насколько я разбирался вот эта функция(ниже вопроса) срабатывает и вызывает событие
OnCustomDrawItem при прорисовки Items в ListView.
А вопрос такой:
почему она не срабатавает вот в этом компаненте, т.е. сигнал Beep не звучит или если поставить точку останова видно что вообще функция в родительском классе будто бы не отрабатывает.}
function TMyListView.CustomDrawItem(Item: TListItem; State: TCustomDrawState;
Stage: TCustomDrawStage): Boolean;
begin
inherited CustomDrawItem(Item,State,Stage);//здесь точка останова
Result:=True;
Beep;
end;
procedure Register;
begin
RegisterComponents('Standard', [TMyListView]);
end;
End.
FHT (2004-09-15 03:51:00) [1]>Юрий Зотов © (14.09.04 10:33) [4]
Спасибо. Да дело было именно в этом.
Юрий Зотов (2004-09-14 10:33:00) [2]Не уверен, но может быть...
Посмотрите IsCustomDrawn. Согласно справке, "IsCustomDrawn returns true when the list view should generate an event". Получается, что если IsCustomDrawn вернет False (а он вернет False, если ни на одно событие пользовательнской отрисовки реально не назначен обработчик), то и событие генериться не будет. Соответственно, не будет вызываться и метод его диспетчеризации.
FHT (2004-09-14 03:29:00) [3]Что никто не поможет?
FHT (2004-09-13 04:49:00) [4]Да True. Но функция не срабатывает.
Семен Сорокин (2004-09-12 14:54:00) [5]OwnerDraw = true?