Delphi свернуть окно в панель задач

Сворачивание дочерних окон в панель задач

Доброго времени суток. Столкнулся с проблемой по сворачиванию окон. Объясните пожалуйста как сделать правильно, что бы не было стыдно.
Есть 3 формы:
1. Форма входа (BorderStyle-bsNone). Кнопка сворачивания и закрытия реализована по нажатию на image (wsMinimized и close). Данная форма является главной. Сворачивается как положено в панель задач. По кнопке зарегистрироваться (форма 2), главная форма (hide, а форма 2 show). После hide исчезает значок из панели задач. Как скрыть эту форму, но оставить значок?
2. Форма регистрации (BorderStyle-bsNone). Сворачивание и закрытие, сделано по аналогии с формой входа. Сворачивание происходит в скрытую форму. И программа теряется
3. Форма программы, отрабатывает как и форма регистрации.

Порывшись в интернете, нашел предложение комментировать строку «Application.MainFormOnTaskbar := True;» . На первый взгляд работает как надо(после скрытия главной формы, программа остается в панели задач), но сворачивание дочерних форм принимает такой вид:

Возможно стоит каждую форму делать главной по мере необходимости?

Минимизация(сворачивание) форм в панель задач
В проекте используется около 20 форм. Что бы форма, не являющаяся главной, при минимизации.

Панель задач и большая часть окон не реагируют ни на мышь, ни на сенсорную панель
Собственно, проблема описана в заголовке. Раньше такого не было, время от времени реагирует кстати.

Сворачивание базы в панель задач
Всем привет. Подскажите как мне сворачивать базу в панель задач. делаю DoCmd.Minimize.

Сворачивание приложения в панель задач (Windows)
Уважаемые знатоки, помогите найти решение проблемы, хочу программно вызвать кнопку свернуть, метод.

Не надо главную форму проекта делать Hide. От слова совсем не надо ! Для создания форм авторизации, которые должны появляться первыми и исчезать после использования, есть нормальные грамотные решения, а не методом «тупо в лоб» — назначить главной а потом сделать Hide.

Источник

Как свернуть прогу в трей?

Свернуть прогу в трей
нашел компонент TextTrayIcon не пойму как с ним работать. А может кто другой способ знает для того.

Как свернуть две формы в трей?
как свернуть две формы в треей при помощи cooltrayicon Добавлено через 2 минуты одна форма.

Свернуть в трей
Использую библиотеку Jedi — JvTrayIcon1 Activate = true; TvRestoreDbClick = True; Иконка после.

Свернуть приложение в трей
Подскажите пожалуйста, как сделать так, чтобы при щелчке на кнопку программа сворачивалась в трей.

Решение

Как добавить значок программы в трей?

Для работы со значками в трее используется функция Shell_NotifyIcon, объявленная в модуле ShellApi.

Объявим следующую процедруру:
Параметры к ней такие: n — номер операции ( 1 — добавить, 2 — удалить, 3 — заменить) и Icon — сама иконка с которой будет делаться эта операция

Читайте также:  Приборная панель дастера значки рено дастер

Теперь, нам нужно отловить минимизацию приложения, для того, чтобы заменить стандартное действие Windows на «свёртывание в трей». Объявляем в секции protected процедуру

Итак, теперь наш обработчик ловит сообщение о минимизации и прячет нашу прогу в трей. Однако ловит не всегда. Попробуем, например, выбрать из системного меню команду Minimize или нажать на кнопку окна в панели задач, и что же? Не срабатывает!
Поэтому, нам нужно ещё переопределить обработчик onMinimize класса TApplication:

и не забудем присвоить эту процедуру:

Теперь поясню как работает. Когда приложение минимизируется, но эта минимизация не перехватывается нашим обработчиком WM_SYSCOMMAND, мы перехватываем минимизацию в процедуре OnMinimizeProc и принудительно передаём сообщение о минимизации нашей форме, где оно и будет успешно отловлено нашим обработчиком сообщения WM_SYSCOMMAND, благодаря которому прога и «сворачивается» успешно в трей и в этом случае.

