随笔 - 2146  文章 - 19 评论 - 11846 阅读 - 1267万

10 2011 档案
捕捉 midi 输入消息的基本程序
摘要:uses MMSystem;var hMidiIn: Integer;procedure midiCallBack(hdrvr: HDRVR; uMsg: UINT; dwUser: DWORD; dw1, dw2: DWORD) stdcall;begin case uMsg of MIM_OPEN: ; MIM_CLOSE: ; MIM_DATA: Form1.Memo1.Lines.Add(IntToStr(dw1)); MIM_LONGDATA: ; MIM_ERROR: ; MIM_LONGERROR: ; end;end;procedure ... 阅读全文
posted @ 2011-10-31 16:40 万一 阅读(2992) 评论(0) 推荐(0) 编辑
MusicXML 3.0 - DTD 速查
摘要:%common;%layout;%identity;%attributes;%link;%note;%barline;%direction;%score;]]>%isolat1;%isolat2; ]]> ]]> 阅读全文
posted @ 2011-10-28 13:21 万一 阅读(2384) 评论(2) 推荐(0) 编辑
MusicXML 3.0 (32) - 鼓谱
摘要:<?xml version="1.0" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list> <part-group type=&quo 阅读全文
posted @ 2011-10-28 12:10 万一 阅读(2047) 评论(2) 推荐(0) 编辑
MusicXML 3.0 (31) - Tab
摘要:<?xml version="1.0" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list> <part-group type=&quo 阅读全文
posted @ 2011-10-27 17:49 万一 阅读(1538) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (30) - 和弦图表
摘要:<?xml version="1.0" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list> <score-part id=" 阅读全文
posted @ 2011-10-27 17:10 万一 阅读(1776) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (29) - 和弦文本
摘要:<?xml version="1.0" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list> <score-part id=" 阅读全文
posted @ 2011-10-27 16:20 万一 阅读(1568) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (28) - 乐器分组
摘要:<?xml version="1.0" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list> <part-group type=&quo 阅读全文
posted @ 2011-10-27 14:48 万一 阅读(1542) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (27) - 总谱格式
摘要:<?xml version="1.0" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list> <part-group type=&quo 阅读全文
posted @ 2011-10-27 14:11 万一 阅读(2412) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (26) - 隐藏对象
摘要:<?xml version="1.0" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list> <score-part id=" 阅读全文
posted @ 2011-10-27 12:33 万一 阅读(1383) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (25) - 标题、作者、版权
摘要:<?xml version="1.0" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <work> <work-title>标 题</wor 阅读全文
posted @ 2011-10-27 12:16 万一 阅读(1633) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (24) - 琶音、颤音、滑音、震音
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-26 23:14 万一 阅读(1691) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (23) - 波音、回音
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-26 22:48 万一 阅读(1273) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (22) - 强、弱、渐强、渐弱、渐快、渐慢
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-26 22:20 万一 阅读(1803) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (21) - 大反复
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-26 22:02 万一 阅读(1315) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (20) - 钢琴踏板
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-26 17:44 万一 阅读(1447) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (19) - 八度
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-26 16:52 万一 阅读(1577) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (18) - 房子
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-26 16:21 万一 阅读(1393) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (17) - 连音
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-25 21:14 万一 阅读(1487) 评论(2) 推荐(0) 编辑
MusicXML 3.0 (16) - 小音符
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-25 16:05 万一 阅读(2336) 评论(1) 推荐(0) 编辑
MusicXML 3.0 (15) - 倚音
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-25 15:34 万一 阅读(1603) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (14) - 演奏技法标记
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-25 14:45 万一 阅读(1549) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (13) - 歌词
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-25 13:17 万一 阅读(1502) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (12) - 声部
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-24 23:42 万一 阅读(1566) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (11) - 和弦
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-24 21:30 万一 阅读(1406) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (10) - 换行、换页
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-24 21:29 万一 阅读(1474) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (9) - 小节线、反复线、终止线
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-24 15:38 万一 阅读(1840) 评论(0) 推荐(1) 编辑
MusicXML 3.0 (8) - 符干方向
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-24 14:59 万一 阅读(1394) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (7) - 连线、延音线
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-24 13:46 万一 阅读(1778) 评论(1) 推荐(0) 编辑
MusicXML 3.0 (6) - 符杠分组
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-24 12:57 万一 阅读(1462) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (5) - 附点、休止符
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-24 11:55 万一 阅读(1693) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (4) - 谱号
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-22 23:29 万一 阅读(1640) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (3) - 拍号
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-22 22:49 万一 阅读(2510) 评论(0) 推荐(0) 编辑
MusicXML 3.0 (2) - 调号
摘要:<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http://www.musicxml.org/dtds/partwise.dtd"><score-partwise version="3.0"> <part-list&g 阅读全文
posted @ 2011-10-22 12:56 万一 阅读(2575) 评论(1) 推荐(0) 编辑
MusicXML 3.0 (1) - "Hello World" in MusicXML
摘要:这是 Midi 之后更完善的通用乐谱格式, 已有 Sibelius 等众多软件兼容; 官方网站: http://www.musicxml.org/ 或 http://www.recordare.com/musicxml<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE score-partwise PUBLIC "-//Recordare//DTD MusicXML 3.0 Partwise//EN" "http 阅读全文
posted @ 2011-10-21 22:45 万一 阅读(5012) 评论(4) 推荐(0) 编辑
关于禁止程序重复启动的另一种需要与实现
摘要:手头的程序需要禁止重复启动, 但需要保留新的、关闭旧的.我想还是从主窗口的类名下手吧; 写了一个函数, 在 OnCreate 中调用即可:{ 函数 }procedure CloseSameClassNameWindow(ACurrentWindow: HWND; const AClassName: string);var h: HWND; buf: array[0..255] of Char;begin h := ACurrentWindow; while h > 0 do begin h := GetWindow(h, GW_HWNDNEXT); GetClassNam... 阅读全文
posted @ 2011-10-12 00:31 万一 阅读(4573) 评论(6) 推荐(1) 编辑
Delphi XE2 新增 System.Zip 单元, 可用一句话压缩整个文件夹了
摘要:单元内主要就是 TZipFile 类, 最方便使用的是它的类方法:TZipFile.ExtractZipFile() //解压 Zip 文件到指定文件夹TZipFile.IsValid() //判断指定文件是否是有效的 Zip 文件TZipFile.ZipDirectoryContents() //压缩指定路径下的所有文件测试:uses System.Zip;{ 把 C:\Temp\TestDir 下的所有文件压缩到 C:\Temp\Test.zip }procedure TForm1.Button1Click(Sender: TObject);begin... 阅读全文
posted @ 2011-10-09 23:12 万一 阅读(16471) 评论(8) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(45) - 结题与问题
摘要:很喜欢 FMX 的一些新控件, 如: TExpander、TArcDial、TComboTrackBar、TPathLabel 等等, 没时间继续学习了.对 FMX 的整体感觉: 还不成熟, 但肯定有前景; 它的构架师有远见、了不起, 很难估计他开启的是多大一扇门!本将继续学习:1、TCanvas、TBrush、TApplication;2、FMX 中的 GDI+、D2D、DirectX;3、FMX 3D;4、XE2 中新增的其他内容(譬如新增的 TZipFile 类, 已测试过、下帖附上).又要忙其它事情了, 但愿能尽早有时间和心情回来继续学习.正在学习但没有学完的东西是关于拖放的; 现在的 阅读全文
posted @ 2011-10-09 22:53 万一 阅读(6657) 评论(3) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem
摘要:TScrollBox -> TCustomTreeView -> TTreeView 子项类型是 TTreeViewItem.测试, 先在窗体上放一个 TTreeView, 并需要它的 OnChange 事件:unit Unit1;interfaceuses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Layouts, FMX.TreeView;type TFor 阅读全文
posted @ 2011-10-09 14:19 万一 阅读(8375) 评论(5) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid、TGrid
摘要:TStringGrid、TGrid 都是从 TCustomGrid 继承; 区别有:1、它们的列对象分别是: TStringColumn、TColumn;2、TStringGrid 比 TGrid 多出了 Cells[] 属性.因为 TGrid 没有 Cells[] 属性, 暂时不方便使用; 我尝试取其当前单元值时竟然用了这样的代码:(Grid1.Columns[Grid1.ColumnIndex].CellControlByRow(Grid1.Selected) as TTextCell).TextTStringGrid 测试:{ 设计时放好 StringGrid1, 运行时填充数据 }pr 阅读全文
posted @ 2011-10-09 11:46 万一 阅读(11630) 评论(21) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox、TComboEdit
摘要:TListBox 有两个兄弟 TComboListBox、TComboEditListBox; TComboBox、TComboEdit 虽不是不是从它们继承, 但分别包含了它们, 所以使用起来都有点像 TListBox.TComboBox 更像 TListBox, 比 TComboEdit 多出了 Selected 等成员;TComboEdit 是从 TCustomEdit 继承, 和 TEdit 是兄弟, 比 TComboBox 多出了 Text 等成员. 它们的公共常用属性:DropDownCount //下拉列表行的数ItemHeight //ItemIndex //It... 阅读全文
posted @ 2011-10-08 23:35 万一 阅读(5508) 评论(0) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox
摘要:TScrollBox -> TCustomListBox -> TListBox; 其元素项是 TListBoxItem 类型.TListBox 的功能在 TCustomListBox 里就完成了.值得注意的变化是: 1、复选框(相关属性: ShowCheckboxes、TListBoxItem.IsChecked)2、交替背景(通过继承还可以调整交替的背景色)3、TListBoxItem 可调整大小、容纳其它对象.{ TCustomListBox }public constructor Create(...); override; // destructor Destr... 阅读全文
posted @ 2011-10-08 15:31 万一 阅读(6476) 评论(2) 推荐(1) 编辑
Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo
摘要:值得注意的变化:1、其父类 TScrollBox 的许多特性也很有用处, 如: Memo1.UseSmallScrollBars := True;2、内部使用了一个栈列表管理动作, 现在可以执行多步撤销(UnDo).3、使用了一个新的结构体 TCaretPosition 来描述当前位置, 并为该结构提供了一个公用的快速构造函数 ComposeCaretPos(). TCaretPosition = record Line, Pos: Integer; end;4、提供枚举属性 CharCase 控制大小写. Memo1.CharCase := TEditCharCas... 阅读全文
posted @ 2011-10-08 13:21 万一 阅读(5085) 评论(0) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(39) - 控件基础: TScrollBox、TVertScrollBox、TFramedScrollBox、TFramedVertScrollBox
摘要:TScrollBox 是不少控件(TMemo、TListBox、TStringGrid、TTreeView、TImageViewer 等)的基础, 所以先学.TVertScrollBox 只比 TScrollBox 少了竖滚动条.TFramedScrollBox、TFramedVertScrollBox 只是套用了不同的样式, 有可视的框架.{ TScrollBox }public constructor Create(...); override; // destructor Destroy; override; // procedure AddObject(...)... 阅读全文
posted @ 2011-10-07 23:55 万一 阅读(7109) 评论(0) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(38) - 控件基础: TPopupMenu、TMenuItem、TMenuBar、TMainMenu
摘要:相关控件: TMenuBar、TPopupMenu、TMainMenu; 它们都是要包含 TMenuItem; 在设计时添加 TMenuItem 很容易.其中的 TMainMenu 暂不能应用其他样式; TMenuBar 只有一个值得注意 UseOSMenu 属性.控件 PopupMenu 属性用于指定右键菜单.暂时无法直接为窗体指定右键菜单, 因为窗体现在没有 PopupMenu 属性; 我想到的办法是在窗体上覆盖一个 TPanel 或 TRectangle:procedure TForm1.FormCreate(Sender: TObject);begin Panel1.Align :=. 阅读全文
posted @ 2011-10-07 16:14 万一 阅读(8770) 评论(1) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览
摘要:{ TControl }public constructor Create(...); override; // destructor Destroy; override; // procedure AddObject(...); override; //添加对象 procedure RemoveObject(...); override; //移除对象 procedure SetNewScene(...); virtual; //设置新场景 procedure SetBounds(...); virtual; //设置位置、大小 fu... 阅读全文
posted @ 2011-10-06 22:54 万一 阅读(4977) 评论(4) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm
摘要:当我第一次读取 Form1.StyleLookup 并期待出现 "formstyle" 时, 给的确是 "backgroundstyle" ...现在明白了, 原来窗体上覆盖着一个 TRectangle 对象:uses FMX.Objects;procedure TForm1.Button1Click(Sender: TObject);begin (Self.Children[0] as TRectangle).Fill.Color := claRed; //默认情况下, 通过 Children[0] 可读出这个矩形, 但其次序(Index)是可变的 S 阅读全文
posted @ 2011-10-06 13:01 万一 阅读(8223) 评论(12) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它
摘要:TFmxObject 增加了 TagObject、TagFloat、TagString, 算上从 TComponent 继承的 Tag, 可以暂存多种类型的数据了.ChildrenCount、Children[] 代替了之前的 ControlCount、Controls[].有增删 Children 的几个方法: AddObject()、InsertObject()、RemoveObject()、Exchange()、DeleteChildren()Index 属性是控件在 Children 队列中的序号, 给它赋值可调整控件的前后次序;SendToBack()、BringToFront() 阅读全文
posted @ 2011-10-05 21:44 万一 阅读(3549) 评论(2) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(34) - 控件基础: TFmxObject: 克隆对象
摘要:有两个和克隆相关的方法: Clone()、CloneChildFromStream().Clone() 很好用, 但 CloneChildFromStream() 的源码很明显地写错了(是小问题, 谁外语好去报一下).procedure TForm1.FormCreate(Sender: TObject);var i: Integer;begin for i := 0 to 9 do ListBox1.Items.Add('Item' + IntToStr(i));end;{把 ListBox1 克隆到 Panel1}procedure TForm1.Button1Click( 阅读全文
posted @ 2011-10-05 19:19 万一 阅读(3432) 评论(4) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(33) - 控件基础: TFmxObject: SaveToStream、LoadFromStream、SaveToBinStream、LoadFromBinStream
摘要:SaveToStream()、LoadFromStream() 对应文本流;SaveToBinStream()、LoadFromBinStream() 对应二进制流; 相对文本流, 二进制流会小一些.有这几个方法, 控件数据与状态的序列化就太容易了.示例:1、控件: ListBox1、Button1、Button22、事件: Button1.OnClick、Button2.OnClick、Form1.OnCreateunit Unit1;interfaceuses System.SysUtils, System.Types, System.UITypes, System.Classes, S. 阅读全文
posted @ 2011-10-05 14:34 万一 阅读(4985) 评论(4) 推荐(1) 编辑
Delphi XE2 之 FireMonkey 入门(31) - 数据绑定: 绑定数据库
摘要:一、全设计时操作:先在窗体上放置控件:DataSource1 : TDataSource;ClientDataSet1 : TClientDataSet;Label1 : TLabel;Edit1 : TEdit;Memo1 : TMemo;ImageControl1 : TImageControl;BindNavigator1 : TBindNavigator;{在连接过程中, 会自动添加下面部件}BindingsList1 : TBindingsList;BindScopeDB1 ... 阅读全文
posted @ 2011-10-03 22:06 万一 阅读(8350) 评论(9) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(30) - 数据绑定: TBindingsList: TBindExpression 的 OnAssigningValue 事件
摘要:表达式中的函数有限, 譬如我想通过绑定输出文本的长度(譬如在 Label1 中绑定输出 Edit1.Text 的长度)就没有相应的函数;这可在 TBindExpression 的 OnAssigningValue 事件中处理.TBindExpression 和它的兄弟们 (TBindExprItems、TBindLink、TBindListLink、TBindGridLink、TBindPosition、TBindList、TBindGridList、TBindDBEditLink、TBindDBTextLink、TBindDBListLink、TBindDBImageLink、TBindDB 阅读全文
posted @ 2011-10-03 14:07 万一 阅读(3701) 评论(0) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(29) - 数据绑定: TBindingsList: 表达式的 Evaluate() 方法
摘要:TBindingsList 中可能不止一个表达式, 通过表达式的 Evaluate 方法可单独提交绑定, 并可在 Active = False 时提交.在 TBindExprItems 中对应的方法是 EvaluateFormat.测试设想: Label1、Label2 的绑定源同是 Edit1, 分别提交绑定.1、在窗体上加控件: Label1、Label2、Edit1、BindingsList1;2、激活 Edit1 的 OnKeyUp、OnChange 事件, 还有窗体的默认事件.unit Unit1;interfaceuses System.SysUtils, System.Type. 阅读全文
posted @ 2011-10-03 12:51 万一 阅读(3371) 评论(0) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(28) - 数据绑定: TBindingsList: 表达式函数测试: SelectedText()、CheckedState()
摘要:示例构想: 用 Label1 显示 ListBox1 的选项, 用 Label2 显示 CheckBox1 的状态.1、放控件: Label1、Label2、ListBox1、CheckBox1、BindingsList1、BindScope1;2、激活 ListBox1 的 OnClick 事件和窗体的默认事件.unit Unit1;interfaceuses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms,.. 阅读全文
posted @ 2011-10-03 10:43 万一 阅读(3803) 评论(0) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(27) - 数据绑定: TBindingsList: TBindScope
摘要:如果在编写表达式时, 如果能够随意指认需要的控件就好了(通过 Owner 也可以勉强做到), TBindScope 就是解决这个问题的.示例设想: 把三个 TEdit 的 Text 绑定到一个 TLabel.在窗体上添加 Label1、Edit1、Edit2、Edit3、BindingsList1、BindScope1; 激活 Edit1 和窗体的默认事件.unit Unit1;interfaceuses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FM.. 阅读全文
posted @ 2011-10-03 09:49 万一 阅读(3360) 评论(0) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(26) - 数据绑定: TBindingsList: TBindExprItems
摘要:如果要给一对 "源控件" 和 "目标控件" 写多个表达式, 使用 TBindExpression 就不如 TBindExprItems 了.TBindExprItems 中的表达式又分两组: FormatExpressions、ClearExpressions, 后者是在断开绑定时的表达式.示例设想:1、TrackBar1 为源, 把其 Value 值绑定给 Edit1.Text 和 Edit1.Width 和 Label1.Text;2、断开绑定时, 在 Edit1 中显示 "已断开绑定".先在窗体上添加: TrackBar1、Ed 阅读全文
posted @ 2011-10-02 23:05 万一 阅读(3379) 评论(0) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(25) - 数据绑定: TBindingsList: 表达式的灵活性及表达式函数
摘要:绑定表达式中可以有简单的运算和字符串连接, 但字符串需放在双引号中.还可以使用 TBindingsList.Methods 提供的一组表达式函数(分别来自 System.Bindings.Methods 和 Data.Bind.EngExt 单元):ToStr()ToVariant()Round()Format()UpperCase()LowerCase()FormatDateTime()StrToDateTime()Max()Min()CheckedState()SelectedItem()SelectedText()示例: 用三个 TLabel 分别呈现窗体的宽度、高度、面积.现在窗体上添 阅读全文
posted @ 2011-10-02 18:25 万一 阅读(4008) 评论(8) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(24) - 数据绑定: TBindingsList: TBindExpression.Direction
摘要:在学习 BindingSource 属性时, 可以让两个控件互为绑定源; TBindExpression 对应的功能是 Direction 属性.先在窗体上添加 Edit1、Edit2、BindingsList1; 然后激活 Edit1、Edit2 和窗体的默认事件.procedure TForm1.FormCreate(Sender: TObject);begin with TBindExpression.Create(BindingsList1) do begin ControlComponent := Edit2; ControlExpression := 'Text'; 阅读全文
posted @ 2011-10-02 14:12 万一 阅读(3722) 评论(0) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(23) - 数据绑定: TBindingsList: TBindExpression
摘要:准备用 TBindingsList 重做上一个例子.可以先把 TBindingsList 理解为是一组绑定表达式(TBindExpression)的集合;官方应该是提倡在设计时完成 TBindExpression 的建立与参数设置, 但我觉得看运行时的代码会更容易理解.1、先在窗体上添加 TrackBar1、Edit1、Label1、BindingsList1;2、激活窗体和 TrackBar1 的默认事件;3、然后将通过代码把 TrackBar1.Value 分别绑定到 Edit1.Text、Label1.Text, (这里把 TrackBar1 做源控件, 把 Edit1、Label1 做 阅读全文
posted @ 2011-10-02 11:24 万一 阅读(6391) 评论(0) 推荐(0) 编辑
Delphi XE2 之 FireMonkey 入门(22) - 数据绑定: BindingSource、BindingName、FindBinding()、Binding[]
摘要:在窗体上添加 TrackBar1、Edit1、Label1, 然后设置属性(可在设计时):procedure TForm1.FormCreate(Sender: TObject);begin Edit1.BindingSource := TrackBar1; //将 TrackBar1 的值绑定在 Edit1 Label1.BindingSource := TrackBar1; //将 TrackBar1 的值绑定在 Label1end;{之后, Edit1.Text 和 Label1.Text 会同步 TrackBar1.Value 值}不同类型值的沟通, 我想应该是依赖于 FM 组件... 阅读全文
posted @ 2011-10-01 12:31 万一 阅读(6493) 评论(3) 推荐(0) 编辑



点击右上角即可分享
微信分享提示