Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.02.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.037 c
15-1170251680
Ученик чародея
2007-01-31 16:54
2007.02.25
PHP vs Delphi.


1-1167678957
Rembo
2007-01-01 22:15
2007.02.25
FindComponent и фрейм: как?


15-1170369350
SerJaNT
2007-02-02 01:35
2007.02.25
Зацените!


2-1170667972
uncle benc
2007-02-05 12:32
2007.02.25
Invalid pointer operation


15-1170408815
pasha_golub
2007-02-02 12:33
2007.02.25
PPP & Multilink





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский