实现StatusBar的Flat风格

效果见右图,OfficeXP里就是这样的风格,其实实现很简单,不必专门在网上找别人控件。
  把StatusBar的SimplePanel设为False,点击Panels添加StatusPanel,把所有StatusPanel的Bevel设为pbNone、Style设为psOwnerDraw因为我们要自己绘制Flat风格。下面是StutasBar的OnDrawPanel事件代码:

procedureTForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
  Panel: TStatusPanel; const Rect: TRect);
var
    uAlign: UINT;
    R: TRect;
begin
    case Panel.Alignment of
        taLeftJustify  : uAlign := DT_LEFT;
        taCenter       : uAlign := DT_CENTER;
        taRightJustify : uAlign := DT_RIGHT;
    end;
    uAlign := uAlign or DT_VCENTER;
    with StatusBar.Canvas do begin
        Pen.Color := $E1E1E1;
        Brush.Color := StatusBar.Color;
        Rectangle(Rect);
        Brush.Style := bsClear;
        R.Left := Rect.Left + 1;
        R.Right := Rect.Right - 1;
        R.Top := Rect.Top + 1;
        R.Bottom := Rect.Bottom - 1;
        DrawText(StatusBar.Canvas.Handle, PChar(Panel.Text), -1, R, uAlign);
    end;
end;

  右图的界面中,第一StatusPanel应该是自动调整大小的,所以还得处理StatusBar.OnResize事件,代码如下:
procedure TForm1.StatusBar1Resize(Sender: TObject);
var
    i, w: integer;
begin
    w := StatusBar1.Width;
    for i:=1 to StatusBar1.Panels.Count-1 do
        w := w - StatusBar1.Panels[i].Width;
    StatusBar1.Panels[0].Width := w;
end;

  效果还不错吧

//文章出自:http://blog.csdn.net/nhconch,转载请作者联系,并注明文章出处、保留作者信息,谢谢支持!

http://blog.csdn.net/nhconch/article/details/124042

时间: 2024-08-09 14:43:58

实现StatusBar的Flat风格的相关文章

粗制博客园皮肤 SimoCoding CSS 样式 —— 轻 Flat 风格

1 #nav_next_page { 2 line-height: 40px; 3 } 4 #nav_next_page a { 5 -webkit-border-radius: 3px; 6 -moz-border-radius: 3px; 7 border-radius: 3px; 8 background-color: #515151; 9 height: 40px; 10 line-height: 40px; 11 color: #fff; 12 display: inline-bloc

Flat风格的Qml滚动选择条

基于Qml的Tumbler控件修改而成. 滚动选择条代码 import QtQuick 2.0 import QtQuick.Controls 2.0 import QtGraphicalEffects 1.0 Tumbler { id: root property color currentItemColor: "#3498DB" visibleItemCount: 5 delegate: Text { text: modelData color: root.currentItemC

iOS之StatusBar详解

随便打开手机上的主流APP,我们不难发现它们的状态栏都是跟导航栏保持一致的背景颜色,如下图的微信和instagram: WECHAT.PNG INS.PNG 那么今天我们就来说一下StatusBar这个只有区区20像素高度的小东西. UIStatusBarStyle 状态栏有两种显示风格:1.UIStatusBarStyleDefault default.png 2.UIStatusBarStyleLightContent lightContent.png 那么它的背景颜色是怎么加上去的呢?很简

非常棒的 「Sublime Text 配色/主题」与「编程字体」

*标有 CT 的是配色 **主题中调用的字体和相配套的Sublime主程序图标可访问GitHub获取 Afterglow https://github.com/YabataDesign/afterglow-theme 基于 Spacegray,暖色调的主题,Flat风格 Tomorrow(CT) https://github.com/theymaybecoders/sublime-tomorrow-theme 适合不同背景色,清晰明丽     Spacegray https://github.c

“Win10 UAP 开发系列”之主题模式切换

微软动作真是快,本来想写WP8.1RT系列,结果刚整理了一点就出Win10 UAP了.不过还好RT到Win10的差别还不算太大.前两天参加了Win10开发极客秀,虽然没获奖,不过在韦恩卑鄙的帮助下顺利将澎湃新闻WP8.1版升级到了Win10UAP,使用了一些新的特性,最近争取有时间慢慢把一些东西总结一下. 今天先说一下如何在Win10 UAP中切换主题模式. 切换日间.夜间主题模式这个功能我从WP8就实现了,并封装成了一个库,用在我所有的WP8的app里.到了WP8.1因为系统主题样式都改了,又

EasyUI datagrid优化

easyui datagrid 在IE上加载速度慢, 150行数据就无法忍受了. firefox加载速度还可以. 优化的点有2个:(1) column的宽度不能设置为自适应, 否则grid刷新速度很慢.  (2) 采用datagrid-scrollview 方式来渲染数据. 参考文章有: http://blog.csdn.net/yanghongchang_/article/details/8017715http://blog.csdn.net/zjh527/article/details/91

(数据科学学习手札55)利用ggthemr来美化ggplot2图像

一.简介 R中的ggplot2是一个非常强大灵活的数据可视化包,熟悉其绘图规则后便可以自由地生成各种可视化图像,但其默认的色彩和样式在很多时候难免有些过于朴素,本文将要介绍的ggthemr包专门针对原生ggplot2图像进行美化,掌握它之后你就可以创作出更具特色和美感的数据可视化作品. 二.基础内容 2.1 安装 不同于常规的R包,ggthemr并没有在CRAN上发布,因此我们需要使用devtools中的install_github()直接从github上安装它,参照github上ggthemr

[转]开发Visual Studio风格的用户界面--MagicLibrary使用指南

本文的示例代码为可以从这里下载: 1           概述 微软Visual Studio.NET开发工具推出已经好几年了,这个开发工具一推出就以其易用性和强大功能深受开发者的喜爱.尤其是.NET环境使得不同开发语言如C#.VB.NET以及C++.NET之间的交互变得非常容易.因此涌现了许多在.NET下开发的控件库,可以供不同的开发语言调用.MagicLibrary就是其中比较优秀的一个用于界面设计的控件库,可以用来开发类似.Net Studio这样具有停靠窗口风格的界面.该库的源代码及使用

设置statusBar状态栏颜色

设置statusBar的[前景部分] 简单来说,就是设置显示电池电量.时间.网络部分标示的颜色, 这里只能设置两种颜色: 默认的黑色(UIStatusBarStyleDefault) 白色(UIStatusBarStyleLightContent) 可以设置的地方有两个:plist设置里面 和 程序代码里 1.plist设置statusBar 在plist里增加一行 UIStatusBarStyle(或者是“Status bar style”也可以),这里可以设置两个值,就是上面提到那两个 UI