|
#1
|
||||
|
||||
Циклы, циклы...
Hi guys! Подскажите правильно я использовал циклы или можно сделать по-лучше? процедура осуществляет плавное затухание и появления label, но уже с другим текстом, вот собственно код:
Код:
procedure TACForm.FadeLabel(ALabel: TAlphaLabel; NewCaption: string); var Opacity: Integer; begin for Opacity := 0 to 100 do begin Application.ProcessMessages; Sleep(3); ALabel.AlphaValue := Opacity; end; ALabel.Caption := NewCaption; ALabel.Left := (ACForm.Width div 2) - (ALabel.Width div 2); for Opacity := 100 downto 0 do begin Application.ProcessMessages; Sleep(3); ALabel.AlphaValue := Opacity; end; end; |
#2
|
||||
|
||||
Цитата:
И ещё "Application.ProcessMessages" подразумевает обработку сообщений, так что если в этом месте будет получено сообщение, то затухание или появление label будет приостановлено до полной обработки этого сообщения, поэтому возможно лучше вместо "Application.ProcessMessages" использовать что-то типа "ALabel.Repaint". Правда я не знаю что такое TAlphaLabel, так что ничего точно сказать не могу. |
#3
|
||||
|
||||
Ну название я исправлю TAlphaLabel - этот тот же самый label, но с параметром AlphaValue.
|