![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отключение системного меню [D7]
Гена © (2005-09-06 11:09:00)Поиск не работает - поэтому задам здесь.
Как отключить появление системного меню у формы (когда правой кнопкой по заголоку формы)?
Юрий Зотов (2005-09-07 01:32:00) [1]procedure TForm1.FormCreate(Sender: TObject);
var
M: HMENU;
begin
M := GetSystemMenu(Handle, False);
while DeleteMenu(M, 0, MF_BYPOSITION) do
end;
Турист (2005-09-06 23:04:00) [2]>Гена (06.09.05 11:09)
TForm.BorderIcons.biSystemMenu=False ?
begin...end (2005-09-06 16:37:00) [3]> Гена (06.09.05 11:09)
Насколько я знаю, вместе с меню отключатся и кнопки (Свернуть/Развернуть/Закрыть).
Big Joe (2005-09-06 14:03:00) [4]Если в HNDL указать Application.Handle, то меню добавиться к меню
при клике правой кнопокой мыши на панели задач.
Если Form1.Handle (или любая ваша форма и даже не ваша),
то к системному меню окна клик на иконке окна (слева сверху в углу).
procedure ExtendSysMenu(HNDL: THandle; AddMenu: TMainMenu);
var
i: integer;
begin
if (AddMenu = nil) or (HNDL = 0) then
Exit; //Проверяем ссылку на объект
AppendMenu(GetSystemMenu(HNDL, False),
MF_SEPARATOR, 0, ''); //Добавляем разделитель
with AddMenu do
for i := 0 to Items.Count - 1 do
AppendMenu(GetSystemMenu(HNDL, False),
MF_POPUP, Items[i].Handle,
PChar(Items[i].Caption));
end;
Пример использования:
//На форму кидаем MainMenu (компоненту)
procedure TForm1.FormCreate(Sender: TObject);
begin
ExtendSysMenu(Application.Handle, MainMenu1);
ExtendSysMenu(Form1.Handle, MainMenu1);
end;