Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.009 c
2-1250505823
izya
2009-08-17 14:43
2009.10.18
Как получить длину имени класса получаемый GetClassName


6-1205348739
Igor23
2008-03-12 22:05
2009.10.18
idhttp


2-1250151996
Дмитрий Л.
2009-08-13 12:26
2009.10.18
Система контроля ошибок


6-1207054869
SpellCaster
2008-04-01 17:01
2009.10.18
Асинхронные сокеты "забивают" очередь сообщений


15-1250678829
DSKalugin
2009-08-19 14:47
2009.10.18
Переведите пожалуйста с паскаля на php





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский