微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题菜鸟捉虫(39)
栏目软件世界
发布2001年39期
  上期正确答案:
  该程序当中存在三个错误:第一,没有加入stdctrls单元,根本无法创建Button控件;第二,没有指定所创建的按钮要显示的地方,即没有指定要容纳所创建控件的容器,因此无法显示出按钮来,只要在创建循环中加入“vBtn[i].ParentWindow:=Handle;”即可显示;第三,在判断哪个按钮被单击时的语句中,不能使用“:=”,这是赋值符号,不能用作比较,应该使用“=”符号。
  获奖名单:
  云南 向 彬  辽宁 陈晓渝  四川 周 杰
  安徽 胡永进  北京 曾 成
  以上幸运读者将获得电脑报最新出品的《电脑报系列配套光盘》杂志一套。
   本期题目:
  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;