Firemonkey 自定义Button的Style
这篇文章模仿HTML中基于CSS的Button,通过Style实现自定义样式的Button。
前言
主要模仿的CSS代码如下:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
a.button
{ text-align:center; display:block; width:50px; color:#fff; text-decoration:none; font-weight:700; line-height:1; background-color:#e33100; -moz-border-radius:5px; -webkit-border-radius:5px; -moz-box-shadow:0 1px 3px rgba(0,0,0,0.5); -webkit-box-shadow:0 1px 3px rgba(0,0,0,0.5); text-shadow:0 -1px 1px rgba(0,0,0,0.25); border-bottom:1px solid rgba(0,0,0,0.25); position:relative; cursor:pointer; margin:10px auto 0; padding:5px 10px 6px; } a.button:hover |
1、创建一个Firmonkey应用
创建应用后,会创建默认的窗口,添加一个TLayout和TButton
其中
窗口大小设置:
BorderStyle = None
ClientHeight = 148
ClientWidth = 328
Layout的属性设置:
Align = Bottom
Margins.Bottom = 23
Button的属性设置:
Align = Center
Size.Width = 70.000000000000000000
Size.Height = 22.000000000000000000
2、创建自定义Button的Style
在Button上点击鼠标右键,选择“Edit Custom Style…”,IDE会自动创建StyleBook并未进入Style编辑界面。
将StyleName改为a.button, 点击 “Apply and Close”,这时Button的StyleLookup还是之前的默认创建的StyleName,将其改为a.button
这时重新选择“Edit Custom Style…”,会自动进入a.button的Style编辑状态。
选择background和上面的删除按钮,将background删除。
在Tool Palette当中选择TRectangle,双击添加一个TRectangle到Style当中。
设置Rectangle属性如下:
Align = Contents
Fill.Color = #FFE33100
HitTest = False
Stroke.Kind = None
StyleName = background
选择background,添加一个TColorAnimation
属性设置如下:
选择text节点:
设置属性如下:
HotColor = White
NormalColor = White
PressedColor = White
TextSettings.FontColor = White
Shadow.Color = #40000000
Shadow.Offset.X = –1
Shadow.Offset.Y = 1
ShadowVisible = True
3、实际效果
4、总结
网上有很多优秀的CSS样式,这篇小文章演示了如何将CSS样式转换为Firemonkey的Style。
上述代码托管在以下地址:
https://github.com/zhaoyipeng/DelphiDemos/tree/master/BeautifulDialog
Firemonkey 自定义Button的Style的更多相关文章
- WPF 自定义Button控件及样式
这次通过最近做的小例子说明一下自定义Button控件和样式. 实现的效果为:
- 【Android开发日记】之入门篇(十四)——Button控件+自定义Button控件
好久不见,又是一个新的学期开始了,为什么我感觉好惆怅啊!这一周也发生了不少事情,节假日放了三天的假(好久没有这么悠闲过了),实习公司那边被组长半强制性的要求去解决一个后台登陆的问题,结果就是把 ...
- android中样式和自定义button样式
1)自定义button样式 一.采用图片方式 首先新建Android XML文件,类型选Drawable,根结点选selector,自定义一个文件名. 随后,开发环境自动在新建的文件里加了select ...
- IOS开发之自定义Button(集成三种回调模式)
前面在做东西的时候都用到了storyboard,在今天的代码中就纯手写代码自己用封装个Button.这个Button继承于UIView类,在封装的时候用上啦OC中的三种回调模式:目标动作回调,委托回调 ...
- ios基础篇(二十四)—— 文字、图片的绘制及其自定义Button
这篇文章我们主要来拿官方的控件来研究一下,我们来仿照官方的控件,自己来实现它提供的控件: 首先来看看基本的图片与文字的绘制,很简单. 一.imageView 所有的视图都是继承自UIView,所以我们 ...
- iOS_Swift初识之使用三种回调方式自定义Button
最近在学习Swift ,发现青玉伏案大神早期用OC写的一篇博客--IOS开发之自定义Button(集成三种回调模式) 很适合用来熟悉Swift的回调方式,于是我就用Swift翻版了一下,具体实现原理 ...
- 自定义Button 的图片设置不显示问题。
如果你是自定义button 那么你设置图片就要用 button.imageView.image = [UIImage imageName:@""]; 如果你是给系统原生的butt ...
- wpf textblock 会覆盖 button里面字体样式的解决方法 还有button的style覆盖。。datepicker里面的按钮的style
.(button使用contont写的时候) 当.button使用 <button.content><textBlock/></button.content>依然会 ...
- Android 自定义Button按钮显示样式(正常、按下、获取焦点)
现在的用户对APP的外观看得很重要,如果APP内所有元件都用Android默认样式写,估计下面评论里就有一堆在骂UI丑的.今天学习自定义Button按钮样式.Button样式修改的是Button的背景 ...
随机推荐
- 说服式设计(persuasive design)的行为模型
转自:http://www.sharetk.com/html/ued/User-Research/1404.html 一 模型简介 BJ Fogg提出了一个新的理解人类行为的模型,他称之为Fogg b ...
- 一步一步重写 CodeIgniter 框架 (11) —— 使用 CodeIgniter 函数库
在完成了CI框架的类库扩展后,很自然我们就会想到函数库的扩展.函数库的扩展在 CI 中称为 helper 函数与类有不同的地方,它不能继承,只能覆盖或者添加新的函数,或者直接完全新定义的一组函数. 由 ...
- [置顶] CSS+DIV总结
HTML在Web飞速发展的过程中起着重要作用,有着重要地位.HTML初衷是为了表达标签(<p>.<table>)的内容信息.同时文档布局由浏览器来完成,不使用任何格式 ...
- MSSQL奇技淫巧
MSSQL:获得库每个表的记录数和容量 sp_msforeachtable是MS未公开的存储过程: exec sp_msforeachtable @command1="print '?'&q ...
- IOS 调用系统相册或照相机tab按钮显示中文
- 新浪微博中tableview中头部信息
摘自http://www.cnblogs.com/gcb999/p/3151665.html #import <UIKit/UIKit.h> @class User; @protocol ...
- 基于visual Studio2013解决算法导论之004随机排列数组
题目 随机排列数组 解决代码及点评 #include <stdio.h> #include <stdlib.h> #include <malloc.h> # ...
- 获取证书以用于 Windows Azure 网站 (WAWS)
编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写. 近年来,随着网络犯罪的上升,使用 SSL 保护网站逐渐成为一项备受追捧的功能,Windows A ...
- anroid里面的post请求
一.需要用到的场景 在jQuery中使用$.post()就可以方便的发起一个post请求,在android程序中有时也要从服务器获取一些数据,就也必须得使用post请求了. 二.需要用到的主要类 在a ...
- 基于 SSH 的工具叫 sshfs. sshfs 可以让你在本地直接挂载远程主机的文件系统
另外一个很赞的基于 SSH 的工具叫 sshfs. sshfs 可以让你在本地直接挂载远程主机的文件系统. $ sshfs -o idmap=user user@hostname:/home/user ...