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

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

?? lxactivebtn.pas

?? 這是一個三層的進銷存系統
?? PAS
字號:
unit lxactivebtn;

interface

uses
  SysUtils, Classes, Controls,Messages, Windows,
  consts, Forms, Menus, Graphics, Stdctrls,Dialogs;

type
  TactiveChange = procedure(sender:Tobject;active:Boolean) of object;

type
  Tlxactivebtn = class(TGraphicControl)
  private
    Fabout:string;
    Factive:boolean;
    Fpicture:Tpicture;
    Fonprogress:TprogressEvent;
    Fstretch:boolean;
    Fcenter:Boolean;
    FincrementalDisplay:boolean;
    Ftransparent:boolean;
    Fdrawing:Boolean;
    Fproportional:boolean;
    Fonactivechange:TActivechange;

    Function Getcanvas:Tcanvas;
    procedure picturechanged(sender:Tobject);
    procedure setcenter(Value:boolean);
    procedure setpicture(Value:Tpicture);
    procedure setstretch(Value:boolean);
    procedure setTransparent(Value:boolean);
    procedure setproportional(Value:boolean);

    { Private declarations }
  protected
    function canautosize(var Newwidth,Newheight:integer):boolean;override;
    function DestRect:Trect;
    function dopalettechange:boolean;
    function Getpalette:HPALETTE;override;
    procedure paint;override;
    procedure progress(Sender:Tobject;Stage:TprogressStage;
      percentDone:Byte;RedrawNow:boolean;const R:Trect;const Msg:String);
      dynamic;
    procedure CMMouseenter(var Message:Tmessage);Message CM_MOUSEENTER;
    procedure CMMouseleave(var Message:Tmessage);MEssage CM_MOUSELEAVE;

    { Protected declarations }
  public
    constructor create(Aowner:Tcomponent);override;
    destructor Destroy;override;
    property Canvas:Tcanvas read GetCanvas;

    { Public declarations }
  published
    property about:string read Fabout write Fabout;
    property Anchors;
    property Autosize;
    property center:boolean read Fcenter write setcenter default false;
    property constraints;
    property dragcursor;
    property dragkind;
    property dragmode;
    property enabled;
    property incrementaldisplay:boolean read FincrementalDisplay write
      FincrementalDisplay default false;
    property parentShowHint;
    property picture:Tpicture read Fpicture write setpicture;
    property popupmenu;
    property proportional:boolean read Fproportional write setproportional
      default false;
    property showhint;
    property stretch:boolean read Fstretch write Setstretch default False;
    property visible;
    property onactivechange:Tactivechange read Fonactivechange write
      Fonactivechange;
    property onclick;
    property oncontextpopup;
    property onDblclick;
    property onDragDrop;
    property onDragover;
    property onEndDock;
    property onendDrag;
    property onMouseDown;
    property onMouseMove;
    property onMouseup;
    property onProgress:TprogressEvent read Fonprogress write Fonprogress;
    property onStartDock;
    property onStartDrag;

    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('liuxiangvcl', [Tlxactivebtn]);
end;

{ Tlxactivebtn }

function Tlxactivebtn.canautosize(var Newwidth,
  Newheight: integer): boolean;
begin
Result:=True;
if not (csDesigning in componentstate) or (picture.Width > 0) and
  (picture.Height > 0) then
  begin
    if align in [alnone,alleft,alright] then
      newwidth:=picture.Width;
    if align in [alnone,altop,albottom] then
      newheight:=picture.Height;
  end;
end;

procedure Tlxactivebtn.CMMouseenter(var Message: Tmessage);
begin
  Factive:=True;
  if not (csDesigning in componentstate) then
    repaint;
  if assigned(Fonactivechange) then
    fonactivechange(self,true);
end;

procedure Tlxactivebtn.CMMouseleave(var Message: Tmessage);
begin
  Factive:=False;
  if not (csDesigning in componentState) then
    repaint;
  if assigned(Fonactivechange) then
    fonactivechange(self,true);
end;

constructor Tlxactivebtn.create(Aowner: Tcomponent);
begin
  inherited Create(Aowner);
  controlStyle:=controlStyle+[csReplicatable];
  Factive:=False;
  Fpicture:=Tpicture.Create;
  Fpicture.OnChange:=pictureChanged;
  Fpicture.OnProgress:=progress;
  Height:=105;
  Width:=105;
  Ftransparent:=True;
  cursor:=crHandPoint;
