亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? transpanel.pas

?? 皮膚按鈕 skinbutton transpanel ... 歡迎改進
?? PAS
字號:
unit TransPanel;

interface

uses
  windows,SysUtils, Classes, Controls, graphics,ExtCtrls,
  messages;

type 
  T24Color = record
    b, g, r: Byte;
  end;
  P24Color = ^T24Color;
TPanelBorder =(pbUp,pbDown,pbNormal,pbNone);


  TTransPanel = class(TCustomPanel)
  private
    FTransparentRate: Integer;      // 透明度
    FBkGnd : TBitmap;
    fbmp: tbitmap;
    fpb: tpanelborder;
    fpbpen: tpen;               // 背景buffer

    { Private declarations }
    procedure SetTransparentRate(value: Integer);
    procedure WMEraseBkgnd(var Msg: TMessage); message WM_ERASEBKGND;
    procedure setbmp(const Value: tbitmap);
    procedure setbp(const Value: tpanelborder);
    procedure setpbpen(const Value: tpen);
  protected
    { Protected declarations }
    procedure BuildBkgnd; virtual;         // 生成半透明的背景
    procedure SetParent(AParent : TWinControl); override;
    procedure CreateParams(var Params: TCreateParams); override;
    procedure Paint; override;
  public
    { Public declarations }
    Constructor Create(AOwner: TComponent); override;
    Destructor Destroy; override;
    procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;  // resize or move
    procedure Invalidate; override;
    procedure InvalidateA; virtual;
  published
    { Published declarations }
 Property   TransparentRate: Integer   Read          FTransparentRate
                                       Write       SetTransparentRate;
 property Bitmap:tbitmap read fbmp write setbmp;
 property PanelBordeR:tpanelborder read fpb write setbp;
 property PanelBorderPen:tpen read fpbpen write setpbpen;
    property Align;
    property Alignment;
    property Anchors;
    property AutoSize;
    property BevelInner;
    property BevelOuter;
    property BevelWidth;
    property BiDiMode;
    property BorderWidth;
    property BorderStyle;
    property Caption;
    property Color;
    property Constraints;
    property Ctl3D;
    property UseDockManager default True;
    property DockSite;
    property DragCursor;
    property DragKind;
    property DragMode;
    property Enabled;
    property FullRepaint;
    property Font;
    property Locked;
    property ParentBiDiMode;
    property ParentBackground;
    property ParentColor;
    property ParentCtl3D;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ShowHint;
    property TabOrder;
    property TabStop;
    property Visible;
    property OnCanResize;
    property OnClick;
    property OnConstrainedResize;
    property OnContextPopup;
    property OnDockDrop;
    property OnDockOver;
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDock;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnGetSiteInfo;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
    property OnResize;
    property OnStartDock;
    property OnStartDrag;
    property OnUnDock;
 
end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('standard', [TTransPanel]);
end;

{ TTransPanel }

procedure TTransPanel.BuildBkgnd;
var
  p, p1: P24Color;  
  C : LongInt;
  i, j: Integer;
begin
  FBkgnd.PixelFormat := pf24Bit;
  FBkgnd.Width := Width;
  FBkgnd.Height := Height;
  if not fbmp.Empty then canvas.StretchDraw(canvas.ClipRect,fbmp);
  if ftransparentrate > 0 then
  begin
    BitBlt(FBkgnd.Canvas.handle, 0, 0, Width, Height, Canvas.Handle, 0, 0, SRCCOPY);
    if ftransparentrate < 100 then   // 部分透明
    begin
      c := ColorToRGB(Color);
                                        // 注意: ColorToRGB得到的顏色r, b位置與
                                        // scanline中顏色順序正好相反.
      p1 := @c;
      for i := 0 to FBkgnd.Height - 1 do
      begin
        p := FBkgnd.Scanline[i];
        for j := 0 to FBkgnd.Width - 1 do
        begin
          p^.r := (p^.r * ftransparentrate + p1^.b * (100-ftransparentrate)) div 100;
          p^.g := (p^.g * ftransparentrate + p1^.g * (100-ftransparentrate)) div 100;
          p^.b := (p^.b * ftransparentrate + p1^.r * (100-ftransparentrate)) div 100;
          p := pointer(integer(p)+3);
        end;
      end;
    end;
  end
  else begin     // 不透明
    c := CreateSolidBrush(ColorToRGB(color));
    FillRect(FBkgnd.canvas.handle,fbkgnd.Canvas.ClipRect, c);
    deleteobject(c);    
  end;
  controlstyle := controlstyle + [csOpaque];   // 背景沒有變化時的重畫不會出現閃爍
end;

constructor TTransPanel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  fbmp:=tbitmap.Create;
  FBkgnd := TBitmap.Create;
  fTransparentRate := 0;
  fpb:=pbnormal;
  fpbpen:=tpen.Create;
end;

procedure TTransPanel.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  params.ExStyle := Params.ExStyle or WS_EX_TRANSPARENT;
end;

destructor TTransPanel.Destroy;
begin
fpbpen.Free;
fbkgnd.free;
fbmp.Free;
  inherited;
end;

procedure TTransPanel.Invalidate;
begin
  //if assigned(fbkgnd) then
  //begin
    //fbkgnd.free;
    //fbkgnd := nil;
    controlstyle := controlstyle - [csOpaque];
 // end;
  inherited;
end;

procedure TTransPanel.InvalidateA; // 刷新時不重新計算背景(可以加快顯示速度)
begin
  inherited Invalidate;
end;
                           
procedure TTransPanel.Paint;
var
r:trect;
begin
  inherited;
  r:=rect(0,0,width,height);
  self.BuildBkgnd;
  bitblt(Canvas.handle, 0, 0, width, height, FBkgnd.Canvas.Handle, 0, 0, SRCCOPY);
  canvas.Brush.Style:=bsclear;
  canvas.Pen:=fpbpen;
  canvas.Pen.Color:=fpbpen.Color;
  canvas.Pen.Style:=fpbpen.Style;
  canvas.Pen.Width:=fpbpen.Width;
  case fpb of
  pbup:frame3d(canvas,r,clwhite,clblack,fpbpen.Width);
  pbdown:frame3d(canvas,r,clblack,clwhite,fpbpen.Width);
  pbnormal:frame3d(canvas,r,fpbpen.Color ,fpbpen.Color,fpbpen.Width);
  end;
end;

procedure TTransPanel.setbmp(const Value: tbitmap);
begin
  fbmp.Assign(value);
  invalidate;
end;

procedure TTransPanel.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);
begin
  if ftransparentrate > 0 then    // 移動時能獲得正確的背景
    invalidate;
  inherited;
end;

procedure TTransPanel.setbp(const Value: tpanelborder);
begin
  fpb := Value;
  invalidate;
end;

procedure TTransPanel.SetParent(AParent: TWinControl);
begin
  inherited SetParent(AParent);
  if (AParent <> nil) and AParent.HandleAllocated
  and (GetWindowLong(AParent.Handle, GWL_STYLE) and WS_CLIPCHILDREN <> 0)
  then
    SetWindowLong(AParent.Handle, GWL_STYLE,
             GetWindowLong(AParent.Handle, GWL_STYLE) 
             and not WS_CLIPCHILDREN);
end;

procedure TTransPanel.setpbpen(const Value: tpen);
begin
  fpbpen.Assign(value);
  invalidate;
end;

procedure TTransPanel.SetTransparentRate(value: Integer);
begin
  if (value <0) or (value > 100) then exit;
  if value <> FTransparentRate then
  begin
    FTransparentRate := value;
    Invalidate;
  end;
end;

