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

Вниз

Динамическое формирование главного меню   Найти похожие ветки 

 
Kostafey ©   (2007-01-28 19:52) [0]

У меня на форме целая куча кнопок.
В ходе доработки программы меняется их количество, функциональное назначение.
Пункты главного меню должны выполнять те же функции.
Синхронизация кнопок и гл. меню начинает уже утомлять.

Вопрос: Как динамически создвавать главное меню так чтобы его вкладки имели те же Сaption, что и у кнопок,
а OnClick ссылался бы на OnClick кнопок ?


 
Джо ©   (2007-01-28 19:54) [1]

TActionList.


 
Kostafey ©   (2007-01-28 20:04) [2]

> TActionList

Ух ты! Я даже не знал про такой.
Ну хорошо, я записываю все действия в него, затем делаю на соответствующие его элементы ссылки у кнопок и у элементов главного меню.
Но при изменении количества элементов ActionList мне все равно придется кнопки и пункты меню вручную добавлять ?

Ну что ж все же лучше чем то, чем я до этого занимался. Спасибо !


 
Джо ©   (2007-01-28 20:08) [3]

> [2] Kostafey ©   (28.01.07 20:04)
> Но при изменении количества элементов ActionList мне все
> равно придется кнопки и пункты меню вручную добавлять ?

Есть еще возможность. У элементов TAcionList"а есть свойство Visible. Можно манипулировать им, тогда автоматически будут появляться/исчезать связанные с ними пункты меню и кнопки.
Плюс еще у него есть событие OnUpdate, очень удобно условия видимости/невидимости определенных элементов задавать в нем.


 
Kostafey ©   (2007-01-28 20:12) [4]

> [3] Джо ©   (28.01.07 20:08)

Понял, спасибо.

О...черт, сколько теперь всего переделывать-то !

КЛАВИАТУРУ В ЗУБЫ КОД - ПОД СНОС !!!


 
Kostafey ©   (2007-01-28 20:40) [5]

А для чего предназначены Категории (Categiries) этого TActionList ?


 
Джо ©   (2007-01-28 20:51) [6]

Для удобства :) я, например, создаю категории, аналогичные пунктам главного меня.


 
Kostafey ©   (2007-01-28 21:08) [7]

> [6] Джо ©   (28.01.07 20:51)

Понял, сделал так же.


 
Джо ©   (2007-01-29 00:02) [8]


>  [6] Джо ©   (28.01.07 20:51)
> пунктам главного меня.

Я ненамеренно, честное слово! :)


 
Германн ©   (2007-01-29 01:42) [9]


> Джо ©   (29.01.07 00:02) [8]
>
>
> >  [6] Джо ©   (28.01.07 20:51)
> > пунктам главного меня.
>
> Я ненамеренно, честное слово! :)
>

Когда ты победил в конкурсе по форуму "Для Начинающих"  ты тоже так говорил :)


 
Lex_! ©   (2007-01-29 03:51) [10]

Или я не так понял вопрос, или надо было что то такое ...
Меню соответственно кнопкам .. (TButton) при необходимости можно на что то переделать .. ну и нет разбиения на подменю .. это в принципе не трудно ..

> procedure TForm1.FormCreate(Sender: TObject);
> Var i:Integer;
>     mn:TMenuItem;
> begin
>   for i:=0 to Form1.ComponentCount-1 do
>   If Form1.Components[i] is TButton then
>     begin
>       mn:=TMenuItem.Create(MainMenu1);
>       mn.Caption:= TButton(FOrm1.Components[i]).Caption;
>
>       mn.OnClick:= TButton(Form1.Components[i]).OnClick;
>
>       MainMenu1.Items.Add(mn);
>     end;
> end;


 
Kostafey ©   (2007-01-29 20:32) [11]

> [10] Lex_! ©   (29.01.07 03:51)

Да, я так с начала и хотел.
Потом понял, что можно и проще, и, наверное, ПРАВИЛЬНЕЕ.
А кстати как создавать вложенные меню ?


 
Джо ©   (2007-01-30 03:36) [12]

> [11] Kostafey ©   (29.01.07 20:32)
> А кстати как создавать вложенные меню ?

Дык, TMenuItem.Add.


 
Lex_! ©   (2007-02-05 04:27) [13]


> Kostafey ©   (29.01.07 20:32) [11]

По другому это уже не динамическое формирование насколько я могу понять, а таки ручками ... а вопрос был про динамическое ...
Дело конечно ваше...
а субменю .. находишь меню пункт который должен быть подменю и добавляешь в него еще один пункт меню .. в итоге получается субменю ..



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

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

Наверх




Память: 0.5 MB
Время: 0.043 c
2-1170756305
dr_craigan
2007-02-06 13:05
2007.02.25
Запрет работы устройства


15-1170252125
Sergey13
2007-01-31 17:02
2007.02.25
Участников интернет-форума судят "за оскорбления властей"


15-1170245285
ВотЭтаДАкающий
2007-01-31 15:08
2007.02.25
Странно, а почему это работает? Skype+firewall


15-1170245394
Lik
2007-01-31 15:09
2007.02.25
выбор технологии CORBA, Web-service,MIDAS


15-1170409028
мжмж
2007-02-02 12:37
2007.02.25
Может не сюда, но все же..