С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
6 / 6 / 2
Регистрация: 02.04.2009
Сообщений: 46
1

TButtonGroup как программно отжать кнопку

12.03.2012, 09:12. Показов 2482. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Столкнулась с такой проблемой. Есть форма. На ней 3 компонента TButtonGroup TPageControlб tbutton. На TButtonGroup 5 кнопок, на TPageControl 4 закладки. ; кнопки дают переход по 4 закладкамTPageControl. 5 кнопка вызывает форму. Мне необходимо следующее, при нажатии на 5 кнопку вызвать окно,закрыть его и фокус вернуть на ту кнопку, которая была нажата до 5. например была нажата 1,а потом нажали 5. появилась форма,закрылась и фокус(т.е. эффект нажатой клавиши) перешел снова на 1 кнопку.

Написала функцию, которая ставит фокус
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm4.SetFocusNavBar(Index:Integer);
var
  r:trect;
begin
  NavBar.ItemIndex := Index;//сделали нажатой нужную кнопку
  r := NavBar.GetButtonRect(Index);//показывает пунктирный квадратик
  NavBar.SetBounds(r.Left,r.Top,NavBar.Width,NavBar.ButtonHeight);
  NavBar.SetFocus;
end;
Так вот это работает, если я это вызываю при нажатии на какую нить кнопку простую (TButton). в событии items (TButtonGroup ) onClick это не срабатывает. Т.е. при нажатии на 5 кнопку, вижу что выделена та которая была нажата до нее,появляется окно, закрывается окно и фокус переходит на 5 кнопку! а надо чтоб остался там, где был до появления формы(((

Вот
1.png картинка. так выглядит приложение
2.png решили нажать на кнопку 5, появилось окно, при этом кнопка 1 выделена
3.png окно закрылось и фокус перешел на кнопку 5, хотя в обработчике стоит вызов функции SetFocusNavBar(0)
4.png тут вызываем событие клика кнопки простой.в ней стоит SetFocusNavBar(0) и оно срабатывает (1.png)
Не могу понять где отловить событие того, что фокус все равно передается на 5 кнопку,а не туда, куда я указала. или как сделать по другому.
Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.03.2012, 09:12
Ответы с готовыми решениями:

Работа с TButtonGroup
Привет всем. Нужна помощь. На картине видно : есть компонент TCategoryPanelGroup (синий). В...

Нажать и отжать кнопку
При нажатии на кнопку, изменяется ее цвет и обратно(при повторном нажатии исходный цвет...

Как программно удалить кнопку которую программно создал но только если она уже существует
Есть ScrollView в котором много компонентов,чтоб не выводить сразу все решил выводить по 10 штук и...

Программно загрузить веб-страницу, вставить текст и программно нажать кнопку
Здравствуйте ув. Програмеры. Каким образом можно згрузить веб страницу, вставить в поле на...

2
6 / 6 / 2
Регистрация: 02.04.2009
Сообщений: 46
12.03.2012, 09:14  [ТС] 2
картинки
Миниатюры
TButtonGroup как программно отжать кнопку   TButtonGroup как программно отжать кнопку   TButtonGroup как программно отжать кнопку  

TButtonGroup как программно отжать кнопку  
0
6 / 6 / 2
Регистрация: 02.04.2009
Сообщений: 46
12.03.2012, 10:07  [ТС] 3
Нашла одно пока решение:
В событии кнопки 5 (ButtonGroup1Items4Click(Sender: TObject) запускаю таймер. а в нем я выполняю функцию по изменению фокуса. Может глупо и просто. Но это единственное что работает сейчас и ничего больше не приходит на ум. Если у кого-то появятся идеи, буду рада их услышать.
0
12.03.2012, 10:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2012, 10:07
Помогаю со студенческими работами здесь

Как программно добавить кнопку?
Как программно добавить кнопку с нормальными размерами чтобы она не занимала полностью родительский...

Как программно нажать на кнопку?
И ещё, как программно нажать на кнопку в WPF? В C# нашёл SendKeys, но для него нужно прописать...

Как программно нажать кнопку
Подскажите пожалуйста,как можно прописать, чтоб vba программно нажать кнопку (кнопка называется...

Как в С# программно нажать кнопку?
Здравствуйте. Нужно на простом примере открыть калькулятор,найти это окно,найти цифру 5, и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru