Главная страница
    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.47 MB
Время: 0.043 c
2-1170422543
Room
2007-02-02 16:22
2007.02.25
Как правильно добавить?


3-1165211588
Yaros-hoi
2006-12-04 08:53
2007.02.25
Подключение к mdb через ADO на удаленной машине


2-1170682880
Legolas
2007-02-05 16:41
2007.02.25
Чтение файла


11-1149484092
Cawa
2006-06-05 09:08
2007.02.25
IBDataBase получение списка таблиц


2-1170756864
Cara
2007-02-06 13:14
2007.02.25
ADOConnection и Acceess





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский