Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление в меню 
:(
    Опции темы
NiJazz
  Дата 19.12.2004, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



Код

var menu: HMENU;

menu := GetSystemMenu(Handle, false);
AppendMenu(menu, MF_SEPARATOR, 0, '');
AppendMenu(menu, MF_STRING, 0, // Вот что здесь должно быть???
                    PChar('О программе...'));

Что нужно в качастве третьего аргумента во втором вызове AppendMenu?
В VC++ это константа из ресурсов, а в Delphi как?
PM MAIL   Вверх
NiJazz
Дата 20.12.2004, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



Ну может можно подобное сделать на VCL?


PM MAIL   Вверх
dm9
Дата 21.12.2004, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: 1
Всего: 137



Можно было заглянуть в DRKB smile

VCL -> Menu -> Добавляем пункты в системное меню Windows
PM MAIL ICQ   Вверх
NiJazz
Дата 22.12.2004, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



dm9
Там тот же код. И также не даёт то, что надо. smile
Код

Const ItemID = 99; // ID номер для пункта меню. Может быть любым  

у меня просто 0.
Я не сказал главного, сам виноват smile
Мне нужно, чтобы меню не просто пополнялось, а еще чтобы при нажатии на моё "О программе" открывалась соответствующая форма. В общем, нужно как-то связать это с диалогом.

PM MAIL   Вверх
dm9
Дата 22.12.2004, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: 1
Всего: 137



NiJazz, кто-то из нас чего-то не понял smile

Берём код из DRKB. В чистом виде переносим в приложение - и ВСЁ РАБОТАЕТ.

Код

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

Type  
  TForm1 = Class (TForm)  
    Procedure FormCreate (Sender : TObject);  
    Private {Private declarations}  
    Public  {Public declarations}  
    Procedure WinMsg (Var Msg : TMsg; Var Handled : Boolean);  
    Procedure DoWhatEver;  
 End;  

Var Form1 : TForm1;  

Implementation  
{$R *.DFM}  

Const ItemID = 99; // ID номер для пункта меню. Может быть любым
//Const ItemID = 0; - тоже работает.

Procedure Tform1.WinMsg (Var Msg : TMsg; Var Handled : Boolean);  
Begin  
    If Msg.Message = WM_SYSCOMMAND Then  
       If Msg.WParam = ItemID Then DoWhatEver;
End;  

Procedure TForm1.FormCreate (Sender : TObject);  
Begin  
    Application.OnMessage := WinMsg;
    AppendMenu (GetSystemMenu (Form1.Handle, False), MF_SEPARATOR, 0, '');
    AppendMenu (GetSystemMenu (Form1.Handle, False), MF_BYPOSITION, ItemID, '&My menu');  
    AppendMenu (GetSystemMenu (Application.Handle, False), MF_SEPARATOR, 0, '');  
    AppendMenu (GetSystemMenu (Application.Handle, False), MF_BYPOSITION, ItemID,'&My menu minimized');  
End;  

Procedure TForm1.DoWhatEver;  
Begin
  Close;
  //Или aboutForm.ShowModal или ещё что угодно
End;

End.


Это сообщение отредактировал(а) dm9 - 22.12.2004, 01:40
PM MAIL ICQ   Вверх
NiJazz
Дата 22.12.2004, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



dm9
Цитата
NiJazz, кто-то из нас чего-то не понял

Видимо, я. smile

PM MAIL   Вверх
NiJazz
Дата 22.12.2004, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


Профиль
Группа: Экс. модератор
Сообщений: 2286
Регистрация: 10.8.2003
Где: Москва

Репутация: 1
Всего: 23



Ну теперь уж понял, конечно. smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0482 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.