Олимпиада

В России появились б...

Четверг, 30 Август 2012
Компания HEC/COMPUCASE Europe GmbH объявляет о начале продаж в России блоков питания марки COUGAR серии CMX. Новые БП мощные и тихие, с модульным подключением кабелей. Линейка состоит из 4 моделей мощностью 550,...
Читать полностью

ЧП добровольно выпла...

Вторник, 28 Август 2012
Днепропетровска компания "Безопасность, охрана, гарантия", предоставляющая услуги по охране, использовала 14 компьютеров с установленными, на каждом из них, пиратскими копиями операционных систем и офисных приложений Microsoft. Согласно действующего законодательства, за хранение...
Читать полностью

«SMS XL» от «Киевста...

Суббота, 25 Август 2012
До 15 июня 2011 года абоненты предоплаченной связи Киевстар могут воспользоваться новым акционным предложением SMS XL с включенным объемом SMS для отправки на номера сети Киевстар и DJUICE. Киевстар вводит новое акционное...
Читать полностью

Вредоносные программ...

Четверг, 23 Август 2012
Согласно данным мониторинга, абсолютным лидером по количеству заражений в Интернете в этом месяце стал размещаемый на порно-сайтах скрипт из семейства FakeUpdate - Trojan.JS.FakeUpdate.bp. Он предлагает скачать видео соответствующего содержания, однако для...
Читать полностью

Samsung анонсировала...

Понедельник, 20 Август 2012
Компания Samsung Mobile Display анонсировала выход семидюймовых дисплеев, изготовленных по ее технологии Super-AMOLED, пишет ресурс OLED-Display.net со ссылкой на корейское издание Etnews Новые дисплеи имеют разрешение 1200 на 600 пикселей.
Календарь
< Октябрь 2007 >
П В С Ч П С В
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 20 21
22 23 24 25 26 27 28
29 30 31        
Анонсы новостей

Современные возможности программирования и качественный ламинат в интернет магазине

На сегодня в интернете есть немало сайтов, на которых можно приобрести отличные строительные материалы для отделочных работ.

Читать полностью
Яндекс.Метрика


Как добавить свою иконку в панель уведомлений или как свернуть окно в панель уведомлений?

altРисунок 1 – проект Deamolit, добавление иконки в панель уведомлений.
Данный проект иллюстрирует как можно добавить свою иконку в панель уведомления и как создавать *.exe файл который носит в себе свои ресурсы, к примеру, рисунки.
Для добавления иконки в панель уведомлений вам необходимо создать объект класса TCustomTrayIcon. В проекте создан элемент
notify_icon:TCustomTrayIcon;
Что бы добавить свою иконку в панель уведомлений вам необходимо иметь саму иконку. Как иконки и изображения создаются самим *.exe файлом из своих ресурсов будет рассмотрено ниже.
Программа содержит всплывающее меню, которое настроено на иконку на панели уведомления и при сворачивании окна программа становиться невидимой, притом что иконка все еще на месте и может обрабатывать свои события.
Ресурсы программы создаются в скрытой папке и уничтожаются при закрытий программы.
Скрытой созданную при запуске программы папку делает команда
FileSetAttr(SourceDir,faHidden);
Здесь SourceDir – путь к папке. А второй аргумент может принимать комбинации значений
faReadOnly //только для чтения
faHidden //скрытые файлы
faSysFile //системные файлы
faVolumeID //Volume ID файлы
faDirectory //файлы директории (они нужной самой системе для определения папки)
faArchive //архивный файл
faAnyFile //просто файл
к примеру FileSetAttr(SourceDir,faHidden + faSysFile);//теперь это скрытая системная папка
Ресурсы приложения определяться в файле с расширением *.RC .
К примеру, файл Ico.rc
ICO EXT exit.ico
ICO TUN tune.ico
ICO DEA deamolit.ico
Эти файлы надо добавить в проект Project>>Add to project и откомпелировать, тогда создаються файлы *.RES . В принцепе можно и использовать сами эти *.RES файлы но тогда надо удалить *.RC файлы и прописаить *.RES файлы.
implementation
{$R *.dfm}//это по умолчанию здесь
{$R source\main.res source\main.rc}// а вот это уже наше, ток путь укажите правильно!
{$R source\ci.res source\copy.ico}// в разных версиях Delphi *.RES файлы
{$R source\help.res source\help.pdf}// создаються в разных директориях! Сначала найдите их!

