Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 711

/ вопрос решён /

Здравствуйте, уважаемые эксперты!
Как можно сделать так, чтобы на экране поверх всех окон появлялся на несколько секунд текст? Пробовал через TextOut в цикле, но происходит мигание, пробовал всплывающие окна, но они перекрываются другими окнами и их видно только в момент "всплывания", а потом они исчезают. Сделал всплывающие окна в цикле, теперь это выглядит как мигающая полупрозрачная панелька с текстом, которая к тому же не работает, если изменить настройки всплывающих окон в винде. Подскажите что-нибудь, пожалуйста.

Качурин Антон Павлович Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: Качурин Антон Павлович (статус: Посетитель)
Вопрос отправлен: 8 июля 2007, 12:04
Состояние вопроса: решён, ответов: 3.

Ответ #1. Отвечает эксперт: Градов Ю.М.

Здравствуйте, Качурин Антон Павлович!
Посмотрите по сноске, я кое-что накропал.
К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)

Ответ отправил: Градов Ю.М. (статус: 8-ой класс)
Время отправки: 8 июля 2007, 14:39
Оценка за ответ: 5

Комментарий к оценке: Спасибо

Ответ #2. Отвечает эксперт: min@y™

А чем плохи окошки, как например, в QIP или в менеджере закачек браузера FireFox, вылезающие в приавом нижнем углу экрана? Такие окошки можно сделать из обычной формы, убрав заголовок (BorderStyle:= bsNone) и сделав форму глобально-модальной, повесив на её события OnShow и OnDeactivate вот такой обработчик:

procedure TMainForm.FormActivate(Sender: TObject);
begin
SetWindowPos(Handle,hwnd_TopMost,Left,Top,Width,Height,
swp_noActivate);
end;

Если нужно выводить сообщения из трея, то можно воспользоваться "баллунтултипами" (стандартными всплывающими подсказками). Это можно реализовать, покопавшись в API к windows 2000/XP или заюзать компонент TCoolTrayuIcon, где всё это уже реализовано (и не только это).

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 9 июля 2007, 08:22
Оценка за ответ: 5

Комментарий к оценке: Спасибо, хоть мало что понял, я русифицированные английские слова мало понимаю

Ответ #3. Отвечает эксперт: Дима Гусаков

Здравствуйте, Качурин Антон Павлович! Попробуй сделать пояление формы с текстом. У формы поставь свойство "поверх всех окон" Form1.FormStyle := fsStayOnTop;
или попробуй компонент KMAlert

Ответ отправил: Дима Гусаков (статус: 2-ой класс)
Время отправки: 9 июля 2007, 19:50
Оценка за ответ: 1

Комментарий к оценке: игры при таком способе сворачиваются. Увы

Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 10 июля 2007, 11:29; участников в обсуждении: 1.
Аксион

Аксион (статус: 4-ый класс), 10 июля 2007, 11:29 [#1]:

Попробуйте так: BorderStyle:= bsNone (как сказал min@y), у формы выберите любой цвет,transperentcolor:=true,transperentcolorvalue:=здесь укажите цвет как и у формы,formstyle:=fsstayontop,поместите компонент label фон должен быть такойже как и цвет, а цвет текста измените на любой другой(он должен быть не как у формы).Теперь поверх всех приложений будет только текст и ни чего больше!

31 января 2011, 20:00: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:44
Выполнено за 0.02 сек.