Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.06.29;
Скачать: CL | DM;

Вниз

MainMenu и PageControl   Найти похожие ветки 

 
lancomm ©   (2013-08-27 21:06) [0]

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


 
Ega23 ©   (2013-08-27 21:21) [1]



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

 end
 else
  .....
end;



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


 
lancomm ©   (2013-08-27 21:22) [2]

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


 
lancomm ©   (2013-08-27 21:35) [3]

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


 
ProgRAMmer Dimonych ©   (2013-08-27 21:37) [4]

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

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

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


 
ProgRAMmer Dimonych ©   (2013-08-27 21:40) [5]

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

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


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


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


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

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


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

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


 
lancomm ©   (2013-08-27 22:03) [8]

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


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

TPageControl.OnChage


 
lancomm ©   (2013-08-27 23:04) [10]

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


 
lancomm ©   (2013-08-27 23:10) [11]

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



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

Текущий архив: 2014.06.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.007 c
2-1377673167
санек
2013-08-28 10:59
2014.06.29
Кодировка dbf файла


15-1386952352
Kipan
2013-12-13 20:32
2014.06.29
GDI


2-1377509988
Viktor
2013-08-26 13:39
2014.06.29
ssShift + vk_numpad1


2-1365433789
Максим
2013-04-08 19:09
2014.06.29
Создаеие бд MS access во время выполнения без ОБЯЗАТЕЛЬНЫХ ПОЛЕЙ


15-1386793811
Юрий
2013-12-12 00:30
2014.06.29
С днем рождения ! 12 декабря 2013 четверг