end;

function Tlxactivebtn.DestRect: Trect;
var
  w,h,cw,ch:integer;
  xyaspect:double;
begin
  w:=picture.Width;
  h:=picture.Height;
  cw:=clientWidth;
  ch:=clientHeight;
  if Stretch or (proportional and ((w>cw) or (h>ch))) then
    begin
      if proportional and (w>0) and (h>0) then
        begin
          xyaspect:=w/h;
          if w>h then
            begin
              w:=cw;
              h:=Trunc(cw/xyaspect);
              if h>ch then
                begin
                  h:=ch;
                  w:=Trunc(ch*xyaspect);
                end;
            end
            else
            begin
              h:=ch;
              w:=Trunc(ch*xyaspect);
              if w>cw then
                begin
                  w:=cw;
                  h:=trunc(cw/xyaspect);
                end;
            end;
        end
        else
        begin
          w:=cw;
          h:=ch;
        end;
    end;

    with Result do
      begin
        Left:=0;
        top:=0;
        Right:=w;
        bottom:=h;
      end;

    if center then
      offsetRect(Result,(cw-w) div 2,(ch-h) div 2);
    if Factive and (not (csDesigning in ComponentState)) then
      begin
        dec(Result.Left,2);
        dec(Result.Right,2);
        dec(Result.Top,2);
        dec(Result.Bottom,2);
      end;
end;

destructor Tlxactivebtn.Destroy;
begin
  Fpicture.Free;
  inherited Destroy;
end;

function Tlxactivebtn.dopalettechange: boolean;
var
  ParentForm:TcustomForm;
  Tmp:Tgraphic;
begin
  Result:=False;
  Tmp:=picture.Graphic;
  if Visible and (not (csLoading in componentState)) and (Tmp<>nil) and
    (tmp.PaletteModified) then
      begin
        if (tmp.Palette=0) then
          tmp.PaletteModified:=False
          else
          begin
            parentForm:=GetparentForm(Self);
            if Assigned(parentForm) and parentForm.Active and
              parentform.HandleAllocated then
                begin
                  if FDrawing then
                    parentform.Perform(WM_QueryNewPalette,0,0)
                    else
                    postMessage(parentform.Handle,WM_queryNewPalette,0,0);
                    Result:=True;
                    tmp.paletteModified:=False;  
                end;
          end;
      end;
end;

function Tlxactivebtn.Getcanvas: Tcanvas;
var
  bitMap:Tbitmap;
begin
  if picture.Graphic = nil then
    begin
      bitmap:=Tbitmap.Create;
      try
        bitmap.Width:= width;
        bitmap.Height:=height;
        picture.Graphic:=bitmap;
      finally
        bitmap.Free;
      end;
    end;
    if picture.Graphic is Tbitmap then
      Result:=tbitmap(picture.Graphic).Canvas
      else
      Raise Einvalidoperation.Create(SimageCanvasNeedsBitmap);
end;

function Tlxactivebtn.Getpalette: HPALETTE;
begin
  Result:=0;
  if Fpicture.Graphic <> nil then
    Result:=Fpicture.Graphic.Palette;
end;

procedure Tlxactivebtn.paint;
var
  save:boolean;
  FactiveGraphic:Tgraphic;
begin
  if CSdesigning in componentState then
    with inherited canvas do
      begin
        pen.Style:=psDot;
        brush.Style:=bsClear;
        rectangle(0,0,Width,Height);
      end;
      Save:=Fdrawing;
      Fdrawing:=True;
      try
        with inherited canvas do
          begin
            StretchDraw(DestRect,picture.Graphic);
          end;
      finally
        Fdrawing:=Save;
      end;
end;

procedure Tlxactivebtn.picturechanged(sender: Tobject);
var
  G:Tgraphic;
  D:Trect;
