1、第 5 章实验一:设计由按钮类组件实现的功能窗体1. 实验目的:熟悉 delphi 中按钮型组件的使用,锻炼代码编写2. 实验要求:按要求设计一窗体,并实现其功能3. 实验示例设计一点菜窗口,用户只能在“龙虾,青蟹,鲍鱼”中选择一项,对佐料“酱油,芥末,醋”中任意选择,提交后生成选择内容的文本。(1) 新建一个窗体(2) 添加组件及设置组件属性如下:(3) 编写组件事件代码Procedure Tform1.button1click(sender:Tobject);Var choice:string;BeginIf radiogroup1.itemindex上海 Button2 Caption
2、深圳 Button3 Caption 0 thenbutton2.Enabled :=trueelsebutton2.Enabled :=false;if listbox2.Count 0 thenbutton5.Enabled :=trueelsebutton5.Enabled :=false;if listbox1.selCount 0 thenbutton3.Enabled :=trueelsebutton3.Enabled :=false;if listbox2.selCount 0 thenbutton4.Enabled :=trueelsebutton4.Enabled :=fal
3、se;button6.Enabled :=false;for i:=1 to listbox2.Count -1 doif listbox2.Selected i thenbeginbutton6.Enabled :=true;break;end;button7.Enabled :=false;for i:=0 to listbox2.Count -2 doif listbox2.Selected i thenbeginbutton7.Enabled :=true;break;end;end;procedure TForm1.Button1Click(Sender: TObject);begi
4、nfor i:=0 to listbox1.Items.Count -1 dobeginlistbox2.Items.Add(listbox1.Items .Strings i);end;for i:=listbox1.Items.Count -1 downto 0 dolistbox1.Items.Delete(i);showbtnen;end;procedure TForm1.Button2Click(Sender: TObject);var item:integer;beginfor item:=0 to listbox1.Items.Count -1 doif listbox1.Sel
5、ected item thenbeginlistbox2.Items.Add(listbox1.Items.Strings item);listbox1.Items.Delete(item);break;end;showbtnen;end;四:按需求将各种组件灵活组合,实现窗体功能1 实验目的:熟悉 delphi 中列表型组件的使用,锻炼代码编写2 实验要求:按要求设计一窗体,并实现其功能3 实验示例根据 3 个 scrollbar 的值设置 panel 的颜色,色板二字始终与 panel 反色,将“永”字的颜色按 panel 的颜色设置(1) 新建一窗体(2) 添加组件及设置组件属性组件 属
6、性 属性值Label1 Caption 红Label2 Caption 绿Label3 Caption 蓝Label4 Caption 步长Label5 Caption 永Scrollbar1 Max 255Scrollbar2 Max 255Scrollbar3 Max 255Trackbar1 Max 1Panel1 FontButton1 Caption OkButton2 caption cancel(3)编写事件代码procedure TForm1.ScrollBar1Change(Sender: TObject);beginLabel1.Caption:=Label1.Captio
7、n+inttostr(ScrollBar1.position);Panel1.Color:=rgb(ScrollBar1.Position,ScrollBar2.Position,ScrollBar3.Position);Panel1.Font.Color:=rgb(255-ScrollBar1.Position,255-ScrollBar2.Position,255-ScrollBar3.Position);end;procedure TForm1.ScrollBar2Change(Sender: TObject);beginLabel2.Caption:=Label2.Caption+in
8、ttostr(ScrollBar1.position);Panel1.Color:=rgb(ScrollBar1.Position,ScrollBar2.Position,ScrollBar3.Position);Panel1.Font.Color:=rgb(255-ScrollBar1.Position,255-ScrollBar2.Position,255-ScrollBar3.Position);end;procedure TForm1.ScrollBar3Change(Sender: TObject);beginLabel3.Caption:=Label3.Caption+inttos
9、tr(ScrollBar1.position);Panel1.Color:=rgb(ScrollBar1.Position,ScrollBar2.Position,ScrollBar3.Position);Panel1.Font.Color:=rgb(255-ScrollBar1.Position,255-ScrollBar2.Position,255-ScrollBar3.Position);end;procedure TForm1.BitBtn1Click(Sender: TObject);beginlabel5.Font.Color:=panel1.Color;end;procedure
10、 TForm1.BitBtn2Click(Sender: TObject);beginclose;end;procedure TForm1.TrackBar1Change(Sender: TObject);beginScrollBar1.LargeChange:=TrackBar1.Position;ScrollBar2.LargeChange:=TrackBar1.Position;ScrollBar3.LargeChange:=TrackBar1.Position;end;end.五:制作一个简单计算器1 实验目的:熟悉 delphi 中列表型组件的使用,锻炼代码编写2 实验要求:按要求设
11、计一窗体,并实现其功能3 实验示例(1) 新建一窗体(2) 添加组件及设置组件属性1. 将18个SpeedButton按钮的Name属性分别设置为SBtn0、SBtn1、SBtn2、SBtn3、SBtn4、SBtn5、SBtn6、SBtn7、SBtn8、SBtn9、SBtnAdd、SBtnSub、SBtnMul、SBtnDiv、SBtnEqual、SBtnSymbol。2. SBtn0至SBtn9用于向编辑框输入1、2、3、4、5、6、7、8、9、0数字信息。将它们的Caption属性分别设置为1、2、3、4、5、6、7、8、9、0。3. SBtnEqual用于计算结果。将它的Caption设
12、置为“=”。4. SBtnAdd、SBtnSub、SBtnMul、SBtnDiv用于向计算器提供计算方式和第一个计算数。将它们的Caption属性分别设置为、。5. 2个BitBtn按钮的Name属性分别为BitBtnClear、BitBtnClose。BitBtnClear按钮用于清除编辑框,BitBtnClose按钮用于提供系统。设计后的窗体界面如图5-18所示。(3) 添加事件代码varForm1: TForm1;temp:real;flag:integer;implementation$R *.dfm/清除编辑框框的内容procedure TForm1.BitBtnClearClick
13、(Sender: TObject);beginself.Edit1.Clear;end;/退出程序procedure TForm1.BitBtnQuitClick(Sender: TObject);beginself.Close;end;procedure TForm1.SBtn0Click(Sender: TObject);beginself.Edit1.Text:=self.Edit1.Text+0;end;procedure TForm1.SBtn1Click(Sender: TObject);beginself.Edit1.Text:=self.Edit1.Text+1;end;pro
14、cedure TForm1.SBtn2Click(Sender: TObject);beginself.Edit1.Text:=self.Edit1.Text+2;end;procedure TForm1.SBtn3Click(Sender: TObject);beginself.Edit1.Text:=self.Edit1.Text+3;end;procedure TForm1.SBtn4Click(Sender: TObject);beginself.Edit1.Text:=self.Edit1.Text+4;end;procedure TForm1.SBtn5Click(Sender:
15、TObject);beginself.Edit1.Text:=self.Edit1.Text+5;end;procedure TForm1.SBtn6Click(Sender: TObject);beginself.Edit1.Text:=self.Edit1.Text+6;end;procedure TForm1.SBtn7Click(Sender: TObject);beginself.Edit1.Text:=self.Edit1.Text+7;end;procedure TForm1.SBtn8Click(Sender: TObject);beginself.Edit1.Text:=se
16、lf.Edit1.Text+8;end;procedure TForm1.SBtn9Click(Sender: TObject);beginself.Edit1.Text:=self.Edit1.Text+9;end;procedure TForm1.SBtnAddClick(Sender: TObject);beginflag:=1; /标识为加法temp:=strtofloat(self.Edit1.Text);self.Edit1.Clear;end;procedure TForm1.SBtnSubClick(Sender: TObject);beginflag:=2; /标识为减法te
17、mp:=strtofloat(self.Edit1.Text);self.Edit1.Clear;end;procedure TForm1.SBtnMulClick(Sender: TObject);beginflag:=3; /标识为乘法temp:=strtofloat(self.Edit1.Text);self.Edit1.Clear;end;procedure TForm1.SBtnDivClick(Sender: TObject);beginflag:=4; /标识为除法temp:=strtofloat(self.Edit1.Text);self.Edit1.Clear;end;pro
18、cedure TForm1.SBtnSymbolClick(Sender: TObject);beginself.Edit1.Text:=floattostr(-1*strtofloat(self.Edit1.Text);end;procedure TForm1.SBtnEqualClick(Sender: TObject);varnum1,num2,s:real;beginnum1:=temp;num2:=strtofloat(self.Edit1.Text);case flag of1:s:=num1+num2;2:s:=num1-num2;3:s:=num1*num2;4:s:=num1/num2;end;self.Edit1.Text:=floattostr(s);end;end.(4) 保存程序(5) 运行程序