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

Вниз

как показать форму не отбирая фокуса   Найти похожие ветки 

 
LuceferAB   (2007-04-04 00:09) [0]

Пишу утилитку, которая должна в определенный период времени показать некое окошко с текстом (на верху всех окон, стиль WS_EX_PALETTEWINDOW), не хочу что-бы оно воровало фокус.
Как этого добиться?
Пытался сделать так:
fmRemMsg :=TfmRemMsg.Create(Application);
fmRemMsg.Visible:=false;
ShowWindow(fmRemMsg.Handle, SW_SHOWNA);
---
Не получилось. Окно показывается, (фокус не воруется) но на нем (в окне) ничего не отображается (панель, кнопки, эдит) - отображается чистый прямоугольник :(


 
serggg ©   (2007-04-04 09:21) [1]

При создании fmRemMsg сделай SetFocus на основную форму
>
 fmRemMsg.Visible:=false;
 ShowWindow(fmRemMsg.Handle, SW_SHOWNA);

-Это не нужно


 
SergGG ©   (2007-04-04 09:50) [2]


procedure TForm1.Button1Click(Sender: TObject);
begin
 fmRemMsg :=TForm.Create(Application);
 with fmRemMsg do
 begin
   FormStyle:=fsStayOnTop;
   Visible:=True;
 end;
 SetFocus;
end;


 
LuceferAB   (2007-04-04 13:09) [3]

У меня нет основной формы как таковой. Есть оконная процедура, иконка в трэе, несколько потоков... собственно все. Да и фокус я не могу знать у кого вообще. Задумка такая - пользователь например работает в ворде, и вдруг выскакивает окошко с собщением - при этом пользователь не должен почувствовать неудобство, что его работу прерывают. Или напрмер у него открыто меню пуск, если форма переставит фокус - меню схлопнется. Мне этого не надо.

Методом проб и ошибок, получилось этого добиться вот так:
fmRemMsg :=TfmRemMsg.Create(Application);
fmRemMsg.Visible:=false;
ShowWindow(fmRemMsg.Handle, SW_SHOWNA);
fmRemMsg.Visible:=true;


 
homm ©   (2007-04-04 13:19) [4]

Идея не создавать окно каждый раз, а показывать, когда нужно, и прятать когда не нужно.


 
Сергей М. ©   (2007-04-04 13:20) [5]


> при этом пользователь не должен почувствовать неудобство,
>  что его работу прерывают


И для этого нужно обязательно городить огород с формой ?

Для иконок, "запуздыренных в трей", есть замечательный механизм Baloon Tip


 
homm ©   (2007-04-04 13:22) [6]

> Для иконок, "запуздыренных в трей", есть замечательный механизм
> Baloon Tip

Ну не всегда задача сводится к отображению текста со стандартной картинкой, я думаю.


 
Сергей М. ©   (2007-04-04 13:25) [7]


> текста со стандартной картинкой


Почему обязательно "стандартной" ?
И почему текст при его визуализации в окне не есть "картинка" ?


 
homm ©   (2007-04-04 13:30) [8]

> И почему текст при его визуализации в окне не есть "картинка" ?

Вот этого не понял. Разве там можео что-то кроме текстового сообщения отобразить? Или речь о псевдографике? :)


 
Сергей М. ©   (2007-04-04 13:35) [9]


> Разве там можео что-то кроме текстового сообщения отобразить?


Где "там" ?
В окне балона что ли ?

Автору, кстати, судя по вопросу, и нужно как раз именно текст показать юзеру - аль не заметил ?)


 
homm ©   (2007-04-04 13:42) [10]

> Где "там" ?
> В окне балона что ли ?

Да. О нем же разговор то.


> Автору, кстати, судя по вопросу, и нужно как раз именно
> текст показать юзеру - аль не заметил ?)

Не заметил. :

