Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как запустить программу в свернутом в трей виде (невидимо)? [D5, Win95/98, WinME, Win2k, WinXP]


lipskiy ©   (2003-02-02 20:22:00) 

Использую TRXTrayIcon. Когда программа запущена, то все работает верно - Hide - гашу окно, Show - показываю. Но никак не получается запустить программу в состоянии "свернутости" в трей, то есть чтоб окно не было видно ни на рабочем столе ни на панели задач. Окно всегда отображается.
Строчка ShowWindow(Application.Handle, SW_HIDE); не помогает.
Как запустить программу так, чтоб только иконка в трее и светилась, а больше чтоб ничего не было видно?


lipskiy   (2003-02-04 20:33:00) [1]

Романов Р.В. © (02.02.03 21:09)
keymaster © (02.02.03 21:42)
Юрий Зотов © (03.02.03 00:29)

Вы совершенно правы! Спасибо!


Юрий Зотов   (2003-02-03 00:29:00) [2]

Красивый код. Но он станет еще красивее, если его полностью выкинуть. А вместо всего этого вставить в OnCreate одну-единственную строку. Ту самую, о которой говорил Романов Р.В. © (02.02.03 21:09).

И будет так же работать.

Sorry...


lipskiy   (2003-02-02 21:51:00) [3]

Вопрос решен. Спасибо VID.
Кому интересно, вот код.

Procedure TForm1.HideMainForm;
VAR WNHND:INTEGER;
begin
Application.ShowMainForm := false;
ShowWindow(Application.Handle, SW_HIDE);
WnHnd := GetWindowLong(Application.Handle, GWL_EXSTYLE);
WnHnd := WnHnd or WS_EX_TOOLWINDOW;
SetWindowLong(Application.Handle, GWL_EXSTYLE, WnHnd);
end;

procedure Form1.FormCreate(...);
begin

hidemainform;
end;


keymaster   (2003-02-02 21:42:00) [4]

Application.ShowMainForm := False;

Можно написать это в самом DPR,
перед Application.run;


Романов Р.В.   (2003-02-02 21:09:00) [5]

В OnCreate главной формы

Application.ShowMainForm := False;


lipskiy   (2003-02-02 21:05:00) [6]

Может как то влиять, что я под XP?


mrcat   (2003-02-02 20:44:00) [7]

х.з. ничего не светится...


lipskiy   (2003-02-02 20:39:00) [8]

Делал я по всякому - на ОнАтивэйт тоже. Либо кнопка на панели задач светится, либо окно, но все вместе не погасить! Экспериментирую на пустой форме - так что ничто мешать не может. Не выходит!


lipskiy   (2003-02-02 20:34:00) [9]

Это я пробовал - окно свернуто, но зажигается кнопка на панели задач, и ее никак не погасить при запуске :(


mrcat   (2003-02-02 20:32:00) [10]

ну, если очень хочется, ShowWindow(Application.Handle, SW_HIDE), так делайте - OnActivate;


Eugene1501   (2003-02-02 20:27:00) [11]

Попробуй у главной формы WindowState сделать равным Minimized.


Наверх

Титульная страница Поиск, карта сайта Написать письмо