Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.11.16;
Скачать: [xml.tar.bz2];

Вниз

Флаг= свернуть, развернуть окно....   Найти похожие ветки 

 
BB2000   (2008-10-02 21:15) [0]

Добрых суток!
Суть проблемы:
Надо присвоить флаг для приложения, свернуто или на экране, какое сообщение надо ловить?
Особенно при нажатии мышью на тасбаре, свернуть - развернуть.

Спасибо.


 
oldman ©   (2008-10-02 21:17) [1]

А зачем, можно узнать?


 
ВВ2000   (2008-10-02 22:57) [2]

Что-бы когда приложение свёрнуто, неотображать разную инфу, которая показывается, когда прога на виду, картинки, текст, и т.д.... для экономии ресурсов.


 
oldman ©   (2008-10-02 23:02) [3]


> ВВ2000   (02.10.08 22:57) [2]


Неправильный подход.

Приложение свернуто - ты текст не отобразил.
Приложение ушло в цикл вычислний, пользователь его развернул.
Текста нет...


 
Германн ©   (2008-10-03 01:10) [4]


> ВВ2000   (02.10.08 22:57) [2]
>
> Что-бы когда приложение свёрнуто, неотображать разную инфу,
>  которая показывается, когда прога на виду, картинки, текст,
>  и т.д.... для экономии ресурсов.

Когда приложение свёрнуто, на его окнах реально ничего не рисуется. Ни картинки, ни текст. Даже когда приложение не свёрнуто его окна могут быть перекрыты окнами других приложений. И тогда тоже на них реально ничего не рисуется. Так что экономь ресурсы где-нибудь в другом месте.


 
{RASkov} ©   (2008-10-03 09:24) [5]

> [0] BB2000   (02.10.08 21:15)

IsIconic - только это не сообщение, а функция....


 
Rouse_ ©   (2008-10-03 09:55) [6]

IsIconic - покажет, свернуто ли или нет, IsZoomed - покажет распахнуто ли на весь экран или нет.


 
Vlad Oshin ©   (2008-10-03 10:20) [7]

да что такое..

> IsIconic - покажет, свернуто ли или нет

1
у меня в таймере никогда не выскакивает сообщение
if IsIconic(form1.handle) then showmessage("");

2
Procedure TForm1.MyWMSize(var Msg: TWMSize);
Begin
If TMessage(Msg).WParam = Size_Minimized Then
 showmessage("");
End;
не срабатывает

3
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;  var Handled: Boolean);

if MSG.wParam=SC_MINIMIZE then showmessage("");
не работает

4
GetWindowPlacement(form1.Handle,@tp);
нет
-------
WM_SYSCOMMAND - иногда , если с панели задач команда свернуть

что за день такой...


 
{RASkov} ©   (2008-10-03 11:28) [8]

> [7] Vlad Oshin ©   (03.10.08 10:20)
> 1
> у меня в таймере никогда не выскакивает сообщение
> if IsIconic(form1.handle) then showmessage("");

Потому как формы в делфи не сворачиваются.... имхо. Кроме окна Application....
Можешь проверить(убедится) в своем таймере if IsIconic(Application.handle) then showmessage("");


 
{RASkov} ©   (2008-10-03 11:31) [9]

> [7] Vlad Oshin ©   (03.10.08 10:20)
> if IsIconic(form1.handle) then showmessage("");

Для форм делфи можно попробывать IsWindowVisible в таком случае....


 
Rouse_ ©   (2008-10-03 11:33) [10]

Что-то в ребята не то говорите :) Все нормально работает:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if IsIconic(Handle) then
   ListBox1.AddItem(TimeToStr(Now) +  ": Окно свернуто",  nil)
 else
   if IsZoomed(Handle) then
     ListBox1.AddItem(TimeToStr(Now) +  ": Окно развернуто на весь экран",  nil)
   else
     ListBox1.AddItem(TimeToStr(Now) +  ": Окно в нормальном состоянии",  nil);
end;


 
{RASkov} ©   (2008-10-03 11:39) [11]

> [10] Rouse_ ©   (03.10.08 11:33)
> Что-то в ребята не то говорите :)

Хм...
D7 XP Вот это:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if IsIconic(Handle) then ShowMessage("Свернулось");
end;

НЕ работает :)


 
Rouse_ ©   (2008-10-03 11:42) [12]


> D7 XP Вот это:
> procedure TForm1.Timer1Timer(Sender: TObject);
> begin
>  if IsIconic(Handle) then ShowMessage("Свернулось");
> end;
> НЕ работает :)

А ты развернуть попробуй ;)


 
{RASkov} ©   (2008-10-03 11:48) [13]

> [12] Rouse_ ©   (03.10.08 11:42)
> А ты развернуть попробуй ;)

Код из [10] показывает(т.е. в листбоксе появляются) при любых сосотояниях окна только два варианта строк. Это:
Окно развернуто на весь экран
Окно в нормальном состоянии
А вот третей нетути... никогда. :)


 
Rouse_ ©   (2008-10-03 11:51) [14]


> А вот третей нетути... никогда. :)

Ну значит вот тебе еще одна из причин о необходимости перехода на BDS 2007 :)
У меня на ней все работает нормально :)
Кстати, проверь а не вызывается ли там какая либо обертка?
Напиши вот так: if Windows.IsIconic(Handle) then


 
{RASkov} ©   (2008-10-03 11:57) [15]

> [14] Rouse_ ©   (03.10.08 11:51)
> if Windows.IsIconic(Handle) then

Да не... вызывается та что надо... Но проверил на всякий случай...
Я обычно проверяю с зажатым Ctrl"ом и клик.... И тут куда "бросит" - то и вызывается, не так ли?

А про IsIconic и формы в делфи я давно уже где-то прочитал... не помню.... Может у М.Кэнту
Книга правда по D4 была, но вот и до D7 актуально)


 
ВВ2000   (2008-10-03 22:21) [16]

Во! Спасибо! Вот это работает!
if Windows.IsWindowVisible(MainForm.Handle) then

if Windows.IsIconic(Handle) then - а это нет.



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

Форум: "Начинающим";
Текущий архив: 2008.11.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.006 c
2-1223552041
Iris
2008-10-09 15:34
2008.11.16
объект-Контейнер


2-1223026415
Развёртка
2008-10-03 13:33
2008.11.16
Развернуть досовское окноий экран программы на весь экран


15-1221345698
Per Pra
2008-09-14 02:41
2008.11.16
"Perfect Prattle" или "Идеальная потрепаловка - 2"


15-1221643996
DevilDevil
2008-09-17 13:33
2008.11.16
Define-ы версий Delphi ?


2-1222891466
Александр325
2008-10-02 00:04
2008.11.16
Ошибка при определении процедуры





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский