捕捉 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) 编辑
MusicXML 3.0 - DTD 速查
摘要:%common;%layout;%identity;%attributes;%link;%note;%barline;%direction;%score;]]>%isolat1;%isolat2; ]]> ]]>
阅读全文
posted @
2011-10-28 13:21
万一
阅读(2384)
推荐(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)
推荐(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) 编辑
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) 编辑
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) 编辑
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) 编辑
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) 编辑
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) 编辑
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) 编辑
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) 编辑
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) 编辑
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) 编辑
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) 编辑
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) 编辑
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) 编辑
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) 编辑
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)
推荐(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)
推荐(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) 编辑
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) 编辑
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) 编辑
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) 编辑
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) 编辑
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) 编辑
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)
推荐(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) 编辑
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)
推荐(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) 编辑
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) 编辑
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) 编辑
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) 编辑
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)
推荐(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)
推荐(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)
推荐(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)
推荐(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)
推荐(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)
推荐(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)
推荐(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) 编辑
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)
推荐(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) 编辑
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) 编辑
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)
推荐(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)
推荐(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)
推荐(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)
推荐(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)
推荐(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)
推荐(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)
推荐(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) 编辑
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) 编辑
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) 编辑
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) 编辑
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) 编辑
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)
推荐(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) 编辑
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) 编辑
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)
推荐(0) 编辑