Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.07;
Скачать: 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 вся ветка

Текущий архив: 2005.08.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.033 c
14-1121179495
Кастусик
2005-07-12 18:44
2005.08.07
Хелп. При отладке в Дельфи виснет ХР


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


14-1121689486
Koala
2005-07-18 16:24
2005.08.07
Погиб Анатолий Дяченко - актер, телеведущий


3-1119982517
serguncho
2005-06-28 22:15
2005.08.07
Проблема с сохранением информации в Firebird


3-1120035526
cvg
2005-06-29 12:58
2005.08.07
Как в Desktop е вывести список таблиц?