Консультация № 32402
29.12.2005, 20:54
0.00 руб.
0 7 7
Здравствуйте!
У меня Delphi 2005, создаю я форму и ставлю её значение Visible := False, но при запуске форму всё равно видно! Как сделать что бы формы не было видно??
И ещё вопрос: как скрыть приложение от диспетчера задач?

Обсуждение

Неизвестный
29.12.2005, 21:14
общий
это ответ
Здравствуйте, SuperXakep!
В обработчик FormCreate пропиши строку Application.ShowMainForm:=false;
В приложение пример того, как это делается в D7, в 2005 аналогично.

Приложение:
procedure TForm1.FormCreate(Sender: TObject);beginApplication.ShowMainForm:=false;end;
Неизвестный
29.12.2005, 21:53
общий
это ответ
Здравствуйте, SuperXakep!
Свойство Visible для форм не действует. Скрыть форму можно так:
<p align=‘left‘ style=‘color: #0066CC; border: #909090 1px dotted; background-color: #FAFCFE; padding:5px; border-left: #06600 3px solid; width: 97%; white-space:pre;‘>ShowWindow(Form1.Handle,SW_HIDE);</p>
А вот здесь описано, как скрыть программу от диспетчера задач:
<a href=http://www.delphi.int.ru/modules.php?name=questions&action=view&id=75>http://www.delphi.int.ru/modules.php?name=questions&action=view&id=75</a>.
давно
Мастер-Эксперт
425
4118
30.12.2005, 02:33
общий
это ответ
Здравствуйте, SuperXakep!
1) Visible:=False в OnCreate этого окна. Наверно оно определено у Вас как главное, поэтому по умолчанию создается видимым. Или вообще не создавать его при запуске. Меню Project - Options и там убрать окно из Auto-create forms. Только когда оно Вам будет нужно - не забудте его создать.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
30.12.2005, 06:18
общий
это ответ
Здорово, SuperXakep!
Твой супер-Delphi 2005 тут ни при чем: я сижу по delphi 5 и 6, там то же самое,
ведь форма - это и есть форма, а не батон какой-нибудь. Чтобы формы действительно не было видно, надо в самом проекте (файл *.dpr) после строчки Application.Initialize; написать
application.ShowMainForm:=false;
После этого твоя прога исчезнет с экрана и с панели задач. Закрыть можно либо из delphi (CTRL+F2), либо из Диспетчера задач.
По поводу самого диспетчера писать я тебе не буду, ответ найдешь на
http://delphiworld.narod.ru/base/app_xp_hide.html
Неизвестный
30.12.2005, 09:01
общий
это ответ
Здравствуйте, SuperXakep!

Попробуй так:

Form1.Hide;
Неизвестный
30.12.2005, 10:53
общий
это ответ
<i>Здравствуйте, <b>SuperXakep</b>!</i>
Про то, как спрятать форму Вам ответ уже дали. А вот про то, как спрятать приложение от диспетчера задач была статья на <a href=http://www.wasm.ru>wasm.ru</a>.
Учитывая, что почему-то этот сайт у меня сейчас не открывается (не знаю в чем дело, но не исключаю, что может сам где-то его блокирую), то прикрепляю Вам эту статью в файл.
Пример "как спрятать Winlogon.exe из процессов" лежит в архиве prochide.rar
Неизвестный
30.12.2005, 12:41
общий
это ответ
Здравствуйте, SuperXakep!
можно так

form1.left:=screen.width;

и, чтобы форму не засекли, когда поменяют разрешение экрана, напиши:
procedure WMDisplayChange(var message: TMessage); message WM_DISPLAYCHANGE;
...
procedure TForm1.WMDisplayChange(var message: TMessage);
begin
form1.left:=screen.width;
inherited;
end;

она уйдет за пределы экрана.
Но попробуй лучше написать консольное приложение.

А скрыть из диспетчера задач у меня есть пример только на C++
Удачи
Форма ответа