Вниз
Скачать: CL | DM;

Как определить из какого пункта меню запущена форма?   Найти похожие ветки 

← →
Shooroop   (2005-07-19 17:01) [0]

Мастера! Как мне в приведенном примере отобразить в frmData01.Caption Caption пункта меню, из которого она была вызвана?
Т.е. при клике на Items[0].Items[0][0] отобразить "Линия №14",
на Items[0].Items[0][1] - "Линия №15".
Меню необходимо создавать в рантайме. Спасибо.

procedure AddMenuItem(Owner: TMenuItem; Caption: String);
 var Item: TMenuItem;
begin
 Item := TMenuItem.Create(Owner);
 Item.Caption := Caption;
 Owner.Add(Item);
end;

procedure TfrmMain.ShowData01Form(Sender: TObject);
begin
 frmData01 := TfrmData01.Create(Application);
 // вот здесь frmData01.Caption := ???
 frmData01.ShowModal;
 frmData01.Destroy;
end;

procedure TfrmMain.CloseForm(Sender: TObject);
begin
 Close;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
 var mmnMain: TMainMenu;
begin
 mmnMain := TMainMenu.Create(frmMain);
 with mmnMain do
 begin
   AddMenuItem(Items,"&Данные");
   AddMenuItem(Items,"&Отчеты");
   AddMenuItem(Items,"&Выход");
   AddMenuItem(Items[0],"Линии");
   AddMenuItem(Items[0],"Рабочие места");
   AddMenuItem(Items[0].Items[0],"Линия №14");
   AddMenuItem(Items[0].Items[0],"Линия №15");
   Items[3].OnClick := CloseForm;
   Items[0].Items[0][0].OnClick := ShowData01Form;
   Items[0].Items[0][1].OnClick := ShowData01Form;
 end;
end;


← →
Юрий Зотов ©   (2005-07-19 17:03) [1]

frmData01.Caption := (Sender as TMenuItem).Caption;


← →
Плохиш ©   (2005-07-19 17:05) [2]


> ShowData01Form(Sender: TObject);

- есть нажатый пункт меню. Учите теорию для начала.


← →
Shooroop   (2005-07-19 17:20) [3]

2Юрий Зотов:
Благодарю, всё работает, только возникает странная ситуация в Caption формы появляется амперсанд: "Линия №1&4".
2Плохиш:
Спасибо за совет, теорией стараюсь не пренебрегать, но практического опыта маловато, сразу не сообразил.


← →
Юрий Зотов ©   (2005-07-19 17:29) [4]

> Shooroop   (19.07.05 17:20) [3]

Раз туда автоматически добавляется амперсанд (AutoHotkeys=True), так он там и есть - что ж ему не появляться-то? Он и появляется, никаких чудес.

А вот так он убирается:
frmData01.Caption := StripHotkey((Sender as TMenuItem).Caption);


← →
Anatoly Podgoretsky ©   (2005-07-19 19:55) [5]

TMenuItem.AutoHotkeys


← →
Shooroop   (2005-07-20 12:38) [6]

Благодарю, теперь все понятно.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
14-1121491225
cyborg
2005-07-16 09:20
2005.08.07
Проапгредился :)


14-1121232587
qwe
2005-07-13 09:29
2005.08.07
Письма, письма, писма, ........?!!!???


14-1121537177
Kerk
2005-07-16 22:06
2005.08.07
Рассказывание старых анекдотов в метро...


4-1116915457
m52
2005-05-24 10:17
2005.08.07
Запуск программы как службы. Очень нужна помощь.


14-1121727655
kaif
2005-07-19 03:00
2005.08.07
А у нас есть такая организация? В США - есть.




   Наверх