Здесь три файла иконки имеют разные определители но все относиться к ICO. Хотя следует отметить что вы можете произвольно относить к каким либо отношениям здесь только нужно помнить что эти файлы вынимаются из ресурсов по этим меткам.
Res := TResourceStream.Create(Hinstance, 'IMG', 'CAT');
Res.SavetoFile('hidden source\cat.jpg');
Вот теперь можно с этими файлами баловаться.
A более подробно о работе с папками и файлами вы можете узнать по ссылке.
Исходник программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, JPEG, folders, StdCtrls, ImgList, Menus;
type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
ImageList1: TImageList;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure N1Click(Sender: TObject);
procedure N3Click(Sender: TObject);
private
{ Private declarations }
//процедура обработчик щелчка по иконке на панели
procedure ShowAPL(Sender: TObject);
//процедура обработчик системной команды на сворачивание окна
procedure WMSysCommand(var Msg: TWMSysCommand);message WM_SYSCOMMAND;
public
{ Public declarations }
end;
var
Form1: TForm1;
path:string;
SourceDir:string;
notify_icon:TCustomTrayIcon;
implementation
{$R *.dfm}
//видемо не видемо
procedure TForm1.ShowAPL(Sender: TObject);
begin
form1.visible:=not(form1.visible);
end;
//если система посылает команду на сворачивание
procedure TForm1.WMSysCommand;
begin
if Msg.CmdType = SC_MINIMIZE
then form1.Visible:=false else inherited;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//удалить временную папку программы
RemoveDirs(SourceDir);
end;
procedure TForm1.FormCreate(Sender: TObject);
var Res: TResourceStream;
ico:TIcon;
begin
//определение от куда запущено программа
path:=ExtractFilePath(Application.EXEName);
//путь к папке со скрытыми ресурсами
SourceDir:=Path+'hidden source';
//если папка уже существует, удалить ее
if DirectoryExists(SourceDir) then RemoveDirs(SourceDir);
//создать папку
if NOT CreateDir(SourceDir) then
begin
ShowMessage('Не возможно создать ресурсы программы!' + SourceDir);
close;
end;
//скрыть папку
FileSetAttr(SourceDir,faHidden);
//Вынимаем ресурсы и сохраняем их в скрытой папке
Res := TResourceStream.Create(Hinstance, 'IMG', 'CAT');
Res.SavetoFile('hidden source\cat.jpg');//сохраняем файл
Res := TResourceStream.Create(Hinstance, 'ICO', 'EXT');
Res.SavetoFile('hidden source\exit.ico');
Res := TResourceStream.Create(Hinstance, 'ICO', 'TUN');
Res.SavetoFile('hidden source\tune.ico');
Res := TResourceStream.Create(Hinstance, 'ICO', 'DEA');
Res.SavetoFile('hidden source\deamolit.ico');
Res := TResourceStream.Create(Hinstance, 'HLP', 'MAI');
Res.SavetoFile('help.pdf');
//загрузить кота
image1.Proportional:=true;
image1.Picture.LoadFromFile(path+'hidden source\cat.jpg');
//создать иконку
Ico := TIcon.Create;
//загрузить в нее информацию
Ico.LoadFromFile(Path+'hidden source\tune.ico');
//присвоить ее списку изображений
ImageList1.AddIcon(Ico);
//дать индекс изображения всплывающему меню
N1.ImageIndex:=0;
Ico.LoadFromFile(Path+'hidden source\exit.ico');
ImageList1.AddIcon(Ico);
N3.ImageIndex:=1;
Ico.LoadFromFile(Path+'hidden source\deamolit.ico');
ImageList1.AddIcon(Ico);
//прицепить к вплывающему меню список изображений
Popupmenu1.Images:=Imagelist1;
//создать иконку на панели уведомлений
notify_icon:=TCustomTrayIcon.Create(form1);
//подсказка иконки
notify_icon.Hint:='Deamolit';
//прицепить к иконке список изображений
notify_icon.Icons:=ImageList1;
//номер изображения
notify_icon.IconIndex:=0;
//обновить
notify_icon.Refresh;
//сделать иконку видемой
notify_icon.Visible:=true;
//anti artefact т.е. танцы с бубнами
notify_icon.IconIndex:=2;
notify_icon.Refresh;
notify_icon.Visible:=true;
//прицепить всплывающее меню к иконке
notify_icon.PopupMenu:=PopupMenu1;
//обработчик двойного щелчка по иконке процедура ShowAPL
notify_icon.OnDblClick:=ShowAPL;
end;
//показать
procedure TForm1.N1Click(Sender: TObject);
begin
form1.Visible:=true;
end;
//закрыть
procedure TForm1.N3Click(Sender: TObject);
begin
form1.Close;
end;
end.
К стати нажав на единственную кнопку на окне можно получить файл help.pdf
 
Новости

Современные возможно...

Суббота, 28 Ноябрь 2015
Современные возможности программирования и качественный ламинат в интернет магазине На сегодня в интернете есть немало сайтов, на которых можно приобрести отличные строительные материалы для отделочных работ.

Сетевые экраны: реко...

Пятница, 27 Ноябрь 2015
сетевые экраныНаиболее важным средством защиты сетей являются сетевые экраны, называемые межсетевыми или брандмауэрами. Главная задача сетевого экрана - экранировать сетевой трафик для недопущения несанкционированного доступа между компьютерными сетями.

Язык программировани...

Суббота, 10 Октябрь 2015
Язык программирования В современном мире существует множество профессий, среди которых профессия программиста довольно таки востребована, потому как все в мире компьютеризировано и автоматизировано, и надо создавать дополнительные программы для слаженной работы многофункциональных устройств.

Программирование на...

Среда, 24 Июнь 2015
Программирование на Delphi Благодаря созданию компьютера у многих людей появились новые профессии, связанные с новейшими технологиями. Однако вместе с этим фактом ряд стабильно существующих профессий многие годы просто стали не нужны, и начался процесс...
Читать полностью

Язык програмирования

Суббота, 06 Июнь 2015
Язык программирования В этой статье мы поговорим об изучении языка программирования Delphi , довольно сложно выучить его, прочитав одну статью, а точнее невозможно. Также и одна книга не решит проблемы с языком, вам...
Читать полностью
Опрос
На каком языке Вы программируете?
 
Яндекс.Метрика