Форум: "Начинающим";
Текущий архив: 2014.06.29;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.002 c