很喜欢 FMX 的一些新控件, 如: TExpander、TArcDial、TComboTrackBar、TPathLabel 等等, 没时间继续学习了.
对 FMX 的整体感觉: 还不成熟, 但肯定有前景; 它的构架师有远见、了不起, 很难估计他开启的是多大一扇门!
本将继续学习:
1、TCanvas、TBrush、TApplication;
2、FMX 中的 GDI+、D2D、DirectX;
3、FMX 3D;
4、XE2 中新增的其他内容(譬如新增的 TZipFile 类, 已测试过、下帖附上).
又要忙其它事情了, 但愿能尽早有时间和心情回来继续学习.
正在学习但没有学完的东西是关于拖放的; 现在的 FMX 窗体可以直接响应拖放了, 譬如: 拖拽文本文件到窗体让 TMemo 打开.
unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Layouts, FMX.Memo; type TForm1 = class(TForm) Memo1: TMemo; //先在空白窗体上放 Memo1 private public { 覆盖这个两个方法 } procedure DragOver(const Data: TDragObject; const Point: TPointF; var Accept: Boolean); override; procedure DragDrop(const Data: TDragObject; const Point: TPointF); override; end; var Form1: TForm1; implementation {$R *.fmx} { TForm1 } procedure TForm1.DragOver(const Data: TDragObject; const Point: TPointF; var Accept: Boolean); begin inherited; { 如果拖拽的是文件, 且是 *.txt 文件, 则让 Accept := True 以让后面的 DragDrop 事件响应 } Accept := (Length(Data.Files) > 0) and (CompareText(ExtractFileExt(Data.Files[0]), '.txt') = 0); end; procedure TForm1.DragDrop(const Data: TDragObject; const Point: TPointF); begin inherited; Memo1.Lines.LoadFromFile(Data.Files[0]); end; end.
来不及学习的问题: TDropTarget 应该是直接和拖放相关的, TImageControl 中也有相关拖放的代码...
发现不大对头, 估计是源码有问题; 但愿谁学到了, 多少给我简介下.