Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Исчезающий Image [D5, D7, Win95/98, WinXP]


Страницы:   1 2

Александр1 ©   (2004-03-10 19:02:00) 

Здравствуйте уважаемые мастера! Не подскажите, как сделать так, чтобы рисунок Image или  сома Form медленно исчезала и медленно появлялась??
Заранее спасибо!


YuRock   (2004-03-10 20:10:00) [21]

> Diamond Cat

см. YuRock [1], пункт 1


YuRock   (2004-03-10 20:08:00) [22]

> Александр1 ©   (10.03.04 20:02) [11]
Думаю, так:

for j := 100 to 255 do begin
 SetLayeredWindowAttributes(Handle, $00FFFFFF, j, LWA_ALPHA);
 Sleep(1);
end;


Diamond Cat   (2004-03-10 20:07:00) [23]

посмотрел в msdn там пишут что, Minimum operating systems Windows 2000 , так что метод не универсален


Александр1   (2004-03-10 20:02:00) [24]

YuRock Не всё нормально!!!! Просто этот алгоритм работает только по D7, под D5 не работает!
YuRock - Огромное тебе спасибо!
А в абратную сторону не знаешь как?


Diamond Cat   (2004-03-10 19:59:00) [25]


> YuRock ©  

а что за процедурка такая SetLayeredWindowAttributes


YuRock   (2004-03-10 19:55:00) [26]

Какую ошибку?


Александр1   (2004-03-10 19:51:00) [27]

SetLayeredWindowAttributes(Handle, $00FFFFFF, j, LWA_ALPHA);
Эта строчка ошибку выдаёт!


YuRock   (2004-03-10 19:46:00) [28]

> Александр1


type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 j: Integer;
begin
 for j := 255 downto 100 do begin
   SetLayeredWindowAttributes(Handle, $00FFFFFF, j, LWA_ALPHA);
   Sleep(1);
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
 SetLayeredWindowAttributes(Handle, $00FFFFFF, 255, LWA_ALPHA);
end;


Diamond Cat   (2004-03-10 19:43:00) [29]

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

> Darrin ©  

под 98-95 AlphaBlend и AlphaBlendValue не работают


Darrin   (2004-03-10 19:35:00) [30]

У формы есть 2 свойства:
AlphaBlend и AlphaBlendValue отвечающих за прозрачность


Александр1   (2004-03-10 19:33:00) [31]

Diamond Cat Они должны постепенно становиться прозрачными!!!


Diamond Cat   (2004-03-10 19:30:00) [32]

медленно напиваться, а потом медленно трезветь, эфект 100%

На самом деле есть ответный вопрос, а как они должны исчезать, сжиматься в точку, уходить за пределы экрана, становиться прозрачными и т.д.


Александр1   (2004-03-10 19:30:00) [33]

YuRock Хотя-бы окно! А пимер скинуть можешь????


YuRock   (2004-03-10 19:27:00) [34]

Думаю, прийдется использовать ф-цию SetLayeredWindowAttributes, но есть 2 но:

1. Работать в 95/98 не будет;
2. TImage "погасить" неудастся - можно только окно гасить. Надо гасить окно, на котором лежит TImage.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо