Урок 7 - Программа в треe с легкостьюDelphi , Технологии , KOL и MCKУрок 7 - Программа в треe с легкостью
Ведущий раздела KOL и MCK: Анатолий aka XVeL Полную версию библиотеки KOL и MCK можно скачать здесь. Часто можно услышать вопрос : как сделать так, чтобы программа была видна и в трее (рядом с часами) ? Конечно и на VCL это возможно сделать, но в KOL это реализуется очень просто. Для этого у него есть объект TTrayIcon. Воспользовавшись им, вы получите маленькую программу (а не VCL-монстра) с иконкой в трее. function NewTrayIcon( AParent: PControl; Icon: HIcon): PTrayIcon; Icon - это иконка, которая будет у нас грузится из ресурса созданного
например с помощь Image Editor, или BRCC32.EXE, ну или другой утилиты (я
очень рекомендую Resource
Builder).
Также для значка в трее мы должны создать Applet. Совсем не обязательно
чтобы этот Applet был родительским объектом окна. Лучше тысячи слов может быть наглядней только пример. Напишем утилиту облегчающую программирование на KOL programm KOLProcedure; uses Windows, Messages, Kol; {$R *.RES} var frmMain, Panel: pControl; Tray: pTrayIcon; Menu: pMenu; ////////////////////////////////////////////////////////// procedure DoTrayMouse(Dummy: Pointer; Sender: TObject; Message: Word); var P: TPoint; begin if Message = WM_LBUTTONUP then begin GetCursorPos(P); // узнаем позицию курсора Menu.PopUp(P.X,P.Y); // выводим в этой позиции меню end; end; ////////////////////////////////////////////////////////// procedure DoWorkMenu(Dummy: Pointer; Sender: pMenu; Item: Integer); begin case Item of 0: Text2Clipboard('Procedure NameProc ( Dummy : Pointer; Sender: PControl );') ; 1: Text2Clipboard('Procedure NameProc ( Sender: PObj; var Accept: Boolean );') ; 2: Text2Clipboard('Procedure NameProc ( Sender: PControl; var Mouse: TMouseEventData );') ; 3: Text2Clipboard('Procedure NameProc ( Sender: PControl; var Key: Longint; Shift: DWORD );') ; 4: Text2Clipboard('Procedure NameProc ( Sender: PControl; var Key: Char; Shift: DWORD );') ; 5: Text2Clipboard('Procedure NameProc ( Sender : PMenu; Item :Integer );') ; 6: Text2Clipboard('Function NameFunc ( var Msg: TMsg; var Rslt:Integer ): Boolean;') ; 7: Applet.Close; 8: MsgOK('8'); end; {case} end; ////////////////////////////////////////////////////////// begin Applet := NewApplet('KOL Procedure'); frmMain := NewForm(nil, 'KOL Procedure'); frmMain.Icon := LoadIcon(hInstance, 'MainIco'); frmMain.Hide; // прячем главное окно Panel := NewPanel(frmMain, esNone); Menu := NewMenu(Panel, 0, [ 'TOnEvent', 'TOnEventAccept', 'TOnEventAccept', 'TOnKey', 'TOnChar', 'TOnMenuItem', 'TOnMessage', '-', 'Exit' ], TOnMenuItem( MakeMethod( nil, @DoWorkMenu )) ); Tray := NewTrayIcon(Panel, frmMain.Icon); // иконка в трее - аналог иконки на форме Tray.OnMouse := TOnTrayIconMouse( Makemethod( nil, @DoTrayMouse )); Run(frmMain); end. В статье описывается способ создания программы в трее с использованием библиотеки KOL и MCK. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
|||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |