当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 我已安装了win2000 adverse server(pack 3)/iis/.net sdk/甚至vs.net 。但还是不运行,是iis的错?还是.net 的错?我该怎么办? ......
    摘要: 用php连接mysql的时候,可以用mysql_fetch_row传回一行记录;用用php连接odbc的时候,有没有相应的功能?用odbc_fetch_row只是传回一列的值 用什么方法可以实现呢? ......


{求助}把按钮变成想要的形状

在DELPHI中怎么才能把按钮边成自己想要的形状?请大家帮帮忙

NO.1   作者: myling

将按钮的区域句柄得到,  
   
  再创建几个区域,与、或、非就行了  
   
   
  查查相关的api函数吧

NO.2   作者: goomoo

//此函数通过一张位图来创建一个区域,支持bmp格式和jpg格式  
  //位图中黑色的地方将不透明,非黑色的地方透明,  
  //创建完毕后可以通过SetWindowRgn函数设置窗口或控件的形状,如:  
  //setWindowRgn(handle,zjs_createImageRegion(c:\goomoo.bmp),true);  
  uses   jpeg;  
  function   zjs_createImageRegion(imageFile:TFilename):HRGN;  
  var  
      bitmap:TBitmap;                           //位图对象  
      jpg:TJpegImage;  
      hRegion,hTmpRegion:HRGN;         //hRegion:   最终区域   hTmpRegion   临时区域  
      h,l,left,right:integer;         //h:行   l:列     left:临时区域的左边   right:临时区域的右边  
      started:Boolean;         //是否开始记录  
      ext:String;                   //图片扩展名  
  begin  
      if   not   fileExists(imageFile)   then  
      begin  
          result:=0;  
          exit;   //文件不存在则退出,并返回0  
      end;  
      bitmap:=TBitmap.Create;  
    try  
      ext:=extractFileExt(imageFile); ext:=lowerCase(ext);  
      if   (ext=.jpg)   or   (ext=.jpeg)   then       //如果是jpg图片  
      begin  
          jpg:=TJpegImage.Create;  
          try  
              jpg.LoadFromFile(imageFile);  
              bitmap.Assign(jpg);           //从Jpg中把位图拷贝过来  
          finally  
              jpg.Free;                               //及时释放jpg  
          end;  
      end  
      else   if   ext=.bmp   then  
          bitmap.LoadFromFile(imageFile)       //载入位图  
      else  
      begin  
          result:=0;  
          exit;  
      end;  
   
      hRegion:=createRectRgn(0,0,0,0);         //创建一个初始的空的区域  
      //初始化变量,消除警告信息  
      left:=0;   right:=0;  
      //开始扫描图片的每个像素  
      for   h:=0   to   bitmap.Height-1   do  
      begin  
          started:=false;        
          for   l:=0   to   bitmap.Width-1   do  
          begin  
              if   bitmap.Canvas.Pixels[l,h]=clBlack   then       //黑色为不透明区域,其他颜色为透明区域  
              begin  
                  if   not   started   then  
                  begin  
                      started:=true;         //开始记录右边  
                      left:=l;   right:=l+1;  
                  end  
                  else         //started  
                  begin  
                      right:=l;  
                  end;  
              end  
              else  
              begin  
                  if   started   then           //如果已经开始并且该点的颜色不是黑色  
                  begin  
                      started:=false;       //结束记录右边  
                      hTmpRegion:=createRectRgn(left,h,right,h+1);  
                      combineRgn(hRegion,hRegion,hTmpRegion,RGN_OR);  
                  end;  
              end;  
          end;  
          if   started   then       //到了图片的右边还没有结束  
          begin  
              if   right>bitmap.Width-1   then   right:=bitmap.Width-1;  
              hTmpRegion:=createRectRgn(left,h,right,h+1);  
              combineRgn(hRegion,hRegion,hTmpRegion,RGN_OR);  
          end;  
      end;  
    finally  
      bitmap.Free;  
    end;  
      Result:=hRegion;  
  end;  
   
   
  procedure   TForm1.FormCreate(Sender:   TObject);  
  begin  
      setWindowRgn(button1.Handle,zjs_createImageRegion(c:\goomoo.bmp),true);  
  end;


    摘要: 我用rtf文本域,可以在b/s下调整其高度和宽度,可是rtf文本域的值在b/s下的视图中显示不出来,显示为<blank>,请问该怎么办啊? ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE