菜鸟捉虫(43) 2001年 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;