Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.10.18;
Скачать: CL | DM;

Вниз

AlphaBlend и восстановление формы   Найти похожие ветки 

 
Trible   (2008-03-12 06:04) [0]

Всем привет,
У меня форма имеет AlphaBlend:= 254, окно минимизируется в кнопку нормально без артефактов, но при восстановлении ( Form.Restore ) содержимое окна чернеет и через мгновение приходит в норму. Как предотвратить почернение формы при восстановлении из кнопки, если AlphaBlend не 255?


 
Trible   (2008-03-16 11:16) [1]

Ну что, никто не знает?


 
Ned   (2008-03-16 18:54) [2]

Попробуйте на это мгновение делать форму невидимой, а после разворачивания снова менять свойство Visible.


 
AMDX4 ©   (2008-03-17 17:30) [3]

Можно еще круче - при востановленние делаете окно невидимой AlphaBlend = 1
а потом плавно делаете ее видимой - будет прикольней


 
Ned   (2008-03-18 18:23) [4]

AMDX4 - дело в том, что чернеть область окна будет всё равно.


 
Trible   (2008-03-22 18:16) [5]


> Ned   (16.03.08 18:54) [2]
> Попробуйте на это мгновение делать форму невидимой, а после
> разворачивания снова менять свойство Visible.

Что-то не получается у меня. Может, дадите пример, как сделать?
Конструкции типа

procedure TForm1.KOLFormRestore(Sender: PObj);
begin
Form.Visible:= false;
Form.Visible:= true;
end;

не катят (!!)


 
Дмитрий К ©   (2008-03-22 19:06) [6]

Может быть в момент сворачивания делать Alphablend = 255, а при разворачивании 254.


 
Дмитрий К ©   (2008-03-22 19:31) [7]

Что-нибудь типа:
program Project1;

uses
 Windows,Messages, KOL;

const
 WM_SETALPHA = WM_USER + 1000;

var form: PControl;

procedure FormMinimize(Dummy, Sender: PObj);
begin
 Form.Postmsg(WM_SETALPHA, 255,0);
end;

procedure FormRestore(Dummy, Sender: PObj);
begin
 Form.Postmsg(WM_SETALPHA, 254,0);
end;

function FormMessage(Dummy: Pointer; var Msg: TMsg; var Rslt: Integer ): Boolean;
begin
 Result := False;
 if Msg.Message = WM_SETALPHA then
   Form.AlphaBlend := Msg.wParam
end;

begin
 form := NewForm(nil, "Test");
 form.AlphaBlend := 254;
 form.OnMessage := TOnMessage(MakeMethod(nil, @FormMessage));
 form.OnMinimize := TOnEvent(MakeMethod(nil, @FormMinimize));
 form.OnRestore := TOnEvent(MakeMethod(nil, @FormRestore));
 Run(form);
end.


 
Trible   (2008-03-22 22:32) [8]


> Дмитрий К ©   (22.03.08 19:31) [7]
> Что-нибудь типа:

Все равно мигает, при разворачивании.



Страницы: 1 вся ветка

Текущий архив: 2009.10.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
1-1219743656
dmitry_12_08_74
2008-08-26 13:40
2009.10.18
Рисование на рабочем столе полупрозрачных объектов


15-1249653864
Kerk
2009-08-07 18:04
2009.10.18
WiFI в Питере


15-1250414408
dimoktmb
2009-08-16 13:20
2009.10.18
Виртуальный COM от Prolific


10-1160503048
WQSing
2006-10-10 21:57
2009.10.18
name по dispid


15-1250358753
xayam
2009-08-15 21:52
2009.10.18
Как человек думает?