Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.25;
Скачать: CL | DM;

Вниз

Application.Minimize и форма без кнопки на панели задач   Найти похожие ветки 

 
Vadimka   (2005-11-30 19:08) [0]

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

SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);

И убираю при старте программы. При дабл клике на трей я показываю главную форму, при очередном дабл клике я скрываю кланую форму, но скрываю через Form1.Hide. Т.е. получается так что память не высвобождается и не переносится в своп. Это происходит только при Application.Minimize. Только вот засада, если я делаю так
Application.Minimize;
Hide;
То видно как форма вначале принела вид полоски внизу рабочего стола, ну а потом конечно же исчезла. Но это очень не красиво. Вот каким образом мне прятать форму сразу и чтобы приложение было действительно в минимизированном виде. Конечно это не глобальная проблема, но дело эстетики больше =)


 
Vadimka   (2005-11-30 19:21) [1]

хм, покапался в функции Application.Minimize;
И теперь все работает как я хотел.

DefWindowProc(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
Hide;

И вопрос, делать так безопасно вообще?


 
Vadimka   (2005-11-30 19:46) [2]

мда, вообще-то это делает тоже самое что и Application.Minimize; только видать быстрее, но заметить свернутое окно можно в некоторые моменты.
Есть ли выход вообще?


 
Винт   (2005-11-30 19:49) [3]

http://forum.sources.ru/index.php?showtopic=94284&


 
Vadimka   (2005-11-30 22:44) [4]


> http://forum.sources.ru/index.php?showtopic=94284&

здесь ничего полезного.
даже при ShowWindow(Handle, SW_SHOWMINIMIZED) успевает появиться полоска приложения рядом с панелью задач. А вот при ShowWindow(Handle, SW_HIDE) память в своп не высвобождается, прямо какой-то парадокс.


 
sniknik ©   (2005-12-01 08:58) [5]

> ShowWindow(Handle, SW_HIDE) память в своп не высвобождается, прямо какой-то парадокс.
тек тебе что нужно, минимизировать или память "освободить"? потому как совершенно нормально видеть процесс свертывания, там еще гдето в виндах эффекты свертыванию назначаются.

чтобы не видеть надо делать hide, а что бы память "убрать" можно сделать SetProcessWorkingSetSize(GetCurrentProcess, dword(-1), dword(-1));



Страницы: 1 вся ветка

Текущий архив: 2005.12.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.062 c
1-1133036401
Василий
2005-11-26 23:20
2005.12.25
Запуск макроса в Excel средствами Delphi


14-1133279046
Piter
2005-11-29 18:44
2005.12.25
Сотовая связь в Германии


14-1133415994
WondeRu
2005-12-01 08:46
2005.12.25
С днем рождения, Керк!


2-1133946451
john_mag
2005-12-07 12:07
2005.12.25
MessageDlg


2-1133810801
ZefiR
2005-12-05 22:26
2005.12.25
Помогите! Мой Дельфак выкидывает ошибку!