![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Программное создание меню [D6, Win2k]
easy © (2002-04-12 19:22:00)Подскажите, пожалуйста, как программно создать массивэлементов меню, чтобы потом можно было обращаться к каждому элементу по его индексу, типа, как в бейсике:
Private Sub s01_Click(Index As Integer)
End Sub
easy (2002-04-13 11:16:00) [1]Большое спасибо!!!
olookin (2002-04-13 09:32:00) [2]Например так:
//уже есть какое-то MainMenu например MainMenu1
//в котором есть пункт "Новые элементы меню"
//(и этот пнукт первый по счету)
//причем вставлять новые итемы хочется именно в этот пункт
//глобальный массив
var m: array of TMenuItem;
//новый итем вставляется при нажатии на кнопку
procedure TForm1.Button1Click(Sender: TObject);
begin
Setlength(m,Mainmenu1.Items.Items[0].Count+1);
m[Length(m)-1]:=TMenuitem.Create(Mainmenu1);
Mainmenu1.Items.Items[0].Add(m[Length(m)-1]);
m[Length(m)-1].Caption:="New item"+inttostr(Length(m));
m[Length(m)-1].Tag:=Length(m)-1;
//назначаем новому итему процедуру на событие OnClick
m[Length(m)-1].OnClick:=CommonActionClick;
end;
//а это общая процедура для всех новых итемов,
//в которой действие зависит (в данном случае) от
//значения тага итема, вызвавшего эту процедуру
procedure TForm1.CommonActionClick(Sender: TObject);
begin
showmessage(inttostr((sender as tmenuitem).Tag));
end;
Poirot (2002-04-12 21:02:00) [3]Зачем??????????????? Если нет, то есть другой способ!!!!