很喜欢 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 中也有相关拖放的代码...
发现不大对头, 估计是源码有问题; 但愿谁学到了, 多少给我简介下.
分类:
XE2 与 FireMonkey
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
2009-10-09 使用泛型的 TArray 从动态数组中查找指定元素
2009-10-09 使用泛型的 TArray 为动态数组排序
2009-10-09 SendTextMessage 等方便的消息发送函数
2009-10-09 WindowsAPI: MulDiv