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

Вниз

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

 
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 вся ветка

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

Наверх




Память: 0.52 MB
Время: 0.019 c
15-1188900818
oxffff
2007-09-04 14:13
2007.10.07
Выбор Mp3 player


2-1189583797
Washington
2007-09-12 11:56
2007.10.07
В чём ошибка?


15-1189503688
DillerXX
2007-09-11 13:41
2007.10.07
Почему до сих пор не отменили запрет на выезд


15-1189200756
Petr V. Abramov
2007-09-08 01:32
2007.10.07
славные 90-е РФ


2-1189278252
Fin
2007-09-08 23:04
2007.10.07
Как узнать код символа в юникоде.