![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
KOLButton.OnEnter & OnLeave ???
ECM © (2006-02-06 19:03:00)Столкнулся тут с упущением (?!!! как раньше не замечал - не пойму)
Не работают нотификации OnEnter и OnLeave для TKOLButton,TKOLCheckBox
и TKOLBitBtn. И OnMouseDblClk для TKOLButton и TKOLCheckbox.
Как оказалось,в функциях New для всех них упущен (?!) флаг
BS_NOTIFY без которого, события BN_SETFOCUS,BN_KILLFOCUS
(а для не BS_OWNERDRAW и) BN_DBLCLK, не генерируются системой.
Тем более обидно, что обработка этих событий уже давно встроена
в KOL. (Radiobox - один из "рода Button-ов" отрабатывает их
успешно)
После добавления оного флага во все функции - всё стало на место.
Каких-то доп. багов пока не обнаружено...
{$IFDEF ASM_VERSION}
function NewBitBtn( AParent: PControl; const Caption: String;
...
MOV ECX, WS_VISIBLE or WS_CHILD or WS_TABSTOP or BS_OWNERDRAW
or BS_NOTIFY
CALL _NewControl
...
{$ELSE ASM_VERSION} //Pascal
function NewBitBtn( AParent: PControl; const Caption: String;
...
f := WS_VISIBLE or WS_CHILD or BS_OWNERDRAW or WS_TABSTOP or BS_NOTIFY;
Result := _NewControl( AParent, 'BUTTON', f, False, @ButtonActions );
{$IFDEF _ASM_VERSION}
function NewButton( AParent: PControl; const Caption: String ): PControl;
...
MOV ECX, WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or WS_TABSTOP
or BS_NOTIFY
CALL _NewControl
...
{$ELSE ASM_VERSION} //Pascal
function NewButton( AParent: PControl; const Caption: String ): PControl;
begin
Result := _NewControl( AParent, 'BUTTON',
WS_VISIBLE or WS_CHILD or BS_NOTIFYor
BS_PUSHLIKE or WS_TABSTOP, False, @ButtonActions );
{$IFDEF ASM_VERSION}
function NewCheckbox( AParent: PControl; const Caption: String ): PControl;
...
MOV [EAX].TControl.fStyle, WS_VISIBLE or WS_CHILD or
BS_AUTOCHECKBOX or BS_NOTIFYor WS_TABSTOP
...
{$ELSE ASM_VERSION} //Pascal
function NewCheckbox( AParent: PControl; const Caption: String ): PControl;
...
Result.fStyle := WS_VISIBLE or WS_CHILD or BS_NOTIFYor
BS_AUTOCHECKBOX or WS_TABSTOP;
Размер кода сие - не увеличивает...:)
Vladimir Kladov (2006-02-06 21:15:00) [1]учту, утечку и уникож победил, оьновлние сегодня не успеваю оформить, завтра теперь.