Galkov писал(а):
Собственно я даже не знаю о каком kol идет речь.О стандартном KOL под FPC. Самое интересное, что сборка FPC 2.6.2 и KOL 3.21 от Netspirit-а работает корректно. И причем тут тогда компонент MTStrTbl? Попробую еще на исправленном KOL под FPC, может это чего-то даст. А ловушку я вот здесь ставил
function WndProc_LVStateChange( Sender: PControl; var Msg: TMsg; var R: Integer ): Boolean;
var NMOD: PNMLVODStateChange;
NMLV: PNMLISTVIEW;
begin
if Msg.message = WM_NOTIFY then
begin
NMOD := Pointer( Msg.lParam );
NMLV := Pointer( Msg.lParam );
if NMOD.hdr.code = LVN_ODSTATECHANGED then
begin
if Assigned( Sender.OnLVStateChange ) then
Sender.OnLVStateChange( Sender, NMOD.iFrom, NMOD.iTo,
NMOD.uOldState, NMOD.uNewState );
end
else
if NMLV.hdr.code = LVN_ITEMCHANGED then
begin
MsgBox('!!!',1); // ловушка
if Assigned( Sender.OnLVStateChange ) then
Sender.OnLVStateChange( Sender, NMLV.iItem, NMLV.iItem,
NMLV.uOldState, NMLV.uNewState );
end;
end;
Result := FALSE;
end;
Сейчас проверил обычную таблицу, включив в ней чеки (и нафига тут писать еще какой-то код)
procedure THIStringTable.Init;
var l:TListViewOptions;
begin
l := [lvoInfoTip, lvoUnderlineHot ];
if _prop_Flat then
include(l,lvoFlatsb);
if _prop_HeaderDragDrop then
include(l,lvoHeaderDragDrop);
include(l, lvoCheckBoxes); // включение чеков
Баг с двойным кликом под FPC остался.
P.S. Правленный KOL под FPC имеет этот же баг.