Програмистам Delphi » Статьи Добавить в Избранное Написать админу
Программы: SoftForFree.com - бесплатные программы: Virtual Dub, WinRAR, eMule, FlashGet, WinDVD, Doom 3 и многое другое.
Стиль:
Подробнее о Memo Repair 4x4 «Сервисный Центр» от 08.12.2017 г.Memo Repair 4x4 «Сервисный Центр» от 08.12.2017 г.

Бесплатная программа для Сервисного Центра.
Кол-во мастерских и рабочих мест - без ограничений.
SMS и e-mail уведомления о выполнении заказов.

Скачать Сайт автора
Подробнее о Memo Fora 4x4 «Свой бизнес» от 09.01.2018 г.Memo Fora 4x4 «Свой бизнес» от 09.01.2018 г. Новейшая версия

Программа для торговли без ограничений кол-ва рабочих мест.
- Работа с он-лайн кассами Штрих-М и АТОЛ;
- Формат счет-фактуры и УПД от 01.10.2017 г.

Скачать Сайт автора

Программы


Рейтинги программ


Лучшие из лучших


Програмистам Delphi

Програмистам Delphi

20 Июня, 2008
Програмистам Delphi
Эта статья посвещена в первую очередь прятанью окон (из таскбара, и из диспечера задач), а также ответ на вопрос, как запретить кнопку "закрыть" в своём приложении.
Давайте разберём это на примере такой задачи: Создалим приложение, из которого можно выйти, только нажав на кнопку. Фишка в том, что когда юзер птается нажать на кнопку, она прыгает! (не из монитора, а на форме :).
Создаём новое приложение, тыкаем на форму кнопку, называем её "Выход". Щёлкаем два раза, и пишим такой код:

procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;

Close - это оператор, которым закрываем приложение. Ну в принципе Close можно и не писать - юзеру и так не удастся выйти.
Дальше - надо настроить форму, чтобы осталась только кнопка закрыть (да и то - "серая")
Для этого в Object Inspector щёлкаем на BorderIcons и ставим везде False, кроме SystemMenu. Дальше делаем кнопку "закрыть" "серой". Для этого в событиях формы кликаем OnShow и пишим:

procedure TForm1.FormShow(Sender: TObject);
var
sysmenu: HMenu;
begin
ShowWindow(Application.Handle,SW_HIDE);
end;

Написали? Дальше надо сделать "прыганье" кнопки. На событие кнопки OnMouseMove пишим:

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Button1.Left:=1*Random(Form1.Width-255);
Button1.Top:=1*Random(Form1.Height-80);
end;

Здесь мы применили "Генератор случайных чисел". Теперь можете проверить работу приложения.
Работает? Если вы хоть чуть-чуть знаете Delphi, я надеюсь вы сможете "Выйти", а если не знаете,
то нажмите Run>>Program Reset.
Но, скажете вы, приложение видно в таск-баре и темболее в диспетчере. Сейчас мы это исправим.
В событии формы OnShow допишите следующий код:

SysMenu:= GetSystemMenu(Handle, False);
Windows.EnableMenuItem(SysMenu,sc_CLOSE,MF_DISABLED or MF_GRAYED);

Написали? Ну вот, теперь всё в порядке. В итоге у вас должен получится приблизительно вот такой код:

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Timer1: TTimer;
procedure FormShow(Sender: TObject);
procedure Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
A: Byte;
implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
var
sysmenu: HMenu;
begin
SysMenu:= GetSystemMenu(Handle, False);
Windows.EnableMenuItem(SysMenu,sc_CLOSE,MF_DISABLED or MF_GRAYED);
ShowWindow(Application.Handle,SW_HIDE);
end;

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Button1.Left:=1*Random(Form1.Width-255);
Button1.Top:=1*Random(Form1.Height-80);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;

end;

Теперь пару слов о диспетчере задач. Хотя на вкладке "приложения" нашу программу видно не будет, на вкладке
"процессы" его всё равно можно увидить. Но это решается давольно просто: Дайте вашей программе какое-либо невызыающее
имя (например internat32) и не одному нормальному пользователя не придет в голову, что это ваша программа).
Ну чтож, программируйте на здоровье. Если будут вопроссы, или нужна программа - пишите.
Раздел: Другое
Автор статьи: Бак
Просмотров: 2245
Комментарии



Ваш комментарий к статье:

Комментарии публикуются после проверки администратором.
При добавлении отрицательного комментария читайте соглашение об использовании.
Мы не публикуем: сообщения, не относящиеся к статье: "Програмистам Delphi".

Ваше имя: E-mail:
Оценка: нет 1 2 3 4 5
 *Cообщение
(30-1000 зн.):

 
          
          
  

* * *

Другие статьи

