Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
9-65303
Vulko
2003-04-11 17:08
2003.10.20
Шашки...


14-65608
Denizzz
2003-10-01 08:10
2003.10.20
Прошу дать мне рекомендации


9-65302
DNT
2003-02-21 02:01
2003.10.20
Помогите научить машину ездить...


14-65625
andre
2003-09-29 05:51
2003.10.20
Просто вопрос.


7-65647
cypher
2003-08-04 13:46
2003.10.20
Как добавить свою закладку в свойства экрана





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский