2006 5 8 星期一

VCLSkin的使用

How to skin a application

A. Skin file store in exe file.

1. Put TSkindata component on mainform

2. Set Skindata.skinstore property , store skin file in your application.

3. Set Skindata.active = true

4. compile your application and run

B. Skin file is in file folder.

1. Put TSkindata component on mainform

2. Set Skindata.skinfile property , skin file is in exe file folder.

3. Set Skindata.active = true

4. compile your application and run

C. Skin file is in TSkinStorefile, store multi skin files in EXE file.

TSkinStore is designed for multi skin files stored in EXE file.

1. Put TSkindata,TSkinstore on mainform, store skin files in TSkinstore.

2.Load skin file In Form.Oncreate event, example code as follow:

procedure TForm1.FormCreate(Sender: TObject);
begin

Skindata1.LoadFromCollection(skinstore1,0);
if not skindata1.active then skindata1.active:=true;

end;

Form caption and MainMenu

A. Form caption and Mainmenu are skin

Skindata.skincontrols.xcMainmenu=true

B. Caption does not skin, Menu is skin .

Skindata.skincontrols.xcMainmenu=false
Skindata.skincontrols.xcMenuitem=true

Skin 3rd controls

Vclskin support 3rd control easily, just add control class name in TSkinData.skin3rd property

TSkindata.skin3rd support controls include Edit, Checkbox, Radiobutton, Combobox, Panel, Radiogroup, Checkgroup, Buton, Bitbtn, Speedbutton, Tab, Progress, Trackbar, Scrollbar, Embedscrollbar.

Embedscrollbar is to skin control which scrollbar is TScrollbar embed in it. like TAdvMemo .

TSkindata.skin3rd example code
TDBCheckboxEh=Checkbox
TDBLookupCombobox=Combobox
TLMDCheckGroup=CheckGroup
TLMDRadioGroup=RadioGroup
TLMDRadiobutton=Radiobutton
TLMDGROUPBOX=Panel
TLMDEDIT=Edit

if there is 3rd checkbox that vclskin don't support , you just add one line in TSkindata.skin3rd
Class_name_checkbox=checkbox

,这些都是从帮助上搞来的

懒省事了

不过,帮助真的很好

我总结几点

一、几个重要属性

Active

DisableTag

SkinFile

SkinStore

SkinFormType

SkinControls

Options

二、TSkinStore

TSkinStore can store multi-skinfiles in your application at designe time

Tskindata can load skin file from TSkinStore at rumtime:

TSkinData.LoadFromCollection(astore:TSkinStore;aindex:integer),

不错,可以在运行动态设置皮肤,其实通过改变TSkinDataSkinFile

SkinStore属性也可以达到同样的效果

2006 5 10 星期三

TGauge控件的使用

今天顺便看了看TGauge(标准尺)这个控件的用法,感觉挺简单,也不错

重要属性:

BackColor背景色

ForeColor 前景色

MaxValue 最大值

MinValue 最小值

progress 前进,进度当前的进度

Kind 类型 可设置不同的外观形状

问题

TGauge类在哪个单元中定义的?为什么在窗体上添加了一个TGauge对象后,查找TGauge定义时弹出Unable    to local  file "Gauge.pas"

2006 5 11 星期四

去除TMainMemu自动添加的快捷键

以前一直对这个小问题束手无策,今天终于发现解决这个问题的办法

很简单,AutoHotKeys属性设为maManual(默认为maAutomatic)

单击鼠标右键弹出TPopMenu菜单

以前是在onKeydown事件编码代码实现该功能,其实有更简单的方法

设置autoPopup属性true即可(默认即为True)

还有一个比较好的属性,就是TrackButton可以设置用户是单击鼠标左键啊还是右键弹出TPopMenu菜单

设置TStringGridFixedRowFixedCol的内容

刚开始不知道怎么设置,因为它不像DBGrid有Columns属性

其实也很简单,它和非固定单元格的内容设置完全一样,StringGrid1.cells[0,0]=’abc’

根据TStringGrid单元格中的内容设置设置列宽

StringGrid1.colwidth[i] := StringGrid1.Canvas.TextWidth(StringGrid1.colwidth[i]);

2006 5 17 星期三

ActionList组件中Action中分组的一个重要属性

category

2006 5 30 星期二

时间函数

