很喜欢 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) > ) and (CompareText(ExtractFileExt(Data.Files[]), '.txt') = );
end; procedure TForm1.DragDrop(const Data: TDragObject; const Point: TPointF);
begin
  inherited;
  Memo1.Lines.LoadFromFile(Data.Files[]);
end; end.

来不及学习的问题: TDropTarget 应该是直接和拖放相关的, TImageControl 中也有相关拖放的代码...

发现不大对头, 估计是源码有问题; 但愿谁学到了, 多少给我简介下.


Delphi XE2 之 FireMonkey 入门(45Finally) - 结题与问题的更多相关文章

  1. Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem

    Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...

  2. Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid、TGrid

    Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid.TGrid TStringGrid.TGrid 都是从 TCustomGrid 继承; 区别有:1 ...

  3. Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox、TComboEdit

    Delphi XE2 之 FireMonkey 入门(42) - 控件基础: TComboBox.TComboEdit TListBox 有两个兄弟 TComboListBox.TComboEditL ...

  4. Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox

    Delphi XE2 之 FireMonkey 入门(41) - 控件基础: TListBox TScrollBox -> TCustomListBox -> TListBox; 其元素项 ...

  5. Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo

    Delphi XE2 之 FireMonkey 入门(40) - 控件基础: TMemo 值得注意的变化: 1.其父类 TScrollBox 的许多特性也很有用处, 如:   Memo1.UseSma ...

  6. Delphi XE2 之 FireMonkey 入门(39) - 控件基础: TScrollBox、TVertScrollBox、TFramedScrollBox、TFramedVertScrollBox

    Delphi XE2 之 FireMonkey 入门(39) - 控件基础: TScrollBox.TVertScrollBox.TFramedScrollBox.TFramedVertScrollB ...

  7. Delphi XE2 之 FireMonkey 入门(38) - 控件基础: TPopupMenu、TMenuItem、TMenuBar、TMainMenu

    Delphi XE2 之 FireMonkey 入门(38) - 控件基础: TPopupMenu.TMenuItem.TMenuBar.TMainMenu 相关控件: TMenuBar.TPopup ...

  8. Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览

    Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览 { TControl } public   constructor Create(...); ov ...

  9. Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm

    Delphi XE2 之 FireMonkey 入门(36) - 控件基础: TForm 当我第一次读取 Form1.StyleLookup 并期待出现 "formstyle" 时 ...

随机推荐

  1. Delphi 逻辑运算符与布尔表达式

  2. 对mysql进行快照复制

    Myself> flush tables with read lock; 之后开始创建快照 [root@server0 mysql]# lvcreate -L 100M -s -n dbback ...

  3. jlink commander使用

    1.将JLink.exe拷贝到某个文件夹底下 2.建立bat文件,内容如下: JLink.exe -device Cortex-A7 -if JTAG -speed 4000 -jtagconf -1 ...

  4. java modCount和fail-fast

    在迭代遍历线程不安全的集合的时候,如ArrayList,如果其他线程修改了该集合,那么将抛出ConcurrentModificationException,这就是 fail-fast 策略. modC ...

  5. 【练习】(a,b)和(b,a)是相同的,如何去除(b,a)保留(a,b)

    [(0, 3), (0, 11), (1, 8), (1, 9), (1, 15), (3, 0), (8, 1), (8, 9), (8, 15), (9, 1), (9, 8), (9, 15), ...

  6. 怎么画一条0.5px的边

    编者按:本文由人人网FED发表于掘金,并已授权奇舞周刊转载 什么是像素? 像素是屏幕显示最小的单位,在一个1080p的屏幕上,它的像素数量是1920 1080,即横边有1920个像素,而竖边为1080 ...

  7. 大数据之Linux

    1 Linux的入门 1.1 概述 Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上出于个人爱好而编写的. Linux是一套免费使用和自由传播的类Unix操 ...

  8. 【转】原生js实现移动端h5长按事件

    $("#target").on({ touchstart: function(e) { // 长按事件触发 timeOutEvent = setTimeout(function() ...

  9. Codeforces Round #568 (Div. 2) C2. Exam in BerSU (hard version)

    链接: https://codeforces.com/contest/1185/problem/C2 题意: The only difference between easy and hard ver ...

  10. 【leetcode】Basic Calculator III

    题目如下: Implement a basic calculator to evaluate a simple expression string. The expression string may ...