Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как добавить кнопочку в системное меню программы [D7, Win95/98, WinME, WinXP]


Ландграф Павел ©   (2004-02-07 18:32:00) 

это так где минимизировать, развернуть, закрыть


TUser   (2004-02-08 14:16:00) [1]

Правда, на api тоже тормоза.


TUser   (2004-02-08 11:04:00) [2]

JvaCaptionButton или JvCaptionButton. Но у этих компонентов обнаружилась такая фигня - после изменения чего-нибудь на форме с borderIcons = [] (с другими не проверял), а конкретно в RichEdit'е програмно меняется текст, начинает обрабатываться код где-то в дебрях библиотеки jedi. А прога, соотвественно, висит где-то секунд 10-40. Это плохо. Поэтому лучше делать через апи. Пример есть на delphi world (программа и интерфейс\заголовок форы).


SergP   (2004-02-08 10:27:00) [3]

Пользуюсь компонентом TCaptionButton. Если не найдешь сам, то пиши на мне на мыло, я пришлю...


Ландграф Павел   (2004-02-08 09:19:00) [4]

Я наверное не так выразился, я хочу добавить кнопку рядом с BorderIcons, типа как у программы zip


Sergey_Masloff   (2004-02-07 18:55:00) [5]

Например так

procedure TMyForm.FormCreate(Sender: TObject);
var
 M: HMenu;
begin
 M := GetSystemMenu(Handle, false);
 InsertMenu(M, 1, MF_BYPOSITION + MF_STRING,   SC_CALCULATOR,'Calculator');
end;


перед этим объявить например

SC_CALCULATOR     = $C000;


и наконец написать

procedure WMSysCommand(var M: TWMSysCommand); message WM_SYSCOMMAND;

procedure TMyForm.WMSysCommand(var M: TWMSysCommand);
begin
 inherited;
 case M.CmdType of
   SC_CALCULATOR:     winexec( PChar('calc.exe'), SW_SHOWNORMAL);
 end;
end;

конечно вместо winexec CreateProcess ;-)


Наверх

Титульная страница Поиск, карта сайта Написать письмо