菜鸟捉虫(43)
上期正确答案:
引起错误的主要原因是没有正确检查变量值,VB的自动类型转换造成了麻烦。要避免这种情况其实很简单,在类型转换时用VB本身的错误捕获就可以了,将上期的那个子程序改为:
Private Sub Text1_KeyDown(KeyCode As Integer,Shift As Integer)
Dim i As Integer
If(KeyCode <> vbKeyReturn)Then Exit Sub
On Error GoTo ErrorHandle
i = Text1.Text
Exit Sub
ErrorHandle
If Err.Number = 13 Then '如果输入含有其他字符
MsgBox “请输入数字!”
Else '如果出现其他错误,报告错误类型和错误描述
MsgBox “错误号” + CStr(Err.Number)+ Chr(10)+“错误描述”+Err.Description
End If
End Sub
获奖名单:
安 徽 马高强
辽 宁 沈成功
云 南 王海滨
上 海 丁 益
新 疆 刘云飞
以上幸运读者将获得电脑报最新出品的《电脑报系列配套光盘》杂志一套。
本期题目:
下面一段代码用于动态创建三个Image控件,并要求能显示出图示。运行下面的代码时,却不能显示出图来,执行时没有明显的错误。请修改。
procedure TForm1.Button1Click(Sender: TObject);
var i,OldTop:integer;
begin
FOR i:=0 TO 2 DO BEGIN
imgCtrl[i]:=TImage.Create(Self);
WITH imgCtrl[i]: DO BEGIN
Left:=0; Width:=50;Height:=50;
IF i=0 THEN
Top:=0
ELSE BEGIN
OldTop:=imgCtrl.Top+Height+2;
Top:=OldTop;
END;
Picture.LoadFromFile(IntToStr(i)+'.bmp');
END;
END;
end;
procedure TForm1.FormDestroy(Sender:TObject);
var i:integer;
begin
FOR i:=0 TO 2 DO
imgCtrl[i].Free;
end;