Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вывод на экран

323
12 января 2005 года
Sergun
228 / / 20.09.2000
Народ очень срочно нужно решить проблему помогите пожалуйста..
Задача состоит в следующем... при выполнении функции нужно вывести на экран какой нить текст и/или простое графическое изображение (например ГИФ с прозрачным фоном, но чтобы при выводе фон был прозрачен).... эта надпись/изображение должно держаться на экране несколько секунд, потом пропадать... причем, если запускаются другие приложения, нужно чтобы эта надпись ими не закрывалась...
кто-что может предложить?
10
12 января 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Sergun
Задача состоит в следующем... при выполнении функции нужно вывести на экран какой нить текст и/или простое графическое изображение (например ГИФ с прозрачным фоном, но чтобы при выводе фон был прозрачен).... эта надпись/изображение должно держаться на экране несколько секунд, потом пропадать... причем, если запускаются другие приложения, нужно чтобы эта надпись ими не закрывалась...


По первой части: создается форма без заголовка и бордюра, на нее лепится TImage c Align = alClient, показывается на экране, время показа запоминается. Потом в Application->OnIdle проверяется, не истекло ли время показа, и если истекло - форма прячется.

А вот как сделать ее видимой поверх других форм даже вне зависимости от активности той или иной программы - надо копать в документации.

323
12 января 2005 года
Sergun
228 / / 20.09.2000
Цитата:
Originally posted by smartsoft

По первой части: создается форма без заголовка и бордюра, на нее лепится TImage c Align = alClient, показывается на экране, время показа запоминается. Потом в Application->OnIdle проверяется, не истекло ли время показа, и если истекло - форма прячется.

А вот как сделать ее видимой поверх других форм даже вне зависимости от активности той или иной программы - надо копать в документации.



небольшое замечание... нужно чтобы эти буквы/изображения на экране были в фоне прозрачными... т.е. на экране чисто буквами написано что-то, плюс небольшие изображения.. всмысле формы не должно быть....
типичный пример только что придумал... вспомните надпись которая появляется на экране ТВ когда вы прибавляете звук..

301
12 января 2005 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by Sergun


небольшое замечание... нужно чтобы эти буквы/изображения на экране были в фоне прозрачными... т.е. на экране чисто буквами написано что-то, плюс небольшие изображения.. всмысле формы не должно быть....
типичный пример только что придумал... вспомните надпись которая появляется на экране ТВ когда вы прибавляете звук..


 
Код:
Form1->TransparentColorValue=clFuchsia; //цвет, который мы считаем прозрачным.
 Form1->TransparentColor=true;
368
12 января 2005 года
rostyslav
629 / / 13.07.2004
Если в 6-м Buildere у формы есть свойство AlphaBlend, как в Delphi 6, тогда можно ей присвоить значение > 0.

Кроме этого

FormStyle = fsStayOnTop;
BorderStyle = bsNone;
323
12 января 2005 года
Sergun
228 / / 20.09.2000
Цитата:
Originally posted by rostyslav
Если в 6-м Buildere у формы есть свойство AlphaBlend, как в Delphi 6, тогда можно ей присвоить значение > 0.

Кроме этого

FormStyle = fsStayOnTop;
BorderStyle = bsNone;



Borland C++ Builder 5... тогда что?

301
12 января 2005 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by Sergun


Borland C++ Builder 5... тогда что?


 
Код:
Form1->TransparentColorValue=clFuchsia;
 Form1->TransparentColor=true;
 Form1->FormStyle = fsStayOnTop;
 Form1->BorderStyle = bsNone;

Тебе этого за глаза и за уши хватит.
323
12 января 2005 года
Sergun
228 / / 20.09.2000
Цитата:
Originally posted by lord Kelvin

 
Код:
Form1->TransparentColorValue=clFuchsia;
 Form1->TransparentColor=true;
 Form1->FormStyle = fsStayOnTop;
 Form1->BorderStyle = bsNone;

Тебе этого за глаза и за уши хватит.



[C++ Error] Unit1.cpp(20): E2316 'TransparentColorValue' is not a member of 'TForm1'
[C++ Error] Unit1.cpp(21): E2316 'TransparentColor' is not a member of 'TForm1'


повторяю - Borland C++ Builder [SIZE=3]5[/SIZE]

10
13 января 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Sergun
[C++ Error] Unit1.cpp(20): E2316 'TransparentColorValue' is not a member of 'TForm1'


Все верно, нагнали они. Свойства TransparentColorValue у класса TForm нет и никогда не было.

Doomать надо...

301
13 января 2005 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by Sergun


[C++ Error] Unit1.cpp(20): E2316 'TransparentColorValue' is not a member of 'TForm1'
[C++ Error] Unit1.cpp(21): E2316 'TransparentColor' is not a member of 'TForm1'


повторяю - Borland C++ Builder [SIZE=3]5[/SIZE]


 
Код:
HRGN hRgn0=CreateRoundRectRgn(0,0,267,230,15,15);
 SetWindowRgn(Form1->Handle,hRgn0,true);

Почитай про
CombineRgn
CreateEllipticRgn
CreateEllipticRgn
IndirectCreatePolygonRgn
CreatePolyPolygonRgn
CreateRectRgn
CreateRectRgnIndirect


P.S. Переходи на 6ой Builder.
301
13 января 2005 года
lord Kelvin
897 / / 08.11.2004
Вот пример под 5ый билдер.
10
13 января 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Sergun
нужно чтобы эти буквы/изображения на экране были в фоне прозрачными...


У TLabel есть свойство Transparent, только не думаю, что оно поможет в этом случае...

Почему-то мне постоянно кажется, что придется создавать собственный класс формы с поддержкой прозрачности. Должны быть примеры, поищи...

323
13 января 2005 года
Sergun
228 / / 20.09.2000
может просто обрабатывать глобально какое-нить сообщение типа WM_PAINT и внутри обработчки писать на экране как на канве? Только как это сделать?
2.3K
13 января 2005 года
ART-CODE
134 / / 15.11.2004
CreateRoundRectRgn - интересная штука, может попробовать создать форму в виде слова...
http://www.sources.ru/cpp/bitmap/regions.shtml

Не знаю, устроит ли такой вариант:
Имитация прозрачности

делаем bitmap снимок всего экрана,
в том месте, где должна появиться надпись выводим форму, на которую наносим фрагмент изображения экрана, лежащего под формой, а поверх этого уже рисуем и пишем.

IMHO Tакие вещи совсем не так делаются
может как-то черз прямой доступ к видео-памяти (врать не буду , не сталкивался )

вот интересно как курсор мышки рисуется....
(даже еще до загрузки Windows)

может дурацкая идея, а что если динамически создавать рисунок курсора мышки, содержащий нужный тебе текст :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог