![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не знаю как программно создать меню
rex © (2002-08-02 08:23:00)Не бейте сильно, но не знаю :(
Есть на форме MainMenu и мне необходимо программно создавать в нем пункты (подпункты) и так, чтобы на клик срабатывало собственное событие ? Подскажите пожалуйста, в форумах ничего не нашёл.
rex (2002-08-03 20:34:00) [1]Спасибо !
Старый паскалист (2002-08-03 20:12:00) [2]В обработчик нажатия:
MenuItem.OnClick := Form1OrSomethingElse.MenuItemClick;
procedure TForm1OrSomethingElse.MenuItemClick(Sender: TObject);
begin
(Sender as TMenuItem) - это тот пункт меню, к-рый тебе нужен
end;
rex (2002-08-03 20:01:00) [3]2Старый паскалист
А куда это вставить, извините за вопрос ?
Старый паскалист (2002-08-03 19:52:00) [4]Sender as TMenuItem
rex (2002-08-03 19:46:00) [5]Ну вот, создавать меню вроде получается.
Но не совсем понятно с событиями. Как узнать по какому пункту кликнули ???
Smok_er (2002-08-02 12:40:00) [6]
> iva © (02.08.02 09:43)
> Мешает точка в конце ссылки. Убери и попадешь.
Сморозил. просто щелкнул не глядя на ссылку :). Кстати, как создавать понятно. А вот как удалить? Пример желателен для ToolBar2000
777 (2002-08-02 12:14:00) [7]чё это с тегами?
MainMenu1.Items[0].Add(NewItem("NewMenuItem",0,false,true,MenuItemClick,0,"NewMenuItem"+IntToStr(MainMenu1.Items.Count)));
777 (2002-08-02 12:12:00) [8]Можно просто сделать так:
CODE>MainMenu1.Items[0].Add(NewItem("NewMenuItem",0,false,true,MenuItemClick,0,"NewMenuItem"+IntToStr(MainMenu1.Items.Count)));<
rex (2002-08-02 11:58:00) [9]Всем спасибо. Посмотрю что получится !!!
Vitaly (2002-08-02 10:57:00) [10]Посмотри и подделай:
Menu: TMainMenu;
...
BuildMenu( menu.Items, "Menu" );
...
procedure TfMain.BuildMenu(m: TMenuItem; sec: string);
var i: integer;
mi: TMenuItem;
mc: string;
begin
i := 1;
while true do begin
mc := ini.ReadString(sec, intToStr(i), "");
if mc <> "" then begin
mi := TMenuItem.Create(self);
mi.Caption := mc;
m.Add(mi);
mc := sec + "." + mc;
if ini.ReadString(mc, "tip", "") = "submenu"
then BuildMenu(mi, mc)
else mi.OnClick := ClickMenu;
inc(i);
end
else break;
end;
end;
iva (2002-08-02 09:43:00) [11]Мешает точка в конце ссылки. Убери и попадешь.
Smok_er (2002-08-02 09:37:00) [12]Файл не найден :(
iva (2002-08-02 08:39:00) [13]Попробуй почитать http://www.delphikingdom.com/helloworld/runtime_comp.htm.