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

Вниз

Как отучить наследник TButton приимать фокус?   Найти похожие ветки 

 
Витаий Победа   (2006-12-04 20:12) [0]

Чтобы по tab На него нельзя было перейти - есть свойство TabStop, а как отучить его брать фокус при клике?


 
Eraser ©   (2006-12-04 20:35) [1]

использовать наследников TSpeedButton (TGraphicControl) - они по своей природе не могут получить фокус.


 
Витаий Победа   (2006-12-04 20:43) [2]

Расскажите лучше от чего зависит принимает контрол фокус или нет? вот например TPanel наследник TWinControl а фокус не принимает :(...
я тут исходники поукапал, кажется что когда вызывается кнопочная
CallWindowProc то она в внутри делает SetFocus для этого контрола :(
неужели никак нельзя отучить кнопку принимать фокус?TMyButton.WMSetFocus((7, 3212148, 0, 0))
TControl.WndProc((7, 3212148, 0, 0, 884, 49, 0, 0, 0, 0))
TWinControl.WndProc((7, 3212148, 0, 0, 884, 49, 0, 0, 0, 0))
TButtonControl.WndProc((7, 3212148, 0, 0, 884, 49, 0, 0, 0, 0))
TMyButton.WndProc((7, 3212148, 0, 0, 884, 49, 0, 0, 0, 0))
TWinControl.MainWndProc((7, 3212148, 0, 0, 884, 49, 0, 0, 0, 0))
StdWndProc(2556858,7,3212148,0)
TWinControl.DefaultHandler((no value))
TControl.WMLButtonDown((513, 1, 38, 18, (38, 18), 0))
TControl.WndProc((513, 1, 1179686, 0, 1, 0, 38, 18, 0, 0))
TWinControl.WndProc((513, 1, 1179686, 0, 1, 0, 38, 18, 0, 0))
TButtonControl.WndProc((513, 1, 1179686, 0, 1, 0, 38, 18, 0, 0))
TMyButton.WndProc((513, 1, 1179686, 0, 1, 0, 38, 18, 0, 0))
TWinControl.MainWndProc((513, 1, 1179686, 0, 1, 0, 38, 18, 0, 0))
StdWndProc(2556858,513,1,1179686)
TApplication.ProcessMessage((2556858, 513, 1, 1179686, 12579000, (625, 372)))
TApplication.HandleMessage
TApplication.Run
Project2


 
Витаий Победа   (2006-12-04 20:47) [3]


> Eraser ©   (04.12.06 20:35) [1]
> использовать наследников TSpeedButton (TGraphicControl)
> - они по своей природе не могут получить фокус.


да тут такое дело, использую компоненты от Developer Express они в зависимости от установки стиля меняют свой вид (ала скиновые), так вот TCxButton (от TButton) у них есть а наследника TGraphicControl у них нет :( (или у меня нет...) они в своих редакторах каждый раз перерисовывают...


 
trubin ©   (2006-12-04 21:24) [4]

Как вариант сразу по получению фокуса передавать его другому winControl-у


 
trubin ©   (2006-12-04 21:26) [5]

Поправка:

> сразу по получению фокуса


передавать фокус в конце обработчика TMyButton.OnClick


 
Витаий Победа   (2006-12-05 06:24) [6]

Казалось бы, фокусы, бутоны это вин апи, ан нет, это основное :)))


 
Loginov Dmitry ©   (2006-12-05 07:40) [7]

> вот например TPanel наследник TWinControl а фокус не принимает


Ну это дело поправимо:

procedure TForm1.Button1Click(Sender: TObject);
begin
 Panel1.SetFocus;
end;

:))


 
GrayFace ©   (2006-12-05 12:41) [8]

Можно попробовать превратить это в некнопку - перекрыть CreateParams запомнить Params.WindowClass.lpfnWndProc, вызвать inherited и восстановить lpfnWndProc.


 
Leonid Troyanovsky ©   (2006-12-05 18:03) [9]


> Витаий Победа   (05.12.06 06:24) [6]

> Казалось бы, фокусы, бутоны это вин апи, ан нет, это основное
> :)))


Какое уж тут вин апи.
Просто, такой как "Извращения" еще не сделали.

--
Regards, LVT.


 
Игорь Шевченко ©   (2006-12-05 18:08) [10]


> Чтобы по tab На него нельзя было перейти - есть свойство
> TabStop, а как отучить его брать фокус при клике?


Я сильно извиняюсь, а зачем требуется такое поведение ?


 
Barloggg   (2006-12-06 11:50) [11]

да наверняка картинка на кнопке. а рамка поверх картинки не смотрится.


 
Amoeba ©   (2006-12-07 11:02) [12]


> Leonid Troyanovsky ©   (05.12.06 18:03) [9]
>
> > Витаий Победа   (05.12.06 06:24) [6]
>
> > Казалось бы, фокусы, бутоны это вин апи, ан нет, это основное
>
> > :)))
>
>
> Какое уж тут вин апи.
> Просто, такой как "Извращения" еще не сделали.
>
> --
> Regards, LVT.

А жаль. Давно пора завести такой раздел.


 
DVM ©   (2006-12-08 10:17) [13]


> да наверняка картинка на кнопке. а рамка поверх картинки
> не смотрится.

А нахрена тогда в качестве предка брать TButton. Взять TCustomControl и сделать получение фокуса по своему. И отрисовку рамки фокуса тоже.



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

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

Наверх




Память: 0.47 MB
Время: 0.048 c
1-1165036767
allrussia
2006-12-02 08:19
2007.01.28
Как в Memo при наведении мыши на слово оно выделялось цветом


6-1156606780
DVM
2006-08-26 19:39
2007.01.28
Неблокирующие сокеты на WinAPi.


2-1168193651
blackgrin
2007-01-07 21:14
2007.01.28
латинская буква Е с acute


15-1168179242
Rouse_
2007-01-07 17:14
2007.01.28
Пардон, но срочно нужно.


2-1168273653
Dyakon_Frost
2007-01-08 19:27
2007.01.28
Опять работа со строками





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