Теперь нам нужно, чтобы значок в трее мог реагировать на манипуляции с ним. Если Вы внимательно посмотрите процедру Ic(), то Вы увидите там ссылку на сообщение WM_USER+1. Это не что иное, как сообщение, которое приходит нам от этого значка. Обычно для значка в трее делают всплывающее меню и выводят там те или иные действия. Но TPopUpMenu делается обычно для правой кнопки, по левой же просто активируют приложение. На форму кидаем комопонент TPopUpMenu (пусть это будет PopUpMenu1) и заносим в него все пункты меню, которые мы хотим, чтобы онм появилис в меню, которое будет всплывать по нажатию правой кнопки на значке.
После этого описываем обработчик: В вышеназванную секцию protected добавляем ещё одну процедуру IconMouse, которая будет реагировать на сообщение WM_USER+1

Для выполнения пунктов всплывающего меню, пишите стандартные обработчики onClick() для его пунктов.

Данный опус писался только в форме, в IDE не тестировался, но работоспособный на 100%. Всё работает конечно, но не обессудьте, если будут ошибочки мелкие.

Источник

Delphi 7. Как свернуть формы в панель задач?

Доброго времени суток!
У меня такой вопрос: «Как сделать, чтобы форма, не являющаяся главной при минимизации
сворачивалась не в левый нижний угол экрана, а в панель задач?»

Не пойму, что с ним делать. Прошу вас подсказать или объяснить.

Заранее спасибо, если нужна какая-либо информация, пишите.

Как свернуть форму в панель задач?
Есть программа borderstyle= bsnone,сворачиваю кнопкой. нашел такой способ: Сворачивание .

Как свернуть программу в панель задач
Как свернуть программу в панель задач. По моему «панель задач» называется нижняя часть правого.

Как свернуть форму в панель задач
Ребята подскажите как свернуть форму в панель задач. Есть Форма1 у которой formBorderStyle=None.

Читайте также:  Трубы для бани из сэндвич панелей

Как свернуть в панель задач стороннее приложение?
Здравствуйте. Подскажите пожалуйста. Как свернуть стороннюю программу в панель задач? Необходимо.

Massaraksh7, Можете объяснить, что код означает?

И правильно ли я его вставил:

Если не правильно то поправьте меня пожалуйста.

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

Massaraksh7, Так сделал в OnResize, при открытии первом этой формы, он сразу сворачивает её.
Разворачиваю, нажимаю свернуть он сворачивает в угол и скрывает, при попытке развернуть из панели задач, он показывает свернутую форму в углу. При попытке развернуть окно из угла, он тоже сворачивает форму и только потом при попытке развернуть его из панели задачи он показывает форму.

Добавлено через 12 минут
Если ставить все на кнопку обычную, то все хорошо работает.

Значит это проблема в OnResize, т.к. меняются размеры формы при сворачивании и создании.
При каждом изменении размеров формы в процессе выполнения приложения возникает событие onResize
поэтому и происходит сворачивание.

Источник

Delphi свернуть окно в панель задач

Доброго дня. В проекте имеется несколько форм. Почему на панель задач сворачивается только главная форма, а все остальные сворачиваются в левый нижний угол экрана?

Почему на панель задач сворачивается только главная форма, а все остальные сворачиваются в левый нижний угол экрана?

Так надо. Так Microsoft и Borland решили.

Встречный вопрос: У твоих «всех остальных» окон есть ассоциированные кнопочки на таскбаре?

Так надо. Так Microsoft и Borland решили.
как-то не по-человечьи решили, пользователям не удобно

А сворачиваются «в левый нижний угол экрана»? Вот беда-то!
Колись, каким образом «кнопочки на таскбаре» появились?

как-то не по-человечьи решили, пользователям не удобно

Думаешь? Думаешь, если каждому окну дать по кнопке на таскбаре, это будет удобно? Полэкрана кнопок.