procedure TTransPanel.WMEraseBkgnd(var Msg: TMessage);
begin
Msg.Result := 1;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产综合人成综合网站| 国产一区二区三区综合| 免费观看日韩电影| av高清久久久| 国产精品久久久久久久岛一牛影视 | 日韩一区二区在线看| 亚洲美女视频在线观看| 欧美日韩视频在线观看一区二区三区| 亚洲综合色婷婷| 久久久久国产成人精品亚洲午夜| 精品欧美一区二区久久| 亚洲色图一区二区| 国产经典欧美精品| 欧美一区二区精品在线| 日韩电影在线免费观看| 欧美性生交片4| 亚洲欧美一区二区不卡| 国产91在线看| 久久久99久久精品欧美| 精品一区二区三区在线观看| 欧美日韩高清一区二区| 亚洲综合色丁香婷婷六月图片| www.性欧美| 国产精品国产自产拍高清av| 成人综合在线观看| 国产色综合久久| 丁香亚洲综合激情啪啪综合| 久久久久久久久久电影| 国产一区二区三区观看| 欧美xxxxx牲另类人与| 精品一区二区免费在线观看| 日韩亚洲国产中文字幕欧美| 美女一区二区在线观看| 91精品国产全国免费观看| 香蕉影视欧美成人| 69堂亚洲精品首页| 麻豆精品在线播放| 欧美成人乱码一区二区三区| 国产一区二区在线观看免费| 久久免费视频色| 成人免费观看视频| 亚洲精品视频在线看| 欧美日韩情趣电影| 日韩av电影免费观看高清完整版 | 精品视频一区 二区 三区| 一区二区三区成人| 欧美日韩免费电影| 久久精品国产99国产| 久久久久久**毛片大全| 国产成人精品aa毛片| 国产精品久久久久久久岛一牛影视 | 69堂成人精品免费视频| 另类小说欧美激情| 国产日韩欧美精品一区| 一本大道久久a久久精品综合| 亚洲国产精品视频| 精品日韩欧美在线| 99视频精品在线| 亚洲妇女屁股眼交7| 2023国产精品自拍| 欧美高清你懂得| 国产精品一区二区果冻传媒| 17c精品麻豆一区二区免费| 欧美亚洲国产一区在线观看网站| 久久99精品国产.久久久久 | 99久久精品免费| 午夜av电影一区| 日本一区二区三区国色天香| 欧美日韩国产片| 国产成人精品一区二| 亚洲国产欧美另类丝袜| 国产亚洲精品资源在线26u| 欧美系列一区二区| 国产成人免费网站| 亚洲成人自拍偷拍| 中文字幕精品—区二区四季| 91精品国产综合久久香蕉麻豆| 成人一级片网址| 日韩国产精品久久久久久亚洲| 中文字幕 久热精品 视频在线| 51精品秘密在线观看| 91丨九色porny丨蝌蚪| 国产又黄又大久久| 视频在线观看91| 中文字幕日本乱码精品影院| 精品国产成人系列| 9191精品国产综合久久久久久| 高清不卡一二三区| 精品一区二区三区香蕉蜜桃 | 在线观看日韩电影| 国产成人午夜高潮毛片| 免费成人在线观看视频| 一区二区三区高清不卡| 中文字幕第一页久久| 欧美成人精精品一区二区频| 6080午夜不卡| 欧美日韩精品欧美日韩精品| 欧美在线观看视频在线| 欧美羞羞免费网站| 在线视频综合导航| 色婷婷久久综合| 91麻豆福利精品推荐| 成人精品gif动图一区| 国产麻豆9l精品三级站| 黄色成人免费在线| 麻豆精品国产91久久久久久| 五月婷婷激情综合| 日本欧美一区二区三区乱码 | 一区二区高清在线| 亚洲色图视频网站| 国产精品成人一区二区艾草| 国产精品色在线观看| 久久久影视传媒| 欧美激情在线看| 一色屋精品亚洲香蕉网站| 国产精品麻豆99久久久久久| 国产精品欧美一区喷水| 国产精品国产馆在线真实露脸 | 久久久久久久网| 国产日韩成人精品| 综合激情网...| 亚洲精品美国一| 亚洲444eee在线观看| 日本女优在线视频一区二区| 免费视频一区二区| 韩国av一区二区三区| 成人av动漫网站| 色综合视频一区二区三区高清| 欧美色精品在线视频| 欧美猛男男办公室激情| 日韩欧美高清一区| 国产无遮挡一区二区三区毛片日本 | 激情欧美一区二区三区在线观看| 久久精品国产在热久久| 国产美女av一区二区三区| 成人免费看视频| 日本韩国欧美一区二区三区| 欧美网站大全在线观看| 日韩精品一区二区三区蜜臀| 国产日韩成人精品| 一区二区三区欧美久久| 免费看日韩a级影片| 国产福利一区在线| 欧美性受极品xxxx喷水| 精品精品国产高清a毛片牛牛| 国产精品丝袜久久久久久app| 樱花草国产18久久久久| 久久精品国产在热久久| 91麻豆精东视频| 欧美电影免费观看高清完整版在线观看| 亚洲精品一区二区在线观看| 亚洲精品视频免费观看| 激情深爱一区二区| 欧美综合天天夜夜久久| 久久日韩粉嫩一区二区三区| 一级精品视频在线观看宜春院 | 喷白浆一区二区| 国产99久久久精品| 欧美精品欧美精品系列| 国产精品视频yy9299一区| 免费在线看成人av| 色妞www精品视频| 国产日产欧美精品一区二区三区| 婷婷国产在线综合| www.成人网.com| 精品粉嫩超白一线天av| 午夜精品福利视频网站| 91丨九色丨蝌蚪丨老版| 国产人妖乱国产精品人妖| 日韩av一区二区三区四区| 在线精品视频一区二区三四| 国产精品久久久久久久久免费相片| 日韩电影在线免费| 欧美色男人天堂| 亚洲激情图片小说视频| 成人av在线影院| 久久综合久久久久88| 日韩在线观看一区二区| 欧美亚洲日本国产| 亚洲精品乱码久久久久久黑人| 国产99久久久国产精品免费看| 欧美videos中文字幕| 日本欧美一区二区三区乱码| 欧美日韩国产一二三| 亚洲国产精品麻豆| 在线观看一区二区精品视频| 中文字幕中文字幕在线一区| 国产成人免费在线观看| 国产亚洲福利社区一区| 久久国产精品色婷婷| 日韩女优毛片在线| 美女一区二区视频| 欧美电影免费提供在线观看| 美女精品自拍一二三四| 国产精品久久毛片| 丁香婷婷综合网| 亚洲欧洲在线观看av| 99国产精品视频免费观看| 亚洲欧洲精品天堂一级| 一本色道久久综合亚洲精品按摩|