这是了一辆车来回走的代码,希望能给你启发哈! smallcar1,smallcar2是两个图片;drivearea是车走的区域。//预先设定1号车可视,2号车不可视 begin if direction then begin smallcar1.Left := smallcar1.left+steps; smallcar2.Left := smallcar2.left+steps; //以steps的步长向右移动 end else begin smallcar2.left := smallcar2.left-steps; smallcar1.left := smallcar1.left-steps; //以steps的步长向左移动 end; if smallcar1.Left + smallcar1.width >= drivearea.Width-steps then //如果1号车+车长 离区域右边界大于等于于1个步长 begin direction :=false; //改变方向 smallcar2.Visible := true; //2号车可视 smallcar1.Visible := false;//1号车不可视 end; if smallcar1.Left<=0+steps then //如果1号车离区域左边界小于等于1个步长 begin direction := true; //改变方向 smallcar1.Visible :=true; //1号车可视 smallcar2.Visible :=false; //2号车不可视 end;
这样吧,就放一个label,写上文字,然后呢,再放两个timer(timer1,timer2);设开始时label1处于窗口的最左边, timer1.ontimer() begin if (label1.left+label1.width)<form1.with then begin label1.left:=label1.left+1; end else begin timer1.enabled:=false; timer2.enabled:=true; end; timer2.ontimer() begin if label1.left>form1.left then begin label1.left:=label1.left-1; end else begin timer2.enabled:=false; timer1.enabled:=true; end;
baisha178:你能说得具体点吗?我是初学者,谢谢!
具体的代码如下://设timer1.enabled:=true;timer2.enabled:=false; procedure TForm1.Timer1Timer(Sender: TObject); begin if label1.Left+label1.Width<form1.Width then begin label1.Left:=label1.Left+10; end else begin timer1.Enabled:=false; timer2.Enabled:=true; end; end;procedure TForm1.Timer2Timer(Sender: TObject); begin if label1.left>0 then begin label1.Left:=label1.Left-10; label2.Caption:=inttostr(label1.Left); end else begin timer2.Enabled:=false; timer1.Enabled:=true; end; end;
label1.left:=label1.left+5
else
label1.left:=label1.left-5
试试吧~理论上可以~
smallcar1,smallcar2是两个图片;drivearea是车走的区域。//预先设定1号车可视,2号车不可视
begin
if direction then
begin
smallcar1.Left := smallcar1.left+steps;
smallcar2.Left := smallcar2.left+steps; //以steps的步长向右移动
end
else
begin
smallcar2.left := smallcar2.left-steps;
smallcar1.left := smallcar1.left-steps; //以steps的步长向左移动
end;
if smallcar1.Left + smallcar1.width >= drivearea.Width-steps then
//如果1号车+车长 离区域右边界大于等于于1个步长
begin
direction :=false; //改变方向
smallcar2.Visible := true; //2号车可视
smallcar1.Visible := false;//1号车不可视
end;
if smallcar1.Left<=0+steps then
//如果1号车离区域左边界小于等于1个步长
begin
direction := true; //改变方向
smallcar1.Visible :=true; //1号车可视
smallcar2.Visible :=false; //2号车不可视
end;
timer1.ontimer()
begin
if (label1.left+label1.width)<form1.with then
begin
label1.left:=label1.left+1;
end
else
begin
timer1.enabled:=false;
timer2.enabled:=true;
end;
timer2.ontimer()
begin
if label1.left>form1.left then
begin
label1.left:=label1.left-1;
end
else
begin
timer2.enabled:=false;
timer1.enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if label1.Left+label1.Width<form1.Width then
begin
label1.Left:=label1.Left+10;
end
else
begin
timer1.Enabled:=false;
timer2.Enabled:=true;
end;
end;procedure TForm1.Timer2Timer(Sender: TObject);
begin
if label1.left>0 then
begin
label1.Left:=label1.Left-10;
label2.Caption:=inttostr(label1.Left);
end
else
begin
timer2.Enabled:=false;
timer1.Enabled:=true;
end;
end;