Форум: "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