如果在nt下,有个api可以设置,名字我忘了,效果超级好,两form上的控件都透明,而且透明度可以调整,就是不记得了 :(

解决方案 »

  1.   

    如用D6,则设form的Alphablend为true,改Alphablendvalue的大小
      

  2.   

    如用D6,则设form的Alphablend为true,改Alphablendvalue的大小
      

  3.   

    实现方法如下:
       form1.Brush.Clear;
    就可以使form透明了!
      

  4.   

    更正:
    实现方法如下:
       Form.Brush.Style:=bsClear;
    就可以使form透明了!
      

  5.   

    非常简单,只要在form1.create 中设
    brush.style:=bsclear;即可,如:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    brush.Style :=bsclear;
    end;
      

  6.   

    把窗体的transparentcolorvalue和窗体的本身color设成一个颜色,然后把transparentcolor设为true!运行一下就知道了!
      

  7.   

    手头没有现成资料! 好像以Alpha开头!
      

  8.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
        form1.Brush.Style:=bsClear;end;
      

  9.   

    如用D6,则设form的Alphablend为true,改Alphablendvalue的大小
    :這樣的只有2000/XP下有效
      

  10.   

    有一个alpha...的函数!不好意思!在网吧!
    你找找吧!FLASHGET就用它!
      

  11.   

    同意 zhouzm(不可能错过你) 不过是
    在form1.create中
    procedure Tmainfrm.FormCreate(Sender: TObject);
    begin
      mainfrm.Brush.Style:=bsClear;
    //  ^   
    //  |
    //你的窗体
    end;
      

  12.   

    给你代码:
    const
      WS_EX_LAYERED = $80000;
      LWA_ALPHA = $2;在formshow中
    var
      Longi:Longint;
    begin
      Longi:=GetWindowLong(Handle, GWL_EXSTYLE);
      Longi := Longi Or WS_EX_LAYERED;
      SetWindowLong (handle, GWL_EXSTYLE, Longi);
      SetLayeredWindowAttributes (handle, 0, 180, LWA_ALPHA);
    end;
      

  13.   

    procedure Tmainfrm.FormCreate(Sender: TObject);
    begin
      mainfrm.style:=bsclear;
    end;
      

  14.   

    var 
      FullRgn, ClientRgn, CtlRgn : THandle;procedure TForm1.DoInvisible;
    var
      AControl : TControl;
      A, Margin, X, Y, CtlX, CtlY : Integer;
    begin
      Margin := ( Width - ClientWidth ) div 2;
      //First, get form region
      FullRgn := CreateRectRgn(0, 0, Width, Height);
      //Find client area region
      X := Margin;
      Y := Height - ClientHeight - Margin;
      ClientRgn := CreateRectRgn( X, Y, X + ClientWidth, Y + ClientHeight );
      //'Mask' out all but non-client areas
      CombineRgn( FullRgn, FullRgn, ClientRgn, RGN_DIFF );  //Now, walk through all the controls on the form and 'OR' them
      // into the existing Full region. 
      for A := 0 to ControlCount - 1 do begin
        AControl := Controls[A]; 
        if ( AControl is TWinControl ) or ( AControl is TGraphicControl )
            then with AControl do begin 
          if Visible then begin
            CtlX := X + Left;
            CtlY := Y + Top;
            CtlRgn := CreateRectRgn( CtlX, CtlY, CtlX + Width, CtlY + Height );
            CombineRgn( FullRgn, FullRgn, CtlRgn, RGN_OR ); 
          end;
        end;
      end;
      //When the region is all ready, put it into effect:
      SetWindowRgn(Handle, FullRgn, TRUE);
    end;以前做的,不过比较复杂,看看好用不,也多请教。
      

  15.   

    对对对,我说道就是那个setlayar...函数,不过只能在nt下用
      

  16.   

    同意luoweicaisd(笑三少) 的回答!