begin
  if Autosize and (picture.Width > 0) and (picture.Height > 0) then
    setbounds(left,top,picture.Width,picture.Height);
  G:=picture.Graphic;
  if G<>nil then
    begin
      if not ((G is Tmetafile) or (G is Ticon)) then
        g.Transparent:=Ftransparent;
      D:=DestRect;
      if (not G.Transparent) and (D.Left<=0) and (D.Top<=0) and
        (d.Right>=width) and (d.Bottom>=height) then
        controlstyle:=controlstyle+[csopaque]
        else
        controlstyle:=controlstyle-[csopaque];
      if dopalettechange and Fdrawing then
        update;
    end
    else
      controlstyle:=controlstyle-[csopaque];
    if not Fdrawing then
      invalidate;
end;

procedure Tlxactivebtn.progress(Sender: Tobject; Stage: TprogressStage;
  percentDone: Byte; RedrawNow: boolean; const R: Trect;
  const Msg: String);
begin
  if FincrementalDisplay and redrawnow then
    begin
      if dopalettechange then
        update
        else
        paint;
    end;
    if assigned(fonProgress) then
      fonprogress(sender,stage,percentdone,redrawnow,r,msg);
end;

procedure Tlxactivebtn.setcenter(Value: boolean);
begin
  if Fcenter<>Value then
    begin
      Fcenter:=Value;
      pictureChanged(self);
    end;
end;

procedure Tlxactivebtn.setpicture(Value: Tpicture);
begin
  Fpicture.Assign(Value);
end;

procedure Tlxactivebtn.setproportional(Value: boolean);
begin
  if Fproportional<>Value then
    begin
      Fproportional:=value;
      picturechanged(self);
    end;
end;

procedure Tlxactivebtn.setstretch(Value: boolean);
begin
  if Value<>Fstretch then
    begin
      Fstretch:=Value;
      picturechanged(self);
    end;
end;

