Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Программное нажатие на SpedButton


DroNIX ©   (2005-10-05 21:47:00) 

Я сделал так:

procedure Tmin_form.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key in ['a'..'z','A'..'Z'] then
with main_form do
begin
TbsSkinSpeedButton(FindComponent(key+'_button')).Perform(WM_LBUTTONDOWN, 0, 0);
TbsSkinSpeedButton(FindComponent(key+'_button')).Perform(WM_LBUTTONUP, 0, 0);
end;
end;

Но кнопка остаётся подсвеченой (как бы на ней курсор наведён), down, repain не помогают.
Что добавить?


DroNIX   (2005-10-06 18:09:00) [1]

CM_MOUSELEAVE
это помогло.


DroNIX   (2005-10-06 10:46:00) [2]

Да был бы это простой SpeedButton было бы легче, но этот иz DynamicSkinForm VCL.
Они забыли наверно что-то добавить, там даже .Click нету


Германн   (2005-10-06 00:35:00) [3]

2 Eleepod ©   (05.10.05 23:50) [4]
Дык у тебя TSpeedButton, а у него что за зверь? ХЗ :(


Eleepod   (2005-10-05 23:50:00) [4]

Хм, попробовал у себя так

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key in ['0'..'9']
 then with Form1 do
       begin
        TSpeedButton(FindComponent('SpeedButton' + key)).Perform(WM_LBUTTONDOWN, 0, 0);
        TSpeedButton(FindComponent('SpeedButton' + key)).Perform(WM_LBUTTONUP, 0, 0);
       end;
end;

все норамально работает...


Alexander Panov   (2005-10-05 22:41:00) [5]

Еще проще - SpeedButton1.Click;
или   TSpeedButton(FindComponent('SpeedButton1')).Click;


DroNIX   (2005-10-05 22:36:00) [6]

ну у меня 26 кнопок, поэтому так сложно :)
У меня не работает, остаётся подсеченной, курсор к ней подводишь, потом уводишь, и только тогда перетаёт гореть


Eleepod   (2005-10-05 22:15:00) [7]

Зачем так сложно?

Вполне работает

 SpeedButton1.Perform(WM_LBUTTONDOWN, 0, 0);
 SpeedButton1.Perform(WM_LBUTTONUP, 0, 0);


Наверх

Титульная страница Поиск, карта сайта Написать письмо