
22.05.2009, 00:21
|
Активный
|
|
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
|
|
Вот, написала небольшой примерчик...
pas-файл:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
procedure AnyBitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.AnyBitBtn1Click(Sender: TObject);
const
StepCount = 200; // число шажков от начального к конечному положению
var
i: Integer;
Btn1LT0, Btn2LT0, Btn3LT0, Btn4LT0, Btn5LT0: TPoint;
Btn1LT, Btn2LT, Btn3LT, Btn4LT, Btn5LT: TPoint;
begin
// находим начальные положения кнопок
Btn1LT0.X := BitBtn1.Left; Btn1LT0.Y := BitBtn1.Top;
Btn2LT0.X := BitBtn2.Left; Btn2LT0.Y := BitBtn2.Top;
Btn3LT0.X := BitBtn3.Left; Btn3LT0.Y := BitBtn3.Top;
Btn4LT0.X := BitBtn4.Left; Btn4LT0.Y := BitBtn4.Top;
Btn5LT0.X := BitBtn5.Left; Btn5LT0.Y := BitBtn5.Top;
// задаём конечные положения кнопок
Btn1LT.X := 400; Btn1LT.Y := 80;
Btn2LT.X := 400; Btn2LT.Y := 112;
Btn3LT.X := 400; Btn3LT.Y := 144;
Btn4LT.X := 400; Btn4LT.Y := 176;
Btn5LT.X := 400; Btn5LT.Y := 208;
// поехали...
for i := 1 to StepCount do
begin
BitBtn1.Left := Round(Btn1LT0.X + i * (Btn1LT.X - Btn1LT0.X) / StepCount);
BitBtn1.Top := Round(Btn1LT0.Y + i * (Btn1LT.Y - Btn1LT0.Y) / StepCount);
BitBtn2.Left := Round(Btn2LT0.X + i * (Btn2LT.X - Btn2LT0.X) / StepCount);
BitBtn2.Top := Round(Btn2LT0.Y + i * (Btn2LT.Y - Btn2LT0.Y) / StepCount);
BitBtn3.Left := Round(Btn3LT0.X + i * (Btn3LT.X - Btn3LT0.X) / StepCount);
BitBtn3.Top := Round(Btn3LT0.Y + i * (Btn3LT.Y - Btn3LT0.Y) / StepCount);
BitBtn4.Left := Round(Btn4LT0.X + i * (Btn4LT.X - Btn4LT0.X) / StepCount);
BitBtn4.Top := Round(Btn4LT0.Y + i * (Btn4LT.Y - Btn4LT0.Y) / StepCount);
BitBtn5.Left := Round(Btn5LT0.X + i * (Btn5LT.X - Btn5LT0.X) / StepCount);
BitBtn5.Top := Round(Btn5LT0.Y + i * (Btn5LT.Y - Btn5LT0.Y) / StepCount);
end;
end;
end.
dfm-файл:
Код:
object Form1: TForm1
Left = 192
Top = 114
Width = 696
Height = 480
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object BitBtn1: TBitBtn
Left = 8
Top = 384
Width = 75
Height = 25
Caption = 'BitBtn1'
TabOrder = 0
OnClick = AnyBitBtn1Click
end
object BitBtn2: TBitBtn
Left = 88
Top = 384
Width = 75
Height = 25
Caption = 'BitBtn2'
TabOrder = 1
OnClick = AnyBitBtn1Click
end
object BitBtn3: TBitBtn
Left = 168
Top = 384
Width = 75
Height = 25
Caption = 'BitBtn3'
TabOrder = 2
OnClick = AnyBitBtn1Click
end
object BitBtn4: TBitBtn
Left = 248
Top = 384
Width = 75
Height = 25
Caption = 'BitBtn4'
TabOrder = 3
OnClick = AnyBitBtn1Click
end
object BitBtn5: TBitBtn
Left = 328
Top = 384
Width = 75
Height = 25
Caption = 'BitBtn5'
TabOrder = 4
OnClick = AnyBitBtn1Click
end
end
|