> Доброго дня. В проекте имеется несколько форм. Почему на
> панель задач сворачивается только главная форма, а все остальные
> сворачиваются в левый нижний угол экрана?

А как по-твоему должно быть?


Anatoly Podgoretsky © ( 2006-11-02 10:26 ) [7]

> Helen (02.11.2006 10:13:02) [2]

Стиль окна неверный и собственник наверно главная форма.
Поведение соответсвует дизайну Виндоус.

Так, насчет кнопочек я погорячилась, их нет.

Так, насчет кнопочек я погорячилась, их нет.

И куда теперь формам сворачиваться? Таскбар-то большой.

И, главное, как их потом обратно развернуть?
Кнопочки-то для контроля окна — нету.


Anatoly Podgoretsky © ( 2006-11-02 10:47 ) [11]

> Helen (02.11.2006 10:31:08) [8]

А они нужны, что бы можно было независимо сворачивать.


> Helen, Anatoly Podgoretsky

Ради эксперимента :
Когда я создаю форму не через Application.CreateForm, а вот так :

Читайте также:  Стеновые панели для внутренней отделки стен квартиры

unit Unit1;

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

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
< Private declarations >
public frm:Tform2;
< Public declarations >
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
frm:=TForm2.CreateParented(GetDesktopWindow);
frm.Show;

show;
end;

end.

вторая форма сворачивается в кнопочку, но тогда не очень удобно это окно таскать.

Описываю ситуацию подробно.
Появляется первое окно (главная форма), в нем вводится служебная информация, в том числе и пароли доступа к серверам. На панели задач появляется значок программы. По кнопке ОК окно закрывается, проверяется вся информация и появляется окно второй формы. Это окно является основным для работы с программой. В заголовке окна есть кнопки Минимизировать и Закрыть. Если нажимаешь на кнопку Минимизировать, то мне бы хотелось, чтобы окно сворачивалось на панель задач (причем сворачиваться надо не отдельным значком на панели задач, а в тот же), а не в левый нижний угол экрана.


> причем сворачиваться надо не отдельным значком на панели
> задач, а в тот же

А это как? — типа Правый клик по TaskBar — свойства — Группировать сходные кнопки задач?


> По кнопке ОК окно закрывается, проверяется вся информация
> и появляется окно второй формы. Это окно является основным
> для работы с программой.

Вот это окно и надо делать главным в программе, а Ваше окно для ввода служебной информации сделайте обычным дочерним диалогом.


> Elen © (02.11.06 11:12) [14]

А разве автор вындовс xp упоминала?


> Плохиш
А разве автор вындовс xp упоминала?

Тогда высказывание
причем сворачиваться надо не отдельным значком на панели
задач, а в тот же)

Мне не особо понятно (хотя если реализовать через меню. )


Desdechado © ( 2006-11-02 11:31 ) [18]

Делать окно ввода пароля главным в программе несколько опрометчиво.
Не, резон-то, конечно, есть, типа «без пароля никуда» 🙂
Но лучше не надо.

Лучше главную форму не делать стартовой формой. Главная форма на то и главная, чтобы присутствовать в протяжение работы программы. Но если «так надо», то, как вариант:

type
TForm2 = class(TForm)
private
procedure WMSysCommand(var AMsg: TWMSysCommand); message WM_SYSCOMMAND;
end;

procedure TForm2.WMSysCommand(var AMsg: TWMSysCommand);
begin
if (AMsg.CmdType = SC_MINIMIZE) then
Application.Minimize
else
inherited;
end;

спасибо, попожее попробую разобраться. Сейчас некогда

Форма ввода паролей не должна быть главной.

В mainform.create написать

В mainform.create написать

Интересно, а какие действия предпринимать, если пользователь нажмет «Отмена»? Исключение генерировать? В конструкторе?

Такую кнопку на диалоговом окне не делать )
Запустил прогу — вводи пароль, пока не угадаешь )

Источник

Оцените статью
Авто Город