Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Создание процедур OnKeyDown и SetFocus   Найти похожие ветки 

 
allrussia   (2010-03-11 16:06) [0]

Есть компонент TFlatListBox из пакета FlatStyle2k.
Так вот у него отсутствуют вышеназванные процедуры.
Соответственно невозможно ни перемещаться на форме по этому контролу с помощью табуляции, ни писать обработчики нажатия клавиш.
Даже перемещаться стрелками по элементам списка в listbox нельзя.
Собственно, куда рыть и много ли работы предстоит, подскажите, пожалуйста.  

вот сами исходники
http://www.torry.net/vcl/packs/interfacemiddle/flatstyl.zip


 
И. Павел ©   (2010-03-11 16:09) [1]

Перехватываете сообщение о нажатие клавиши, если при этом фокус на нужном компоненте - вызываете свой OnKeyDown.


 
И. Павел ©   (2010-03-11 16:10) [2]

Это если есть focused.


 
allrussia   (2010-03-11 17:16) [3]

у этого компонента есть focused
но свойство не фурычит, равно как и  setfocus
(cannot set focus on disabled or invisible window)


 
И. Павел ©   (2010-03-11 19:46) [4]

Ну тогда, наверное, и фокус на компонент не установить. Тогда нужно придумывать какое-то правило, когда компонент будет считаться активным - например - когда на него наведена мышка, то все WM_KEY_DOWN будут относиться к этому компоненту.


 
И. Павел ©   (2010-03-11 19:48) [5]


> (cannot set focus on disabled or invisible window)

Может быть просто Enabled=false?


 
allrussia   (2010-03-11 22:55) [6]

И. Павел

да нет, конечно, иначе все было бы просто :))


 
sniknik ©   (2010-03-12 07:48) [7]

> (cannot set focus on disabled or invisible window)
а оно реально не disabled or invisible?

когда/где вызывается установка фокуса при таком сообщении?

> да нет, конечно, иначе все было бы просто :))
обычно бывает еще проще чем пытаются представить вопрошающие...


 
Mike Kouzmine   (2010-03-12 12:41) [8]

Форма не активна на элемент которого пытается установить фокус


 
И. Павел ©   (2010-03-12 13:09) [9]


> Форма не активна на элемент которого пытается установить
> фокус

В таких случаях обычно эта форма автоматически становится активной.


 
Mike Kouzmine   (2010-03-12 14:49) [10]

И. Павел ©   (12.03.10 13:09) [9]

> Форма не активна на элемент которого пытается установить
> фокус

В таких случаях обычно эта форма автоматически становится активной.

Даже если это выполнялось в модальной форме?


 
allrussia   (2010-03-12 15:19) [11]

не знаю может это был глюк, но свойства setfocus и focused  у компонента заработали
собственно как советовал И. Павел (спасибо) клавиши были перехвачены
правда, нет tabstop и taborder и перемещаться по нему по форме среди других компонентов невозможно, но это можно обойти


 
И. Павел ©   (2010-03-12 15:22) [12]


> Даже если это выполнялось в модальной форме?

Ага, частично SetFocus работает и в этом случае:). Проверьте - если интересно: если находясь в модальной форме вызвать SetFocus, например, для кнопки на главной форме, то когда эта главная форма станет активной, фокус перейдет на эту кнопку.

Никакой ошибки при SetFocus на чужую форму из модальной не возникает.



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

Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.086 c
15-1270759152
Nickola2
2010-04-09 00:39
2010.08.27
Борьба с рекламными баннерами не увенчалась успехом


15-1265917923
AlexDan
2010-02-11 22:52
2010.08.27
по php..


15-1270240202
Юрий
2010-04-03 00:30
2010.08.27
С днем рождения ! 3 апреля 2010 суббота


2-1270793257
Abcdef123
2010-04-09 10:07
2010.08.27
Проблема после перевода проекта из Дельфи 6 в Дельфи 2007.


15-1269080805
tippa
2010-03-20 13:26
2010.08.27
английский и программирование





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский