摘要载入中…    请稍等…












内容载入中…    请稍等…

如长时间看不到内容,请关闭浏览器,重新打开此页!

芯友首页 应用软件 编程开发 网络硬件 资源下载 动漫音乐 精美图库 芯友论坛 视频教程 电脑技术QQ群:72845454
 ★★photoshop学友-史上最强播放器★★
 位置:编程开发>Deiphi>Deiphi组件开发
◎→ 本类最新
在Delphi中编制软件版权保护控件
在Delphi中编写控件的基本方法
自制THyperLink组件
自己开发delphi的vcl
制作可移动的窗体的MovePanel控件
显示DLL可导出的函数
使用 COM+ 参数化对象结构编程技
◎→相关资源
C语言入门视频教程
C#编程WinForm入门视频
Asp.net入门视频教程下载
VC++编程视频教程下载
VB窗体文章
HTML入门教程
Deiphi实例教程
Deiphi窗体文章
Deiphi数据库编程
Deiphi网络编程
Deiphi图形图象文章
Deiphi系统文件
◎→ 热门资源
Listview中实现点击栏目标题排序
Microsoft Agent技术在Delphi中的
MIDAS中动态强制约束编程
Chuck Jazdzewski的离开意味着De
COM程序编写入门(三)
OICQ中用户图标选择的实现
DELPHI中利用对象的常用属性制作

从实作标题栏按钮开始浅谈组件的制作


日期:2008-10-20 22:01:57    来源:
   
 ·不用标题栏也移动窗体的小技巧 ·轻轻松松在DELPHI3.0中实现三态按钮
 ·Delphi中ActionList组件在菜单编制中的应用
- 4;



    end



    else begin



      BtnWidth := GetSystemMetrics(SM_CXSIZE) - 2;



      BtnHeight := GetSystemMetrics(SM_CYSIZE) - 4;



    end;



    Right := Left + BtnWidth;



    Bottom := Top + BtnHeight;



  end;



end;







procedure TTitleBarButton.Paint;



var



  GlyphRect: TRect;



begin



  if not FVisible then Exit;



  with TCanvas.Create do



  begin



    try



      Handle := GetWindowDC(FForm.Handle); //得到窗体DC,包括标题栏、菜单、滚动条等







      Brush.Color := FColor;         //画Button凸起和按下时的外观



      if FButtonDown then



        Pen.Color := clBtnHighlight



      else



        Pen.Color := cl3DDkShadow;



      Rectangle(BoundsRect);



      with BoundsRect do



      begin



        if FButtonDown then



          Pen.Color := cl3DDkShadow



        else



          Pen.Color := clBtnHighLight;



        MoveTo(Left,Bottom-2);



        LineTo(Left,Top);



        LineTo(Right-1,Top);



        Pen.Color := clGray;



        if FButtonDown then



        begin



          MoveTo(Left+1,Bottom-3);



          LineTo(Left+1,Top+1);



          LineTo(Right-2,Top+1);



        end



        else begin



          MoveTo(Left+1,Bottom-2);



          LineTo(Right-2,Bottom-2);



          LineTo(Right-2,Top);
  end;



      end;







      if Assigned(Glyph) then      //如果关联了图片,则画图片



      begin



        GlyphRect := BoundsRect;



        GlyphRect.Right := GlyphRect.Right - 7;



        GlyphRect.Bottom := GlyphRect.Bottom - 5;



        if FButtonDown then



          OffsetRect(GlyphRect,4,3)



        else



          OffsetRect(GlyphRect,3,2);







        with GlyphRect do



          StretchBlt(Handle, Left, Top, Right-Left, Bottom-Top,



            FGlyph.Canvas.Handle, 0, 0, FGlyph.Width, FGlyph.Height, srcCopy);



      end;



    finally



      ReleaseDC(FForm.Handle,Handle);



      Free;



    end;



  end;



end;

procedure TTitleBarButton.Repaint;

begin

  Paint;

end;

end.

另外,还可以对这个组件进一步扩展,扩展其它任一窗体,只要知道了窗体的Handle就行了  [1]

Delphi无标题栏窗口程序设计中鼠标拖动技巧

Photoshop制作流行红色网页提交按钮

IIS配置与组件

--->腾讯QQ 2006 Beta2 SP1(0728)海峰绿色版(显隐身,显IP,众多实用组件)
--->KMPlayer V2.9.1.1043 Build 316 官方简体中文语言文件+exe 优化和组件增强
--->Power Video Converter 1.5.42┊视频处理工具、含有五大组件┊汉化绿色特别版
--->DVDSubEdit V1.36┊显示修改DVD字幕、菜单按钮变高亮模式┊英文绿色特别版
--->Resource Tuner V1.9┊改变程序的文本、图片、按钮┊绿色特别版
Tags:  标题栏 按钮 组件
{$enumber$}
芯友网版权所有 1999-2006 | 著作权与商标声明 | 法律声明 | 服务条款 | 隐私声明 | 联系我们