Форум: "KOL";
Текущий архив: 2009.10.18;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "KOL";
Текущий архив: 2009.10.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c