菜鸟捉虫(39) 2001年 39期 #1上期正确答案:   该程序当中存在三个错误:第一,没有加入stdctrls单元,根本无法创建Button控件;第二,没有指定所创建的按钮要显示的地方,即没有指定要容纳所创建控件的容器,因此无法显示出按钮来,只要在创建循环中加入“vBtn[i].ParentWindow:=Handle;”即可显示;第三,在判断哪个按钮被单击时的语句中,不能使用“:=”,这是赋值符号,不能用作比较,应该使用“=”符号。   获奖名单:   云南 向 彬 辽宁 陈晓渝 四川 周 杰   安徽 胡永进 北京 曾 成   以上幸运读者将获得电脑报最新出品的《电脑报系列配套光盘》杂志一套。   #1本期题目:   JPG是一种应用很广泛的压缩图像文件格式,如果我们想把JPG文件设置为墙纸,首先得要转换成BMP格式才行。下面这代码就是用于将JPG转换成BMP,然后再设置为墙纸,但它有错误,请找出。   uses   ... Registry ...;   ...   private   function ChangeWallPaper(PaperName:String):Boolean;   ...   implementation   {$R *.DFM}   function TForm1.ChangeWallPaper(PaperName:String):Boolean;   var   wall:TRegistry;   wallbmp:TBitMap;   WallJpg:TJpegImage;   begin   WallJpg:=TJpegImage.Create;   WallJpg.LoadFromFile(PaperName);   WallBmp:=TBitmap.Create;   WallBmp.Assign(WallJpg);   WallBmp.SaveToFile('c:\windows\mypaper.bmp');   Wallbmp.Free;   WallJpg.Free;   Wall:=TRegistry.Create;   Wall.RootKey:=hkey_current_user;   Wall.OpenKey('Control Panel\Desktop',false);   Wall.WriteString('TitleWallPaper','0');   Wall.WriteString('WallPaper','c:\windows\mypaper.bmp');   Wall.CloseKey;   Wall.Free;   SystemParametersinfo(spi_setdeskwallpaper,0,nil,spif_sendchange);   end;   procedure TForm1.Button1Click(Sender:TObject);   begin   IF ChangeWallPaper('C:\mypaper.jpg')THEN Showmessage('墙纸更换成功!');   end;