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

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

?? winsubclass.pas

?? delphi控件
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
    offsetrect(r1,-r1.left,-r1.top);
    temp.width:=r1.right;
    temp.height:=r1.bottom;
    DrawBMPSkin(temp,r1,fsd.button,i,5,fsd.button.Trans);

    bfont:=sendmessage(hwnd,wm_getfont,0,0);
    cfont:=selectobject(temp.canvas.handle,bfont);

    SetTextColor(temp.canvas.handle,fsd.colors[csButtonText]);
    if (i=1) then
       SetTextColor(temp.canvas.handle,fsd.button.normalcolor2);
    if (i=4) then
       SetTextColor(temp.canvas.handle,fsd.button.overcolor2);
    if (i=2) then
       SetTextColor(temp.canvas.handle,fsd.button.downcolor2);
    if not enabled then
      SetTextColor(temp.canvas.handle,COLORREF(clBtnShadow));

    DrawCaption(temp.canvas,r1,caption,enabled,false);
//    DrawBuf( dc,rc);
    BitBlt(dc,rc.left ,rc.top,rc.right-rc.left,rc.bottom-rc.Top,
                 temp.Canvas.Handle ,0 ,0 ,Srccopy);
    selectobject(temp.canvas.handle,cfont);
    temp.Free;
end;}

constructor TSkinButton.Create(AOwner: TComponent);
begin
   inherited create(aowner);
   btemp:=Tbitmap.create;
   trans:=false;
   isdefault:=false;
end;

destructor TSkinButton.Destroy;
begin
   if btemp<>nil then btemp.free;
   btemp:=nil;
   inherited destroy;
end;

Procedure TSkinButton.Init(sf:Tcomponent;sd:TSkinData;acanvas:TCanvas;acolor:boolean=false);
var s:string;
begin
    inherited init(sf,sd,acanvas,acolor);
    kind :=0;
    s:=lowercase(control.classname);
    if pos('trz',s)=1 then kind:=1;
    if pos('tel',s)=1 then kind:=1;
    if (control.Tag=5555) or (xoTransparent in fsd.options) then
       trans:=true;
end;

procedure TSkinButton.DrawBtnText(acanvas: TCanvas; rc:TRect;
  text:String;Alignment:word=DT_CENTER);
const
  Alignments: array[TAlignment] of Word = (DT_LEFT,DT_RIGHT,DT_CENTER );
var
  r1: TRect;
  DrawStyle: Longint;
  s,s1:string;
