Форум: "KOL";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
ВнизБаг с кнопками Найти похожие ветки
← →
SPeller (2003-01-31 05:11) [0]Я нашёл такую вот недоработку в кнопках. У меня на форме несколько кнопок, ни одна из них не DefaultBtn и не CanselBtn. AllBtnReturnClick = True. Бага два. Первый: все кнопки реагируют на нажатие Esc, если клавиша была нажата на них. Данный эффект исчезает если назначить CancelBtn. Второй: по нажатию на одну из кнопок у меня показывается диалог открытия/сохранения. Так вот, если в диалоге нажать клавишу Esc или Enter, то диалог как и пологается закрывается, но вот нажатие клавиши почему-то передаётся кнопке, и кнопка тут же снова нажимается, и опять вылазит диалог.
Кто-нибудь готов взяться за истребление данного бага?
← →
mdwmdw (2003-01-31 14:10) [1]
Второй: по нажатию на одну из кнопок у меня показывается диалог открытия/сохранения. Так вот, если в диалоге нажать клавишу Esc или Enter, то диалог как и пологается закрывается, но вот нажатие клавиши почему-то передаётся кнопке, и кнопка тут же снова нажимается, и опять вылазит диалог.
Такую же фигню заметил для Toolbar. По dblClick на имени файла, в случае, если под ним находится кнопка Toolbar"а, то она отрабатывает нажатие.
← →
blackalex (2003-02-03 12:29) [2]2Speller
Тоже самое у меня. Но я заметил еще несколько отклонений. Как-то уже писал про это, но никто не откликнулся. Можешь ли ты эти глюки у себя перепроверить?
У меня форме 5 кнопок. AllBtnReturnClick формы я посадил на True
1) Если сажаю DefaultBtn ОДНОЙ из кнопки , почему-то все 5 откликаются на Return.
2) В МСК DefaultBtn постоянно сбрасывыется на False
3) Если форма модальная , то DefaultBtn := True не дает вообще никакого результата , хотя AllBtnReturnClick у формы стоит True.
4) Если у кнопок DefaultBtn := True то события OnKeyDown и OnKeyUp не работают
← →
SPeller (2003-02-03 12:46) [3]Посмотрю сразу же, как только справлюсь с проблемой показа модальной формы когда Applet = nil; :-))
← →
blackalex (2003-02-03 13:44) [4]:) Глюк номер 3 выявился когда я кнопари на другую форму бросил и открыл ее модально.
← →
mdw (2003-02-03 14:09) [5]1) Если сажаю DefaultBtn ОДНОЙ из кнопки , почему-то все 5 откликаются на Return.
У меня тоже самое, кроме того они и на Escape тоже реагируют. Причем в OnClick кнопок ставил MsgOk() - при нажатии Enter и Escape повторно кнопка срабатывает.
2) В МСК DefaultBtn постоянно сбрасывыется на False
Этого вроде нет. (версия 1.60)
3) Если форма модальная , то DefaultBtn := True не дает вообще никакого результата , хотя AllBtnReturnClick у формы стоит True.
Работает.
Если у кнопок DefaultBtn := True то события OnKeyDown и OnKeyUp не работают
Не работают у кого, у кнопок или у других контролов. хотя у меня работает у всех.
← →
mdw (2003-02-03 14:24) [6]1) Если сажаю DefaultBtn ОДНОЙ из кнопки , почему-то все 5 откликаются на Return.
А вообще то, ты чего хотел? Если AllBtnReturnClick True
то так и должно быть.
← →
mdw (2003-02-03 14:38) [7]Так вот, если в диалоге нажать клавишу Esc или Enter, то диалог как и пологается закрывается, но вот нажатие клавиши почему-то передаётся кнопке, и кнопка тут же снова нажимается, и опять вылазит диалог.
Сейчас посмотрел - кнопке передаётся не нажатие клавиши, а ее отпускание (WM_KEYUP), вернее не передается, а обрабатывается ею. Я думаю тот же баг и при DblClick (ну я писал) - только для мыши. Надо бы поковыряться, но некогда сейчас, работы дофига. А там глядишь и Кладов сам исправит :))))))
← →
blackalex (2003-02-03 15:29) [8]Если сажаю DefaultBtn ОДНОЙ из кнопки , почему-то все 5 откликаются на Return.
А вообще то, ты чего хотел? Если AllBtnReturnClick True
то так и должно быть.
Да нет , что-то тут не чисто. Сажаю DefaultBtn = false , ни одна кнопка не реагирует на Return. AllBtnReturnClick стоит True. Все правильно . Так и должно. Теперь DefaultBtn = true только у одной. Внезапно начинают все 5 на Return откликаться. Я так понимаю, что только та у которой DefaultBtn = false должна нажиматься. Остальные же не должны молчать. Или не так?
Если у кнопок DefaultBtn := True то события OnKeyDown и OnKeyUp не работают
Не работают у кого, у кнопок или у других контролов. хотя у меня работает у всех.
У кнопок не работает. У меня тоже KOL 1.60 Сейчас буду пэтчить на 1.64 и посмотрю как это там все выглядит
← →
blackalex (2003-02-03 15:33) [9]Я так понимаю, что только та у которой DefaultBtn = false должна нажиматься.
Сорри. Поправляюсь. Хотел сказать DefaultBtn = true
← →
mdw (2003-02-03 17:44) [10]Читаем про AllBtnReturnClick
{* Call this method for a form or any its control to provide clicking a focused button when ENTER pressed. By default, a button can be clicked only by SPACE key from the keyboard, or by mouse. }
т.е обеспечивает щелчек на сфокусированной кнопке нри нажатии ENTER. По умолчанию, кнопка может быть нажата только ПРОБЕЛОМ или мышью.
Поэтому все кнопки (та на которой фокус) и нажимаются.
Или у тебя по ENTER"у все кнопки одновременно срабатывают?
← →
blackalex (2003-02-03 19:05) [11]В том то и дело, что ни одна не срабатывает, пока DefaultBtn у кнопок false
Теперь читаем про DefaultBtn
Set this property to true to make control clicked when ENTER key is pressed
Что означает , что если DefaultBtn true, то кнопка срабатывает при нажатии Enter, если на ней фокус.
Так оно все прекрасно работает. Но только тогда , когда AllBtnReturnClick = false
Короче я с читал сначало, что для того чтобы выключить/включить поддержку Enter у кнопок, необходимо у формы назначить AllBtnReturnClick и дополнительно еще DefaultBtn у кнопок false-выключить , true-включить . Теперь я думаю, что AllBtnReturnClick был изначально задуман так, что если он true , то все кнопки (и не только) , лежащие на форме и имеющие фокус, слушаються Enter, независимо от значения DefaultBtn. В общем весь цирк в том, что я не могу понять для чего нужен AllBtnReturnClick , ведь можно и без него обойтись
← →
SPeller (2003-02-03 19:18) [12]
> В общем весь цирк в том, что я не могу понять для чего
> нужен AllBtnReturnClick
По-моему, он был для того чтобы кнопка (единичная - имхо) нажималась не только когда нажимаешь пробел (предусмотрено внидами), но и когда нажимаешь *на ней* Enter. Я понял так. Если не прав, пусть Владимир меня поправит.
← →
Kladov (2003-02-03 19:25) [13]Разобрался. AllBtnReturnClick вызывается, когда форма еще только создается и ее перемення = nil. Пока можно вызов устроить в OnFormCreate (тогда свойство в Object Inspector поставить false). Вообще, работает сейчас, если есть TKOLApplet и у него AllBtnReturnClick = true. Может, поэтому одни других и не поняли - у кого-то именно так и выставлено и работает.
К следующему обновлению поправлю код в MCK, чтобы вызов делался, когда форма уже создана.
Впрочем, там еще глюк с CANCEL. Тоже подправлю.
> справлюсь с проблемой показа модальной формы когда Applet
> = nil;
А там какие проблемы? Присвойте не nil, и все будет в порядке.
← →
SPeller (2003-02-04 04:07) [14]
> А там какие проблемы? Присвойте не nil, и все будет в порядке.
Это по мылу обсудим. А так, чтобы народ знал: когда вы пишете ДЛЛ и вам надо селать несколько совершенно независимых КОЛ-форм, то это у вас врядли получится, потому как все формы будут связаны через Applet. Присваивание Applet"у nil спасает от одних, но тянет за собой другие проблемы.
← →
Centronix (2003-02-04 17:54) [15]
> Короче я с читал сначало, что для того чтобы выключить/включить
> поддержку Enter у кнопок, необходимо у формы назначить
> AllBtnReturnClick и дополнительно еще DefaultBtn у кнопок
> false-выключить , true-включить . Теперь я думаю, что
> AllBtnReturnClick был изначально задуман так, что если
> он true , то все кнопки (и не только) , лежащие на форме
> и имеющие фокус, слушаються Enter, независимо от значения
> DefaultBtn. В общем весь цирк в том, что я не могу понять
> для чего нужен AllBtnReturnClick , ведь можно и без него
> обойтись
Хм.. насколько я понял - AllBtnReturnClick нужен для того, чтобы любая кнопка с фокусом нажималась при нажитии на Enter. А DefaultBtn=True означает, что при нажатии на Enter при отсутствии фокуса на какой-либо кнопке (например, когда активен EditBox или ListBox) нажималась данная кнопка.
Во всяком случае в VCL вроде так.
← →
blackalex (2003-02-04 18:35) [16]Я теперь тоже разобрался. Вся фишка в апплете. Если он есть, то AllBtnReturnClick работает как надо. У меня его как раз и не было. Вообщем ждем 1.65
← →
SPeller (2003-02-04 19:32) [17]А если показать форму через Show, то никаких багов и ни DefaultBtn, ни CancelBtn не работают. Аплета нету.
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2003.10.20;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.007 c