Форум: "Основная";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];
ВнизКак определить из какого пункта меню запущена форма? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.052 c