> Окно показывается, (фокус не воруется) но на нем (в окне)
> ничего не отображается (панель, кнопки, эдит) - отображается
> чистый прямоугольник :(


 
Сергей М. ©   (2007-04-04 14:00) [11]


> homm ©   (04.04.07 13:42) [10]
>
> (панель, кнопки, эдит)


Ну тут автор сам уже ерунду городит - то ему, вишь ли, текст подавай, а то ему теперь и контролы для ввода понадобились

Картина маслом: юзер сидит-пыхтит, текст в вордовине верстает, вдруг выскакивает окно, без фокуса, но с кучей контролов, подразумевающих
приглашение к вводу, особливо кнопки)

Дурь да и только, что еще сказать ?)


 
homm ©   (2007-04-04 14:04) [12]

> Дурь да и только, что еще сказать ?)

«Штирлиц, что Вы только не придумаете, лишь бы на картошку не ездить» :)

Лучше бы сказали как окно без фокуса создать.


 
Сергей М. ©   (2007-04-04 14:30) [13]

Дык я и сказал - см. Baloon Window.

Чем не "без фокуса" ?)


 
homm ©   (2007-04-04 14:32) [14]

> Дык я и сказал - см. Baloon Window.

А на мой вопрос из [8] не ответили.


 
Сергей М. ©   (2007-04-04 14:41) [15]

Вот пока Автор не определится (то ли только текст ему подавай, то ли интерактив), разговор дальше не пойдет)


 
homm ©   (2007-04-04 14:43) [16]

Дядь сережа, ну скажи, не томи душу, можно ль контроллы в балонтип сувать? :)


 
Сергей М. ©   (2007-04-04 14:54) [17]


> homm ©   (04.04.07 14:43) [16]


Можно, но не нужно)

Балоны для информирования существуют, а не для интерактивного ввода)


 
LuceferAB   (2007-04-04 19:33) [18]


> Ну тут автор сам уже ерунду городит - то ему, вишь ли, текст
> подавай, а то ему теперь и контролы для ввода понадобились
>
> Картина маслом: юзер сидит-пыхтит, текст в вордовине верстает,
>  вдруг выскакивает окно, без фокуса, но с кучей контролов,
>  подразумевающих
> приглашение к вводу, особливо кнопки)
>
> Дурь да и только, что еще сказать ?)
>

----
Я бы сказал, что вы мало с компьютером работали. И не такое бывает в датском королевстве, что и не снилось нашим мудрецам.
Все именно так. Вот я сижу, пишу на форуме, мыслю мысль шедевральную. И если какое-то окно у меня эту мысль перебьет, мысля может уйти в песок. Вспоминай потом чего хотеть сказал :-) а если ещё ты, за секунду до появившегося окна, энтер нажал, то вообще тушите свет. Не было с вами такого? Значит вам повезло.
А теперь конкретный пример. Ты работаешь - тире пишешь текст, а следовательно нажимаешь энтер, вдруг твой антивирус/брандмауэр что-то обнаруживает, и предлагает сделать тебе выбор, ну например разрешить или блокировать. Вот тебе простой пример, когда кроме информации от пользователя требуется в вод информации. И таких примеров туева хуча.

И еще:
1. "балон" не подходит ещё по той простой причине что он видим только определенный промежуток времени.
2. Создать форму а потом её показывать/прятать не получается, потому что этих форм может быть несколько, чье кол-во нельзя посчитать за ранее.

Ну и на последок - тот пример (см. выше) с двухкратным Visible работает, что и требовалось.


 
s_   (2007-04-06 09:31) [19]

Удалено модератором



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

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

Наверх





Память: 0.5 MB
Время: 0.036 c
2-1189236650
NikolayGavrilovM
2007-09-08 11:30
2007.10.07
Записи в массиве


2-1188370854
Просящий о помощи
2007-08-29 11:00
2007.10.07
Имя программы


15-1189494932
TUser
2007-09-11 11:15
2007.10.07
Ищу дрова


3-1180629087
GanibalLector
2007-05-31 20:31
2007.10.07
запрос к разным базам


15-1187942734
Vitaliy_____
2007-08-24 12:05
2007.10.07
Принадлежность точки контуру





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский