Проблема с OnActivate
Добавлено: 04 янв 2010, 15:03
Здравствуйте, у меня возникла следующая проблема. Есть форма. На ней растянут Имейдж. Для того, чтобы форма плавно появлялась был написан следующий код:
Procedure TForm1.FormCreate(Sender: TObject);
Begin
Form1.AlphaBlendValue:=0;
Form1.AlphaBlend:=True;
End;
Procedure TForm1.FormActivate(Sender: TObject);
Var i: Integer;
Begin
For i:=1 To 255 Do
Begin
Form1.AlphaBlendValue:=i;
Application.ProcessMessages;
End;
End;
Procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Var i: Integer;
Begin
Form1.Enabled:=False;
For i:=254 DownTo 0 Do
Begin
Form1.AlphaBlendValue:=i;
Application.ProcessMessages;
End;
End;
Но тут возникла проблема. При первом открытии форма появляется то плавно, но сперва появляется только одна часть формы, а через пару секунд, открывается пропущенная часть. При последующих открытиях - все нормально. Потом я писал другой код тоже с он Активэйт - и был такой же прикол( Подскажите пожалуйста, как можно избежать появление формы частями или на какое событие можно поменять ОнАктивейт, чтобы добится плавного появления формы
Procedure TForm1.FormCreate(Sender: TObject);
Begin
Form1.AlphaBlendValue:=0;
Form1.AlphaBlend:=True;
End;
Procedure TForm1.FormActivate(Sender: TObject);
Var i: Integer;
Begin
For i:=1 To 255 Do
Begin
Form1.AlphaBlendValue:=i;
Application.ProcessMessages;
End;
End;
Procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Var i: Integer;
Begin
Form1.Enabled:=False;
For i:=254 DownTo 0 Do
Begin
Form1.AlphaBlendValue:=i;
Application.ProcessMessages;
End;
End;
Но тут возникла проблема. При первом открытии форма появляется то плавно, но сперва появляется только одна часть формы, а через пару секунд, открывается пропущенная часть. При последующих открытиях - все нормально. Потом я писал другой код тоже с он Активэйт - и был такой же прикол( Подскажите пожалуйста, как можно избежать появление формы частями или на какое событие можно поменять ОнАктивейт, чтобы добится плавного появления формы