Войти

Показать полную графическую версию : Delphi | События при создании формы


riddler
05-03-2005, 02:16
Возник следующий вопрос: в дельфях седьмых хочется сделать, чтобы форма появлялась не сразу, а постепенно, как Чеширский Кот http://www.u-antona.vrn.ru/forum/images/smilies/smile.gif
Очевидный порыв использовать alphaBlend (благо W2K есть уже почти везде) наталкивается вот на что - если сажать блендинг на OnCreate - OnPaint, то отрисовывается только форма, а картинки и кнопки на ней появляются уже ПОСЛЕ отработки; попытки принудительно отрисовать картинку в OnPaint тоже ни к чему не привели http://www.u-antona.vrn.ru/forum/images/smilies/frown.gif Можно ли как-нибудь привязаться не к началу, а к концу отрисовки формы - или еще другой какой-нибудь путь существует?..

Savant
05-03-2005, 13:16
Можно поступить примерно так:

var
FirstShow: Boolean = True;

implementation

.....

procedure TForm1.FormShow(Sender: TObject);
var
i: Byte;
begin
if not FirstShow then Exit;
FirstShow:=False;
ShowWindow(Form1.Handle,SW_SHOW);
for i:=0 to 255 do begin
Application.ProcessMessages;
Form1.AlphaBlendValue:=i;
Sleep(5); // Задержку можно уменьшить или убрать совсем
end;
end;




© OSzone.net 2001-2012