Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.19;
Скачать: CL | DM;

Вниз

ListView.OnChanging   Найти похожие ветки 

 
XShura ©   (2002-08-05 16:50) [0]

Всем привет! Возникла по моему туповатая проблема с событием ListView.OnChanging ... Пишу такой код :

procedure Tform1.LVChanging(Sender: TObject; Item: TListItem;
Change: TItemChange; var AllowChange: Boolean);
begin
AllowChange:=false;
end;

Вопрос : почему это событие возникает иногда 2 или 3 раза для одного и тоже Item ??


 
Ученик ©   (2002-08-05 17:06) [1]

Свойств у TListItem несколько


 
XShura ©   (2002-08-05 17:09) [2]

А можно поподробнее?


 
Ученик ©   (2002-08-05 17:14) [3]

В ComCtrls.pas

procedure TCustomListView.CNNotify(var Message: TWMNotify);
...
LVN_ITEMCHANGING:
with PNMListView(NMHdr)^ do
if not CanChange(Items[iItem], uChanged) then Result := 1;
...

function TCustomListView.CanChange(Item: TListItem; Change: Integer): Boolean;
var
ItemChange: TItemChange;
begin
Result := True;
case Change of
LVIF_TEXT: ItemChange := ctText;
LVIF_IMAGE: ItemChange := ctImage;
LVIF_STATE: ItemChange := ctState;
else
Exit;
end;
if Assigned(FOnChanging) then
FOnChanging(Self, Item, ItemChange, Result);
end;



LVN_ITEMCHANGING


Notifies a list view control"s parent window that an item is changing. This notification message is sent in the form of a WM_NOTIFY message.

LVN_ITEMCHANGING
pnmv = (LPNMLISTVIEW) lParam;

Parameters
pnmv
Address of an NMLISTVIEW structure that identifies the item and specifies which of its attributes are changing.
Return Values
Returns TRUE to prevent the change, or FALSE to allow the change.

Remarks
If the list view control has the LVS_OWNERDATA style, LVN_ITEMCHANGING notifications are not sent.

Requirements
Windows NT/2000: Requires Windows NT 3.51 or later
Windows 95/98: Requires Windows 95 or later
Windows CE: Requires version 1.0 or later.
Header: Declared in commctrl.h.


 
Ученик ©   (2002-08-05 17:17) [4]

А если проще, то Change: ItemChange у них разный


 
XShura ©   (2002-08-05 17:20) [5]

хм... когда я писал что событие возникает 2 или 3 раза, я имел ввиду что Change было всегда ctState ...



Страницы: 1 вся ветка

Текущий архив: 2002.08.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
3-60508
EugeneP
2002-07-26 14:34
2002.08.19
Передача параметров ADO запросу


14-60827
AL2002
2002-07-24 16:23
2002.08.19
Always, AllDays, TmpX etc.


1-60730
Poirot
2002-08-05 05:33
2002.08.19
Создать свой ScrollBar в компоненте от TCustomControl


1-60586
Nikoss
2002-08-06 00:10
2002.08.19
Подскажите, как узнать из какой процедуры была вызванна процедура


6-60795
Wather
2002-06-05 23:47
2002.08.19
Помогите разобраться!