首部 function TimeToStr(const DateTime: TDateTime): string; $[SysUtils.pas功能 返回时间DateTime转换成字符串说明 转换格式由系统变量LongTimeFormat控制参考 function SysUtils.DateTimeToString;var SysUtils.LongTimeFormat

━━━━━━━━━━━━━━━━━━━━━首部 function StrToTime(const S: string): TDateTime; $[SysUtils.pas功能 返回字符串S转换成时间说明 字符非时间表达时将引起异常参考 function SysUtils.TryStrToTime例子 DateTimePicker1.Time := StrToTime(Edit1.Text);━━━━━━━━━━━━━━━━━━━━━首部 function StrToTimeDef(const S: string; const Default: TDateTime): TDateTime; $[SysUtils.pas功能 返回字符串S转换成时间说明 字符非时间表达时则返回默认值Default参考 function SysUtils.TryStrToTime例子 DateTimePicker1.Time := StrToTimeDef(Edit1.Text, Time);━━━━━━━━━━━━━━━━━━━━━首部 function TryStrToTime(const S: string; out Value: TDateTime): Boolean; $[SysUtils.pas功能 返回字符串S转换成时间Value是否成功说明 字符非时间表达时返回False并且Value将输出为0参考 <NULL>例子///Begin TryStrToTime
procedure TForm1.Button1Click(Sender: TObject);
var
vDateTime: TDateTime;
begin
CheckBox1.Checked := TryStrToTime(Edit1.Text, vDateTime);
DateTimePicker1.Time := vDateTime;
end;
///End TryStrToTime
━━━━━━━━━━━━━━━━━━━━━

本来我不知道有这些函数,还自己去编Timestring函数.

不过声明一点,delphi5中没有TryStrToTime函数和StrToTimeDef函数,而在delphi6中四个函数都有

格式化函数

格式化实型数据函数

首部 function FormatFloat(const Format: string; Value: Extended): string; $[SysUtils.pas功能 返回浮点数类型以指定格式字符串Format转换成字符串说明 FormatFloat(',.00', 1234567890) = '1,234,567,890.00'参考 function SysUtils.FloatToTextFmt例子 Edit1.Text := FormatFloat(Edit2.Text, StrToFloatDef(Edit3.Text, 0));━━━━━━━━━━━━━━━━━━━━━首部 function FormatCurr(const Format: string; Value: Currency): string; $[SysUtils.pas功能 返回货币类型以指定格式字符串Format转换成字符串说明 FormatCurr(',.00', 1234567890) = '1,234,567,890.00'参考 function SysUtils.FloatToTextFmt例子 Edit1.Text := FormatCurr(Edit2.Text, StrToCurrDef(Edit3.Text, 0));━━━━━━━━━━━━━━━━━━━━━

想起来都有点好笑,一次为了格式化显示金额,自己还费了九牛二虎之力,去编格式化实型函数,

格式化时间函数

━━━━━━━━━━━━━━━━━━━━━首部 function FormatDateTime(const Format: string; DateTime: TDateTime): string; $[SysUtils.pas功能 返回用指定的格式Format来格式化日期时间DateTime说明 FormatDateTime('YYYY""MM""DD""', StrToDate(' 2002-03-09 ')) = ' 2002 03 09 '参考 function SysUtils.DateTimeToString例子 Edit2.Text := FormatDateTime(Edit1.Text, Now);━━━━━━━━━━━━━━━━━━━━━

Dek文件

桌面设置文件(.DSK文件)存储了Tools|Options菜单命令所设置的桌面选项;

如果在环境变量选项中选中了project desktop,则保存时会生成dsk文件

如果存在DSK文件,则每次打工程文件时,会从DSK文件中读取桌面信息,

*.dof是项目选项文件

它保存了通过Project|Options 菜单打开的对话框中设置的各个选项。该文件是一个文本文件可以使用一个文本编辑器打开并编辑它但建议一般不要这样做

若想另一个项目和某一个项目有相同的outputdcu output,还有path只需将些文件拷这过来.

.cfg是项目配置文件。

项目配置文件保存着项目的配置信息它也使用与项目相同的名字该文件也是一个文本文件可使用一个文本编辑器打开它但是一般不要对其修改。


delphi 2006-05笔记相关推荐

  1. Delphi 2006(DeXter) VS.NET 2005[原创]

    DeXter是Delphi 2006 Code Name,Delphi 2006 中将內含开发C++语言的功能!如果抢先预览,你可以到这个网址看一下(Flash演示)!http://bdntv.bor ...

  2. [转]李维《Delphi 2006 高效数据程序设计——dbExpress 篇》连载

    ====================================================== 注:本文源代码点此下载 ================================= ...

  3. 我学Delphi心得及笔记----字符串操作(第六讲)

    Delphi 中字符串的操作很简单,但幕后情况却相当复杂.Pascal 传统的字符串操作方法与Windows 不同,Windows吸取了C语言的字符串操作方法.32位Delphi中增加了长字符串类型, ...

  4. 我学Delphi心得及笔记----内存(第七讲)

    Delphi 4 的动态数组 传统的Pascal 语言其数组大小是预先确定的,当你用数组结构声明数据类型时,你必须指定数组元素的个数.专业程序员也许知道些许动态数组的实现技术,一般是采用指针,用手工分 ...

  5. 我学Delphi心得与笔记-------在控件上如何禁用Ctrl+V

    项目中用到一个TJamShellList组件,此组件实现绑定查询图片,发现在使用Ctrl+C的同时也可以使用Ctrl+V结果将一个图处复制了多份,这样就不行了:( 于是,想了一个办法,禁用了Ctrl+ ...

  6. delphi xe2学习笔记(1)

    原有的一个项目准备扩展成多层应用.这个项目本来是个单机版的数据采集系统,delphi7+ACCESS开发的,已经在试运行(感觉良好,_~~_). 原本这个程序只是一个简单的数据采集显示系统,不过随着试 ...

  7. 《男人装》2006.05

    现在是越来越喜欢这本传说中的中国<花花公子>了,喜欢它的一个很大原因是因为里面的人都在讲真话,起码给我的感觉是这样.不论是看里面的行文,还是看他们刻意为之的广告,还有做得一些采访,都是直抒 ...

  8. DELPHI HOOK随手笔记

    在 DOS 系统中编程,经常会采取截取中断向量的技术:我们可以设置新的中断服务程序,当系统其他的程序调用这个中断时,就让它先调用我们自己设置的新的中断服务程序,然后再调用原来的中断服务程序,这样就能够 ...

  9. Delphi的笔记整理(一)

    这几天清理资料,把以前学Delphi时的笔记翻出来了.大概是2005年时的吧,有些资料都没有什么价值了.以后再整理吧. Delphi Note 1.触发器的使用. 源数据库: 名称:info 字段:i ...

  10. NUnit学习笔记之进阶篇

    一.概述 NUnit是一款优秀的开源回归测试框架,我在<NUnit学习笔记>一文中已对其基本使用方法进行了简单的介绍.但除了TestFixture.Test.SetUp.TearDown. ...

最新文章

  1. [C++] stack和queue的常用函数
  2. MySQL中的InnoDB是怎么解决幻读的?
  3. 打地鼠程序代码C语言,自己用C写的一个简单的打地鼠游戏代码出了个问题(鼠标和循环不能...
  4. [并发编程] - Executor框架#ThreadPoolExecutor源码解读02
  5. c++构建工具之shell,configure,make,cmake,scons,xmake简析总结
  6. linux 删除大量文件
  7. C和C++中struct和typedef struct的异同
  8. java获取当前分钟_分别获取当前年月日 小时 分钟 秒 毫秒
  9. java8 javafx_JavaFX技巧8:美丽深层
  10. 知识力量_网络分析的力量
  11. 层内容被FLASH遮挡解决办法
  12. 【TensorFlow】CNN
  13. C++中begin、end、front、back函数的用法
  14. OpenShift 4 - 在 GitOps 中使用 SealedSecret 保护敏感数据
  15. leakcanary内存泄露检测工具报错 Dumping memory, app will freeze. Brrr
  16. 系统集成项目管理工程师_系统集成项目管理工程师,拿到证书可直接办理入户...
  17. 用python监控A股股票波动并发送预警邮件_V3
  18. 【爬虫】哔哩哔哩校园招聘信息
  19. WARN Error while fetching metadata with correlation id 1 : {first=LEADER_NOT_AVAILABLE} (org.apache.
  20. 微信小程序--优购商城项目(4)

热门文章

  1. C#中用RSA算法生成公钥和私钥
  2. Fields、Fieldvalues和Fieldbyname的区别
  3. 1685_Excel的几种脚本处理方式
  4. 由FlexBox算法强力驱动的Weex布局引擎
  5. python的pyaudio教程入门_Python PyAudio 安装使用
  6. tar.zst 文件格式解压
  7. 在《自动化学报》搜无人机关键词可以看到这方面的论文
  8. MySQL-数据表创建命令
  9. ThreadPool 线程池的作用
  10. java线程池功能_Java线程池总结