![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вставить сепаратор в mainmenu? [D6, WinXP]
DontFire © (2007-11-09 14:10:00)Привет всем!
Как вставить сепаратор(линию) в mainmenu формы (не системное), например, в её первое подменю?
API функциями пытался сделать-не получается, если можно, покажите рабочий пример.
Спасибо.
Leonid Troyanovsky (2007-11-09 17:04:00) [1]
> DontFire (09.11.07 15:19) [6]
> Один и тот же код: в OnCreate(Form1) не работает; в onClick(Button1)
> - работает.
А как у нас, скажем, OldCreateOrder?
> n1:Tmenuitem [первое сабменю в мейнменю]
За это ли, старик Яков, ты проливал кровь в сырых казематах,
чтобы пункты в главное меню вставляли через API?
--
Regards, LVT.
DontFire (2007-11-09 15:19:00) [2]>>а с чего ты взял что он не срабатывал на OnCreate формы? скорее всего ты handle не тот указываешь.
Один и тот же код: в OnCreate(Form1) не работает; в onClick(Button1) - работает.
const SC_MyMenuItem = WM_USER + 1;
...
AppendMenu(n1.handle, MF_SEPARATOR, 0, '');
AppendMenu(n1.handle, MF_STRING,SC_MyMenuItem, 'Новый пункт в меню');
n1:Tmenuitem [первое сабменю в мейнменю]
Сергей М. (2007-11-09 15:04:00) [3]
> Куда ж вывоз тогда поместить чтобы он выполнился 1 раз при
> запуске программы?
const
WM_APPEND_MENU_SEPARATOR = WM_USER + 100;
type
TMyForm = class(TForm)
..
private
..
procedure MsgAddMnuSeparator(var Message: TMessage); message WM_APPEND_MENU_SEPARATOR;
..
end;
..
procedure TMyForm.MsgAddMnuSeparator;
begin
.. здесь и добавляй разделитель ..
end;
В обработчике OnCreate:
PostMessage(Handle, WM_APPEND_MENU_SEPARATOR, 0, 0);
Palladin (2007-11-09 14:58:00) [4]а с чего ты взял что он не срабатывал на OnCreate формы? скорее всего ты handle не тот указываешь
DontFire (2007-11-09 14:56:00) [5]Большое спасибо, "-" удобный вариант.
Выснил, что AppendMenu не срабатывал из OnCreate формы и из dpr-файла перед Application.Run (причём сама функция не возвращала ошибку). Заработал в onClick кнопки. Куда ж вывоз тогда поместить чтобы он выполнился 1 раз при запуске программы?
Palladin (2007-11-09 14:13:00) [6]если не API функциями то просто '-' в Caption пишешь и все
Palladin (2007-11-09 14:12:00) [7]AppendMenu(<Handle>,MF_SEPARATOR,0,'');