Handy Backup 7.9 – увеличение скорости бэкапа баз 1С Handy Backup 7.9 – увеличение скорости бэкапа баз 1С
Решения 1С для управления предприятием пользуются большой популярностью в России и странах СНГ. Поэтому необходимость резервного копирования 1С (файловой и SQL-версий) хорошо известна системным администраторам и программистам 1С....
Раздел: Софт
Handy Backup 7.9 – обновлённый плагин бэкапа Яндекс Диск, работа с облаками и поддержка Ubuntu 16.04 Handy Backup 7.9 – обновлённый плагин бэкапа Яндекс Диск, работа с облаками и поддержка Ubuntu 16.04
Онлайн бэкап данных на облачные сервисы становится всё популярнее среди пользователей и администраторов....
Раздел: Софт
Новая версия Handy Backup полностью совместима с Linux Новая версия Handy Backup полностью совместима с Linux
ОС Linux завоёвывает всё большую популярность в мире, как у пользователей настольных ПК, так и у профессионалов, использующих мощные рабочие станции....
Раздел: Софт
Выставка MetrolExpo-2017: ООО «Новософт развитие» получает золотую медаль выставки и диплом форума Выставка MetrolExpo-2017: ООО «Новософт развитие» получает золотую медаль выставки и диплом форума
17 мая 2017 года в Москве прошёл XIII Московский международный инновационный форум «Точные измерения - основа качества и безопасности»....
Раздел: Софт
Компания Новософт провела семинар для пользователей ПО АСОМИ в Москве Компания Новософт провела семинар для пользователей ПО АСОМИ в Москве
С 11 по 12 апреля 2017 г. на базе Московской Высшей школы агробизнеса (РГАУ МСХА им. К. А. Тимирязева) состоялся информационно-консультационный семинар для пользователей ПО АСОМИ, организованный компанией «Новософт»....
Раздел: Софт

[Все разделы]  [Добавить статью]


Рекомендуем

ПиМаркет 2017 - учёт любых товаров 8.20

Удобная программа для магазина: печать ценников и чеков, данные о наличии товара, продажах, недостачах и многое другое. Любые товары. Онлайн-кассы.

Скачать Скриншоты

• • •

Управление отелем “Гость” 18.01.12 Новейшая версия

Автоматизация отеля. Связь с программой Smart Kassir v.6.1 для On-Line касс (54-ФЗ), с программой ФМС.Контур, с замковыми системами ORBITA, ADEL.

Скачать Скриншоты

• • •

ПиМаркет Фитнес Клуб 8.16

Для фитнес-клуба, спортзала, оздоровительного центра.
Продажа абонементов и клубных карт: на месяц, дневных, выходных, любых. Посещения по картам.

Скачать Скриншоты

• • •

HP Deskjet D1360 Printer Driver 7.0.3

Драйвер для принтеров HP Deskjet D1311/D1320/D1330/D1341/D1360/D2330/ D2360/D4160/D4163... для Windows 2000/XP/Vista/Win7/Win8 (32-64bit), Linux, Mac.

Скачать Скриншоты

• • •

ACDSee 20

Полнофункциональная коммерческая программа для просмотра, обработки и создания коллекций изображений, разработанная компанией ACD Systems.

Скачать Скриншоты



Наша кнопка


Программы: SoftForFree.com - тысячи бесплатных программ, 100 лучших программ рунета, статьи, новости софта и многое другое.

Код нашей кнопки:

Новости Hitech



Полезные программы

Подробнее о ICQ 7.2 RusICQ 7.2 Rus

ICQ - это клиентская программа, которая предлагает неограниченные возможности для общения.

Скачать Скриншоты

Подробнее о Canon i-SENSYS MF3220 Drivers 3.00Canon i-SENSYS MF3220 Drivers 3.00

Драйверы многофункционального принтера i-SENSYS MF3220 японской компании Canon для MS Windows 2k-8.1.

Скачать Скриншоты

Подробнее о FLY 2000 TV 2.38 RC2FLY 2000 TV 2.38 RC2

Программа для компьютерных TV тюнеров FLY 2000 TV, которые построены на чипах Philips SAA7133, SAA7130, SAA7135 и SAA7134 .

Скачать Скриншоты




Вверх страницы

 Программы • Статьи • Реклама на сайте •  RSS 2.0 RSS • Контакты • Соглашение об использовании • Политика конфидециальности

© 2003-2018, SoftForFree.com. Использование материалов сайта разрешается только по договоренности с автором.
Автор проекта не несет ответственности за содержание рекламных материалов и качество программного обеспечения.

Наш проект являтся архивом бесплатных и коммерческих программ, которые размещаются авторами и производителями ПО, либо их официальными представителями. Мы не распространяем нелицензионное ПО, креки, серийные номера и любую другую информацию, запрещенную законодательством РФ.