Плавное изменение высоты визуального компонента на примере TListBox
Автор: Novill
WEB-сайт: http://delphibase.endimus.com
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Плавное изменение высоты визуального компенента (пример на ListBox)
Изменение высоты визуального компенента от Min до Max шагом Step
с задержкой на шаге StepSleep миллисекунд. Понравилась краткость.
Зависимости: uses Windows,Classes,Forms,Controls, StdCtrls
Автор: novill, 2novill@mail.ru
Copyright: novill
Дата: 19 июля 2002 г.
***************************************************** }
procedure ListBoxFade(ListBox: TListBox; const Flag: Boolean;
const Min, Max, Step, StepSleep: integer);
begin
with ListBox do
begin
Height := Min + (1 - ord(Flag)) * (Max - Min);
repeat
Height := Height + (2 * ord(Flag) - 1) * Step;
Sleep(StepSleep);
until (Height <= Min) or (Height >= Max);
end;
end;
// Пример использования:
implementation
{$R *.DFM}
var
order: boolean;
procedure ListBoxFade(ListBox: TListBox; const Flag: Boolean;
const Min, Max, Step, StepSleep: integer);
begin
with ListBox do
begin
Height := Min + (1 - ord(Flag)) * (Max - Min);
repeat
Height := Height + (2 * ord(Flag) - 1) * Step;
Sleep(StepSleep);
until (Height <= Min) or (Height >= Max);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ListBoxFade(listbox1, order, 21, 105, 21, 10);
order := not order;
end;
end.
|