![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Исчезающий Image [D5, D7, Win95/98, WinXP]
Александр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.