Delphi入门与提高上机指导
(一)星体运动模拟
界面设计
? 窗体设计
打开
Delphi之后自动生成一个程序框架, 包括一个窗体界面。选中该窗体,在属性 栏选中属性:caption,填入“星体运动模 拟”作为标题
界面设计
? 星体设计 选择属性栏,第二栏“Additional”,选 中第7个控件:shape,点击窗体将其放入 窗体(为一个正方形)。 在属性栏设置其属性: 1、Shape属性,选择Stcircle(圆形); 2、Brush属性,子属性Corlor,选择Clred 红色。(红色圆圈表示太阳)。
界面设计
? 星体设计 选择属性栏,第二栏“Additional”,选 中第7个控件:shape,点击窗体将其放入 窗体(为一个正方形)。 在属性栏设置其属性: 1、Shape属性,选择Stcircle(圆形); 2、Brush属性,子属性Corlor,选择Clblue 蓝色。(蓝色圆圈表示地球)。
界面设计
? 星体
设计 选择属性栏,第二栏“Additional”,选 中第7个控件:shape,点击窗体将其放入 窗体(为一个正方形)。 在属性栏设置其属性: 1、Shape属性,选择Stcircle(圆形); 2、Brush属性,子属性Corlor,选择 Clyellow黄色。(黄色圆圈表示月亮)。
界面设计
? 星体设计 调整三个形体的大小, 选中太阳:设置属性width,height为100 选中地球:设置属性width,height为30 选中月亮:设置属性width,height为10
界面设计
? 界面
程序原理
? 动画实现
X:=shape1.left+shape1.width div 2
Y:=shape1.top+shape1.height div 2
x:=r*cosAn+X y:=r*cosAn+Y An:=Det1*t; Shape2.left:=x-Shape2.width div 2
Shape2.top:=y-Shape2.height div 2
程序设计
? 程序知识
在整个单元内都可以使用的变量叫全局变量。一般定义在所有函数的前面。 implementation {$R *.dfm} Var n:integer; procedure TForm1.FormCreate(Sender: TObject); Var 局部变量 begin end;
程序设计
? 动画实现 Ttimer控件介绍 system属性栏第一个(钟表形状) 作用:记时,每隔一段时间调用事件 Ontimer中的代码,可用于实现动画。 Interval属性决定,间隔时间,1000表示一 秒。
示例代码
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? var n:integer; procedure TForm1.Timer1Timer(Sender: TObject); var rr1:integer; cx1,cy1,cx2,cy2:integer;/////圆心(太阳、地球) begin rr1:=100; cx1:=shape1.Left+shape1.Width div 2; ////////太阳圆心坐标 cy1:=shape1.Top +shape1.Height div 2; ////////太阳圆心坐标 cx2:=cx1+round(rr1*sin(N*0.02)); ////////地球圆心坐标 cy2:=cy1+round(rr1*cos(N*0.02)); ////////地球圆心坐标 shape2.Left:=cx2-shape2.Width div 2; ////////地球控件位置 shape2.Top:=cy2-shape2.Height div 2; ////////地球控件位置 n:=n+1; /////////时间累加 end;
思考
? 月亮的代码如何设计; ? 转动速度如何改变; ? 初始位置的调整;