procedure Tlxactivebtn.setTransparent(Value: boolean);
begin
  if Value<>Ftransparent then
    begin
      Ftransparent:=Value;
      picturechanged(self);
    end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97久久精品人人爽人人爽蜜臀| 九九久久精品视频| 久久奇米777| 日韩免费看的电影| 日韩色在线观看| 91精品国产乱| 精品入口麻豆88视频| 日韩欧美在线网站| 26uuu色噜噜精品一区| 久久久国产一区二区三区四区小说 | 精品一区二区三区在线观看| 蜜桃av一区二区在线观看| 久久精品久久久精品美女| 老司机精品视频线观看86| 久久99热这里只有精品| 国产精品综合在线视频| av中文一区二区三区| 色吧成人激情小说| 日韩色在线观看| 欧美国产亚洲另类动漫| 亚洲一区二区偷拍精品| 免费高清在线视频一区·| 国产高清在线观看免费不卡| 色综合天天综合狠狠| 91精品午夜视频| 国产欧美视频一区二区| 一区二区三区精品视频| 免费在线观看视频一区| 不卡视频在线看| 6080yy午夜一二三区久久| 久久亚洲一区二区三区明星换脸 | 国产黄色精品网站| 欧美综合视频在线观看| 精品国产一区二区三区忘忧草| 国产精品久久影院| 午夜精品久久久久影视| www.久久精品| 日韩精品中文字幕在线一区| 亚洲乱码国产乱码精品精小说| 久久99精品久久久久| 日本精品一区二区三区四区的功能| 欧美第一区第二区| 亚洲一区二区三区四区在线观看 | 91精品国产综合久久香蕉麻豆| 久久久99精品久久| 日本系列欧美系列| 色婷婷精品大在线视频 | 欧美日韩精品一区二区在线播放| 久久久99精品免费观看| 日韩精品亚洲一区二区三区免费| 成人av在线网站| xnxx国产精品| 麻豆极品一区二区三区| 欧美久久久久久久久久| 亚洲免费观看在线视频| 国产成人8x视频一区二区| 欧美一级高清大全免费观看| 亚洲午夜一区二区三区| 色婷婷综合激情| 日韩毛片一二三区| 成人的网站免费观看| 欧美韩国日本综合| 国产精品99久久久久久有的能看| 欧美一级xxx| 美女被吸乳得到大胸91| 日韩西西人体444www| 日日夜夜一区二区| 337p亚洲精品色噜噜狠狠| 亚洲福利视频三区| 欧美乱妇23p| 午夜欧美大尺度福利影院在线看| 欧美性大战久久久久久久| 一区二区三区毛片| 欧美午夜精品久久久| 亚洲最新视频在线观看| 色婷婷激情久久| 亚洲第一主播视频| 欧美一区二区黄| 看片的网站亚洲| 久久久精品影视| www.欧美色图| 亚洲一区二区三区四区在线免费观看| 在线观看日韩一区| 日本特黄久久久高潮| 欧美成人精品1314www| 精品一区二区免费| 欧美国产精品v| 91网址在线看| 首页国产欧美日韩丝袜| 欧美不卡一区二区三区四区| 国产精品正在播放| 成人欧美一区二区三区在线播放| 在线精品国精品国产尤物884a| 亚洲不卡在线观看| 精品精品国产高清a毛片牛牛 | 国产精品国产三级国产普通话三级 | 无吗不卡中文字幕| 777精品伊人久久久久大香线蕉| 久久se这里有精品| 中文字幕一区二区三区在线不卡| 色综合久久久久网| 天天av天天翘天天综合网色鬼国产| 日韩欧美久久久| 91免费看`日韩一区二区| 水野朝阳av一区二区三区| 国产欧美日韩不卡免费| 欧美三级在线看| 国产成人精品一区二区三区四区| 亚洲欧美电影一区二区| 精品欧美一区二区三区精品久久| 成人动漫精品一区二区| 蜜桃免费网站一区二区三区| 国产精品久久久久精k8 | 97久久超碰精品国产| 日本中文字幕一区二区视频| 国产精品国产自产拍高清av王其| 91精品一区二区三区久久久久久 | 日韩视频免费直播| 91日韩精品一区| 国产综合成人久久大片91| 亚洲欧美日韩一区二区| 久久久99精品免费观看| 777a∨成人精品桃花网| 色综合久久综合| 成人免费观看视频| 国产美女一区二区三区| 日韩成人av影视| 一区二区日韩电影| 亚洲婷婷综合色高清在线| 精品噜噜噜噜久久久久久久久试看| 91福利在线免费观看| 成人福利视频网站| 国产毛片精品国产一区二区三区| 亚洲小说欧美激情另类| 国产精品国产成人国产三级| 精品粉嫩超白一线天av| 日韩一级片在线观看| 欧美日韩亚洲综合一区二区三区| 91视频com| 99久久精品国产一区| 成人性生交大片免费看中文| 狠狠色丁香婷综合久久| 久久激情五月激情| 久久机这里只有精品| 奇米影视在线99精品| 婷婷开心久久网| 性欧美大战久久久久久久久| 亚洲一级片在线观看| 一级中文字幕一区二区| 亚洲制服欧美中文字幕中文字幕| 最新日韩在线视频| 亚洲日本护士毛茸茸| 国产精品欧美极品| 亚洲视频一区二区免费在线观看| 最近日韩中文字幕| 亚洲欧美福利一区二区| 樱花影视一区二区| 亚洲自拍偷拍网站| 日韩黄色一级片| 蜜臀av亚洲一区中文字幕| 日本欧美一区二区在线观看| 久久99精品一区二区三区三区| 久久激情五月激情| 成人永久免费视频| 色94色欧美sute亚洲线路一ni| 欧美三级电影网站| 日韩免费视频一区二区| 久久精品一区二区三区不卡牛牛 | 蜜桃av一区二区| 激情六月婷婷综合| av一区二区三区| 欧美男男青年gay1069videost| 3atv在线一区二区三区| 国产三级精品在线| 亚洲精品久久嫩草网站秘色| 青青草97国产精品免费观看| 国产一区二区三区免费播放| 99久久精品国产网站| 欧美疯狂做受xxxx富婆| 久久蜜臀精品av| 伊人开心综合网| 麻豆国产一区二区| 91麻豆视频网站| 欧美哺乳videos| 亚洲精品中文字幕乱码三区| 麻豆成人综合网| 91色porny在线视频| 欧美tk—视频vk| 一区二区三区在线视频观看58| 毛片基地黄久久久久久天堂| 97精品久久久午夜一区二区三区 | 色综合咪咪久久| 日韩丝袜美女视频| 亚洲美女淫视频| 国产成人亚洲综合a∨猫咪| 欧美亚洲丝袜传媒另类| 欧美激情一区二区三区蜜桃视频| 天堂成人免费av电影一区| 99久久婷婷国产综合精品| 日韩视频不卡中文|