begin
   DrawStyle := DT_EXPANDTABS or Alignment or dt_WordBreak;
{   if multiline then begin
      DrawStyle := DrawStyle or dt_WordBreak;
      s:=WideStringToStringEx(caption);
      s:=stringreplace(s,'||',#13#10,[rfReplaceAll]);
      caption := StrToWideStr(s);
   end;}
   s:= StrToWideStr('||');
   s1:= StrToWideStr(#13#10);
   caption := StringReplaceW(caption,s,s1);
   r1 := rc;
   inflaterect(r1,-2,-2);
   SetBkMode(aCanvas.Handle, TRANSPARENT);
   with ACanvas do begin
     Tnt_DrawTextW(ACanvas.Handle, caption,r1,DrawStyle or DT_CALCRECT or DT_NOCLIP);
     offsetrect(r1,-r1.Left,-r1.Top);
     drawstyle:=checkBiDi(drawStyle);
     //DrawText(ACanvas.Handle,PChar(Text),Length(Text),r1,DrawStyle or DT_CALCRECT or DT_NOCLIP);
     if Alignment=dt_center then
       OffsetRect(r1, ((rc.right - rc.left) - (r1.right - r1.left)) div 2,
        ((rc.Bottom - rc.Top) - (r1.Bottom - r1.Top)) div 2-1)
     else begin
       OffsetRect(r1, 0,((rc.Bottom - rc.Top) - (r1.Bottom - r1.Top)) div 2-1);
       r1.Left:=rc.left;r1.right:=rc.Right;
     end;
//     DrawText(ACanvas.Handle, PChar(Text),-1,r1,DrawStyle);
     Tnt_DrawTextW(ACanvas.Handle, caption,r1,DrawStyle);
     SetBkMode(aCanvas.Handle, OPAQUE);
     if focused and not (xoNoFocusRect in fsd.Options) then begin
        InflateRect(r1,2,2);
        DrawFocusRect(r1);
     end;
   end;
end;

function TSkinButton.GetFontColor(var acolor:Tcolor):boolean;
var
    font:Tfont;
    b:boolean;
    PropInfo:PPropInfo;
begin
    b:=false;
    font := Tfont(GetObjProp(control,'Font',Tfont));
    if font<>nil then begin
      PropInfo:=GetPropInfo(font,'Color');
      if (PropInfo<>nil) and
         (propinfo^.PropType^.Kind = tkInteger) then begin
           acolor :=GetOrdProp(control,PropInfo);
           b:=true;
      end;
   end;
   result:=b;
end;

procedure TSkinButton.DrawControl( dc:HDC; rc:TRect);
var i:integer;
    r1:Trect;
    acolor,color0:Tcolor;
    bfont,cfont:Hfont;
    style:dword;
    isdefault:boolean;
    font:Tfont;
    s:string;
begin
    if fsd.button=nil then exit;
    if fsd.Button.map.empty then exit;
    i:=1;

    style:=GetWindowLong(hWnd,GWL_STYLE);
    Focused := (GetFocus= hWnd);
    enabled := ( style and WS_DISABLED )=0;
//    dw:= ( style and $0f );
//    isdefault := (( style and $0f ) = BS_DEFPUSHBUTTON );
    s := lowercase(GetEnumProperty(control,'Default'));
    isdefault := (s = 'true');

    multiline := false;

    if (control<>nil) then begin
      caption := GetStringProp(control,'Caption');
      s := lowercase(GetEnumProperty(control,'MultiLine'));
      if s='true' then multiline := true;
    end else
      caption:=getformcaption(hwnd);

    if focused then i:=5;
    if isdefault then i:=5;
    if (scDown in state)  then i:=2
    else if (scMouseIn in state) then i:=4;
    if not enabled then i:=3;

    r1:=rc;
    offsetrect(r1,-r1.left,-r1.top);
    btemp.width:=r1.right;
    btemp.height:=r1.bottom;

    if trans then
      DrawParentImage(control,btemp.canvas.handle,true)
    else
     fillBG(btemp.canvas.handle,r1);
{   if (not  (xoTransparent in fsd.options)) or (control=nil) then begin
     fillBG(btemp.canvas.handle,r1);
   end
   else if control<>nil then
      DrawParentImage(control,btemp.canvas.handle,true);}
   //else FillBG(btemp.canvas.handle,r1);     }

    DrawSkinMap( btemp.canvas.handle,r1,fsd.button,I,fsd.Button.frame);

    if control<>nil then begin
      font := Tfont(GetObjProp(control,'Font',Tfont));
      if font<>nil then btemp.canvas.font.assign(font);
//      if (i=1) and (fsd.button.newnormal) then
      if (fsd.button.newnormal) then
          btemp.canvas.Font.Color:= fsd.button.normalcolor2;
      if (i=4)  and (fsd.button.newover) then
          btemp.canvas.Font.Color:= fsd.button.overcolor2;
      if (i=2) and (fsd.Button.newdown) then
          btemp.canvas.Font.Color:= fsd.button.downcolor2;
      if not enabled then
         btemp.canvas.Font.Color := clBtnShadow;
//      getfontcolor(color0);
    end else begin
    bfont:=sendmessage(hwnd,wm_getfont,0,0);
    cfont:=selectobject(btemp.canvas.handle,bfont);
    SetTextColor(btemp.canvas.handle,ColorToRGB(fsd.colors[csButtonText]));
//    if (i=1) and (fsd.button.newnormal) then
    if (fsd.button.newnormal) then
       SetTextColor(btemp.canvas.handle,ColorToRGB(fsd.button.normalcolor2));
//    if ((i=4) or (i=5)) and (fsd.button.newover) then
    if (i=4) and (fsd.button.newover) then
       SetTextColor(btemp.canvas.handle,ColorToRGB(fsd.button.overcolor2));
    if (i=2) and (fsd.Button.newdown) then
       SetTextColor(btemp.canvas.handle,ColorToRGB(fsd.button.downcolor2));
    if not enabled then
      SetTextColor(btemp.canvas.handle,ColorToRGB(clBtnShadow));
    end;

    DrawBtnText(btemp.canvas,r1,caption);
//    Bitmapdraw(dc,rc,btemp);
    BitBlt(dc,rc.left ,rc.top,rc.right-rc.left,rc.bottom-rc.Top,
                 btemp.Canvas.Handle ,0 ,0 ,Srccopy);
    selectobject(btemp.canvas.handle,cfont);
  {$IFDEF buttontest}
      skinaddlog(format('Button Draw %s %1x %1x',[caption,hwnd,dc]));
  {$ENDIF}

end;

{procedure TSkinButton.DrawControl( dc:HDC; rc:TRect);
var i:integer;
    r1:Trect;
    acolor:Tcolor;
    bfont,cfont:Hfont;
begin
    if fsd.button=nil then exit;
    if fsd.Button.map.empty then exit;
    i:=1;

    Focused := (GetFocus= hWnd);
    enabled := (GetWindowLong(hWnd,GWL_STYLE) and WS_DISABLED)=0;
    caption:=getformcaption(hwnd);
    if (caption='') and (control<>nil) then
      caption:=Taccontrol(control).caption;

    if focused then i:=4;
    if (scDown in state)  then i:=2
    else if (scMouseIn in state) then i:=4;
    if not enabled then i:=3;

    r1:=rc;
    offsetrect(r1,-r1.left,-r1.top);
    bg.width:=r1.right;
    bg.height:=r1.bottom;
    DrawSkin(r1,fsd.button,i,5,fsd.button.Trans);
//    DrawSkinMap( dc:HDC; rc:TRect;aObject:TdataSkinObject;I,N:integer)

    bfont:=sendmessage(hwnd,wm_getfont,0,0);
    cfont:=selectobject(bg.canvas.handle,bfont);

    SetTextColor(bg.canvas.handle,fsd.colors[csButtonText]);
    if (i=1) then
       SetTextColor(bg.canvas.handle,fsd.button.normalcolor2);
    if (i=4) then
       SetTextColor(bg.canvas.handle,fsd.button.overcolor2);
    if (i=2) then
       SetTextColor(bg.canvas.handle,fsd.button.downcolor2);
    if not enabled then
      SetTextColor(bg.canvas.handle,COLORREF(clBtnShadow));

    DrawCaption(bg.canvas,r1,caption,enabled,false);
    SetBkMode(bg.canvas.handle,OPAQUE);
    DrawBuf( dc,rc);
    selectobject(bg.canvas.handle,cfont);

end;}

{procedure TButtonGlyph.CalcButtonLayout(Canvas: TCanvas; const Client: TRect;
  const Offset: TPoint; const Caption: string; Layout: TButtonLayout; Margin,
  Spacing: Integer; var GlyphPos: TPoint; var TextBounds: TRect;
  BiDiFlags: LongInt);}

{procedure TSkinBitButton.DrawControl( dc:HDC; rc:TRect);
var btn:TBitBtn;
    acolor:Tcolor;
    i,n,j:integer;
    spacing,margin:integer;
    r1,TextBounds:Trect;
    Layout: TButtonLayout;
    TextPos: TPoint;
    GlyphPos, ClientSize, GlyphSize, TextSize: TPoint;
    TotalSize: TPoint;
    DrawStyle: Longint;
    cfont,bfont:Hfont;
begin
    if fsd.button=nil then exit;
    if fsd.Button.map.empty then exit;
    DrawStyle:=DT_LEFT;}

function StringReplaceW(s,s1,s2:widestring):widestring;
var i,p,l:integer;
begin
   result:=s;
   l:=length(s);
   p:=pos(s1,s);
   if p>0 then begin
      result:=copy(s,1,p-1)+s2+copy(s,p+length(s1),l);
   end;
end;

procedure TSkinBitButton.DrawControl( dc:HDC; rc:TRect);
var acolor:Tcolor;
    i,j:integer;
    r1,TextBounds:Trect;
    Layout: TButtonLayout;
    NumGlyphs,margin,spacing :integer;
    TextPos: TPoint;
    GlyphPos, ClientSize, GlyphSize, TextSize: TPoint;
    TotalSize: TPoint;
    DrawStyle: Longint;
    cfont,bfont:Hfont;
    font:Tfont;
    style : dword;
    s,s1:widestring;
    bglyph:Tbitmap;
    bglist:Timagelist;
    imageindex,disabledindex:integer;
    isdefault:boolean;
    s2,bname:string;
begin
    if fsd.button=nil then exit;
    if fsd.Button.map.empty then exit;

    if Length(PicField)>0 then begin
        drawPicControl(dc,rc);
        exit;
    end;
//    DrawStyle:=DT_LEFT;

    Focused := (GetFocus= hWnd);
    style := GetWindowLong(hWnd,GWL_STYLE);
    enabled := ( style and WS_DISABLED )=0;
//    caption:=getformcaption(hwnd);
    //dw :=  ( style and $0f );
    //isdefault := (dw = BS_DEFPUSHBUTTON );
    s2 := lowercase(GetEnumProperty(control,'Default'));
    isdefault := (s2 = 'true');
    if control<>nil then
       caption := GetStringProp(control,'Caption')
//       caption := GetControlCaption(TACControl(control))
    else
       caption:=getformcaption(hwnd);
//    btn:=TBitBtn(control);
//    if btn.default then i:=5;
//    s:=lowercase(GetEnumProperty(control,'Default'));

    i:=1;
    if Focused then i:=5;
    if isdefault then i:=5;
    if (scDown in state)  then i:=2
    else if (scMouseIn in state) then i:=4;
    if not enabled then i:=3;

    case i of
      1: j:=1;
      2: j:=3;
      3: j:=2;
      4: j:=1;
      else j:=1;
    end;

    r1:=rc;
    offsetrect(r1,-r1.left,-r1.top);
    btemp.width:=r1.right;
    btemp.height:=r1.bottom;

    bfont:=sendmessage(hwnd,wm_getfont,0,0);
    cfont:=selectobject(btemp.canvas.handle,bfont);

    if trans then
      DrawParentImage(control,btemp.canvas.handle,true)
    else
     fillBG(btemp.canvas.handle,r1);

    DrawSkinMap( btemp.canvas.handle,r1,fsd.button,I,fsd.button.frame);

   ClientSize := Point(rc.Right - rc.Left,rc.Bottom - rc.Top);

   font := Tfont(GetObjProp(control,'Font',Tfont));
   bglyph := Tbitmap(GetObjProp(control,'Glyph',Tbitmap));
   bglist := Timagelist(GetObjProp(control,'Images',Timagelist));
   NumGlyphs := GetIntProperty(control,'NumGlyphs') ;
   imageindex := GetIntProperty(control,'ImageIndex') ;
   disabledindex := GetIntProperty(control,'DisabledIndex') ;
   if NumGlyphs<0 then NumGlyphs:=1;
   Margin := GetIntProperty(control,'Margin') ;
   Spacing := GetIntProperty(control,'Spacing') ;

   s := lowercase(GetEnumProperty(control,'Layout'));
   if s='blglyphleft' then layout:=blGlyphLeft
   else if s='blglyphright' then layout:=blGlyphRight
   else if s='blglyphtop' then layout:=blGlyphTop
   else if s='blglyphbottom' then layout:=blGlyphbottom;

  if (bGlyph <> nil) and (not bglyph.Empty) then
    GlyphSize := Point(bGlyph.Width div NumGlyphs, bglyph.Height)
  else if (bglist<>nil) and (imageindex<>-1) then
    GlyphSize := Point(bglist.Width, bglist.Height)
  else GlyphSize := Point(0, 0);

  btemp.canvas.font.assign(font);

  DrawStyle := dt_WordBreak;
  s:= StrToWideStr('||');
  s1:= StrToWideStr(#13#10);
  caption := StringReplaceW(caption,s,s1);

  TextBounds := r1;//Rect(0, 0, r1.right-GlyphSize.x, 0);
  inflaterect(TextBounds,-2,-2);
  case Layout of
    blGlyphLeft,blGlyphRight: Dec(TextBounds.Right,GlyphSize.X+2);
    blGlyphTop,blGlyphBottom: Dec(TextBounds.Bottom,GlyphSize.y+2)
  end;

  if Length(Caption) > 0 then  begin
//    TextBounds := r1;//Rect(0, 0, r1.right-GlyphSize.x, 0);
//    DrawText(btemp.canvas.handle, PChar(Caption),-1, TextBounds,DT_CALCRECT or dt_left);
    Tnt_DrawTextW(btemp.canvas.handle,caption,TextBounds,DT_CALCRECT or dt_left or dt_WordBreak);
    TextSize := Point(TextBounds.Right - TextBounds.Left, TextBounds.Bottom -
      TextBounds.Top);
  end  else  begin
    TextBounds := Rect(0, 0, 0, 0);
    TextSize := Point(0,0);
  end;

  if Layout in [blGlyp

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜成人免费视频| 不卡欧美aaaaa| 成人av第一页| 宅男噜噜噜66一区二区66| 国产午夜精品一区二区三区嫩草| 亚洲午夜成aⅴ人片| www.欧美精品一二区| 精品国产成人在线影院| 亚洲国产婷婷综合在线精品| 成人中文字幕电影| 久久综合九色欧美综合狠狠| 日韩av在线播放中文字幕| 色先锋aa成人| 亚洲欧美怡红院| 国产黑丝在线一区二区三区| 欧美一区二区在线观看| 国产精品456| 欧美一三区三区四区免费在线看| 一区二区三区中文字幕精品精品 | 国产剧情一区二区| 欧美高清视频在线高清观看mv色露露十八 | av在线不卡电影| 欧美极品xxx| 国产乱子轮精品视频| 日韩欧美国产系列| 奇米影视7777精品一区二区| 91福利视频在线| 亚洲精品国产第一综合99久久| av一本久道久久综合久久鬼色| 久久久激情视频| 丁香婷婷综合色啪| 国产精品久久久久久亚洲毛片| 国产成人亚洲精品青草天美| 久久精品免费在线观看| 国产精品系列在线播放| 久久精品欧美一区二区三区不卡| 国产一区高清在线| 久久九九久精品国产免费直播| 老司机精品视频在线| 欧美mv日韩mv国产网站| 精品无码三级在线观看视频| 久久精品视频在线看| 成人丝袜视频网| 中文字幕在线一区二区三区| 99久久久精品免费观看国产蜜| 日韩伦理av电影| 欧美亚洲禁片免费| 毛片av一区二区| 国产欧美一区二区三区网站| 成人动漫中文字幕| 有坂深雪av一区二区精品| 欧美精品丝袜久久久中文字幕| 日韩成人一区二区三区在线观看| 精品国产成人系列| 91美女蜜桃在线| 五月天一区二区| 久久综合av免费| 93久久精品日日躁夜夜躁欧美| 亚洲无人区一区| 久久久不卡影院| 在线观看日韩电影| 精品一区二区三区蜜桃| 亚洲日本一区二区| 日韩欧美国产系列| 色系网站成人免费| 国产一区 二区 三区一级| 亚洲欧洲国产日韩| 日韩一区二区在线观看| 成人国产电影网| 青青国产91久久久久久| 中文字幕综合网| 精品久久国产字幕高潮| 91蜜桃免费观看视频| 国内欧美视频一区二区| 亚洲黄色尤物视频| 久久久噜噜噜久噜久久综合| 91福利国产成人精品照片| 国产综合色在线视频区| 亚洲精品欧美在线| 久久久久久免费| 欧美日韩精品久久久| 高清不卡一区二区| 麻豆成人久久精品二区三区小说| 国产精品久久久久一区二区三区共| 欧美美女激情18p| 99re成人在线| 成人激情免费网站| 精品一区二区三区免费| 首页综合国产亚洲丝袜| 亚洲日本免费电影| 国产精品网站在线| 久久久亚洲高清| 欧美α欧美αv大片| 欧美日韩视频一区二区| 色综合天天性综合| 国产白丝网站精品污在线入口 | 一区二区三区在线影院| 久久久久久久一区| 日韩免费福利电影在线观看| 色欧美88888久久久久久影院| 国产成人在线视频网站| 久久精品国产精品亚洲精品| 午夜精品福利一区二区三区av | 国产精品国产馆在线真实露脸| 日韩欧美一区二区免费| 欧美日韩精品福利| 欧美日韩国产小视频在线观看| 91美女片黄在线观看91美女| 国产传媒日韩欧美成人| 国产毛片精品一区| 精品无人区卡一卡二卡三乱码免费卡 | 性欧美大战久久久久久久久| 亚洲人精品午夜| 欧美国产日韩在线观看| 久久综合九色欧美综合狠狠| 欧美xxxx在线观看| 久久美女艺术照精彩视频福利播放 | 在线一区二区三区做爰视频网站| 99精品视频免费在线观看| av中文字幕不卡| 色老综合老女人久久久| 91福利国产成人精品照片| 欧美日韩一区二区欧美激情| 91福利国产精品| 欧美高清www午色夜在线视频| 欧美久久婷婷综合色| 91精品国产全国免费观看| 欧美videossexotv100| 久久综合久久综合久久综合| 久久久久久久久久久久久女国产乱 | 制服丝袜亚洲精品中文字幕| 欧美一级免费大片| www久久久久| 亚洲人123区| 亚洲成人精品一区二区| 男人的天堂久久精品| 国产麻豆精品theporn| 91玉足脚交白嫩脚丫在线播放| 欧美在线制服丝袜| 精品少妇一区二区三区| 国产精品九色蝌蚪自拍| 亚洲一区欧美一区| 精品一区二区在线观看| 成人国产精品免费观看| 欧美午夜精品一区二区三区| 欧美二区三区91| 欧美激情在线看| 亚洲国产精品久久艾草纯爱| 免费成人小视频| 97久久精品人人爽人人爽蜜臀| 欧美日韩国产bt| 久久久久久影视| 一区二区成人在线观看| 麻豆免费看一区二区三区| 成人a区在线观看| 4438x成人网最大色成网站| 亚洲国产成人自拍| 视频精品一区二区| 国产成人自拍在线| 欧美精品在线视频| 综合分类小说区另类春色亚洲小说欧美| 亚洲国产欧美另类丝袜| 国产成人啪午夜精品网站男同| 91豆麻精品91久久久久久| 国产午夜精品一区二区三区嫩草 | 不卡的av网站| 精品国产伦一区二区三区观看体验 | 精品三级av在线| 亚洲一区二区三区四区在线观看| 激情综合网av| 欧美三级中文字| 综合网在线视频| 国产精品一二二区| 欧美一区二区三区的| 亚洲人午夜精品天堂一二香蕉| 国产精品一线二线三线精华| 制服丝袜日韩国产| 一区二区三区久久久| 波多野结衣中文字幕一区| 欧美一卡二卡在线观看| 亚洲一区自拍偷拍| 成人免费看的视频| 精品国产网站在线观看| 亚洲午夜精品一区二区三区他趣| 99国产精品国产精品久久| 国产视频一区二区三区在线观看| 麻豆国产精品官网| 51精品视频一区二区三区| 香蕉乱码成人久久天堂爱免费| 91麻豆免费观看| 一区二区三区中文字幕在线观看| 成人av在线一区二区| 欧美激情综合网| 成人激情av网| 国产精品福利影院| 91污片在线观看| 一区二区国产视频| 欧美日韩国产欧美日美国产精品| 亚洲最大色网站| 欧美日本一区二区三区|