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

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

MainMenu и PageControl


lancomm ©   (2013-08-27 21:06:00) 

Доброго вечера. Подскажите как можно реализовать такую задумку.
Есть форма, на форме есть PageControl и три вкладки. На каждой вкладке Есть небольшая таблица и кнопки управления ей. Все кнопки имеют одинаковые названия на всех трех вкладках PageControl.
Хотелось бы все кнопки удалить со всех вкладок и сделать одно MainMenu к примеру, пункты которого работают в зависимости от выбранной вкладки.


lancomm   (2013-08-27 23:10:00) [1]

Извините за совсем глупый вопрос. Разобрался. Спасибо всем за помощь.


lancomm   (2013-08-27 23:04:00) [2]

Почти все сделал, по поводу OnChange, если работать с кнопкой, то понятно, к примеру
form2.button1.Caption:='тест';
а как изменить пункт MainMenu?
form2.MainMenu1.???


Германн   (2013-08-27 22:38:00) [3]

TPageControl.OnChage


lancomm   (2013-08-27 22:03:00) [4]

Еще такой вопрос, пара пунктов MainMenu должны быть разными в зависимости от выбранной вкладки. Можно ли к примеру на какое то событие  PageControl (какое?) повесить изменение Caption пункта меню.


Германн   (2013-08-27 21:59:00) [5]

Я за вариант Ega23 ©   (27.08.13 21:21) [1]
Код удобнее читать.


lancomm   (2013-08-27 21:47:00) [6]

Дошло, извините  за тугодумность, мало опыта.
Буду пробовать.


ProgRAMmer Dimonych   (2013-08-27 21:40:00) [7]

> [3] lancomm ©   (27.08.13 21:35)

А, ну если обработчики отдельные уже написаны, то по переключению вкладки заменять их. Что-то типа


...
SomeMenuItem1.OnClick := Handler1ForPage1;
SomeMenuItem2.OnClick := Handler2ForPage2;
SomeMenuItem3.OnClick := Handler3ForPage3;
...


Тогда ветвление будет только в одной-единственной процедуре. Вполне удобно.


ProgRAMmer Dimonych   (2013-08-27 21:37:00) [8]

> [2] lancomm ©   (27.08.13 21:22)

Если набор действий примерно одинаков — почему бы и не MainMenu? По крайней мере более привычно для среднестатистического пользователя.

В [1] вполне логичное решение предложено. Можно только предложить, если код для операций достаточно сложный и значительно отличается на разных вкладках, вместо if'ов просто написать обработчики для каждого из алгоритмов и переназначать при переключении вкладки. Но обычно [1] вполне достаточно.


lancomm   (2013-08-27 21:35:00) [9]

Спасибо за подсказку, но не совсем понятно следующее.
По вашему примеру если выбрана первая вкладка, то делать то-то, но я пока не понял следующего, в MainMenu как обработчики событий писать, если каждый пункт у меня свой обработчик в зависимости от вкладки.
Еще раз повторюсь, ни MainMenu ни PageControl не обязательны в проекте, может это как то еще можно реализовать получше.


lancomm   (2013-08-27 21:22:00) [10]

MainMenu не обязателен если это бред, хотелось бы на каждой вкладке PageControl иметь что-то типа сворачевоемого меню, дабы не захламлять кнопками форму.


Ega23   (2013-08-27 21:21:00) [11]



procedure TForm1.Button1Click(TObject)
begin
 if PageControl1.ActivePage = TabSheet1 then
 begin

 end
 else
  .....
end;



Ну или по PageControl1.ActivePage.Tag привязаться


Наверх

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