DelphiXE2 Firemoney FMX 的窗体不只是为windows的, 所以很多功能都没有了.

最常见的就是拖拽了

先看 VCL时代 一个经典拖动代码

  1. ReleaseCapture();
  2. SendMessage(Handle , WM_SYSCOMMAND,SC_MOVE+HTCAPTION, 0);

这段代码就是用来拖动异形窗体的, 可是到了 FMX下  好像不能用了?

其实还是可以使用的. 因为 FMX 的句柄不是 VCL 的窗体句柄,所以需要转化一下.

  1. uses
  2. Winapi.Windows , Winapi.Messages,
  3. FMX.Platform.Win;
  1. procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  2. Shift: TShiftState; X, Y: Single);
  3. begin
  4. ReleaseCapture();
  5. SendMessage(FmxHandleToHwnd(Handle)  , WM_SYSCOMMAND,SC_MOVE+HTCAPTION, 0);
  6. end;

这样就可以拖动啦

FMX中还自带了另一种拖动,  这种拖动是直接拖动窗体,和上面的拖动时出现一个方框不一样

    1. TForm.StartWindowDrag

http://blog.csdn.net/warrially/article/details/7951244

FireMonkey下的异形窗体拖动(句柄转换)的更多相关文章

  1. FireMonkey下的异形窗体拖动(需要使用FmxHandleToHwnd函数转化一下句柄)

    DelphiXE2 Firemoney FMX 的窗体不只是为windows的, 所以很多功能都没有了. 最常见的就是拖拽了 先看 VCL时代 一个经典拖动代码 ReleaseCapture(); S ...

  2. Delphi下创建异形窗体

    procedure TForm1.FormCreate(Sender: TObject);var  pt: array [0 .. 4] of TPoint;  m_rgn: HRGN;begin   ...

  3. [WPF] 我的WPF自学日记1,无标题窗体拖动

    学习WPF的第一天,尝试写比较常用的功能,无标题窗体拖动. 先在设计界面给它加上MouseDown事件 <Window x:Class="MyFirstWPFAPP.MainWindo ...

  4. DSAPI显示PNG异形窗体

    使用DSAPI实现PNG异形窗体,注意,该窗体为层样式窗体,以PNG或32位带透明通道的图像合成到屏幕,此方法不会触发窗体的重绘,故原窗体(包括其子控件)均不会显示,如果需要更新画面,需要重新用代码等 ...

  5. VC 获取控制台窗体的句柄(hWnd)

    在Windows中,句柄是一个系统内部数据结构的引用. 比如当你操作一个窗体.或说是一个Delphi窗体时,系统会给你一个该窗体的句柄,系统会通知你:你正在操作142号窗体.就此你的应用程序就能要求系 ...

  6. C#中无边框窗体拖动

    //定义一个bool变量标识是否拖动窗体 private bool isMove = false; //记录鼠标的位置 private Point point; 定义的变量 /// <summa ...

  7. Qt 实现 异形 窗体&按钮

    //关键部分代码如下//设置异形窗体 //setWindowOpacity(0.5);//设置窗体透明度 0完全透明,1完全不透明 this->setWindowFlag(Qt::Framele ...

  8. MVVM模式下弹出窗体

    原地址:http://www.cnblogs.com/yk250/p/5773425.html 在mvvm模式下弹出窗体,有使用接口模式传入参数new一个对象的,还有的是继承于一个window,然后在 ...

  9. android手势事件 快速移动 长按触摸屏 按下触摸屏,并拖动

    /* 用户按下触摸屏.快速移动后松开 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float vel ...

随机推荐

  1. String的几种比较方法对比(Compare,CompareTo, CompareOrdinal、Equals)

    String类字符串比较大概有4种方法:Compare(),CompareTo(), CompareOrdinal()和Equals(). Compare()方法是CompareTo()的静态版本.而 ...

  2. EF使用时异常:对一个或多个实体的验证失败。有关详细信息

    //最顶级异常中是不提示具体哪个字段验证失败,必须到详细异常类型中查看 try { //EF操作 } catch (System.Data.Entity.Validation.DbEntityVali ...

  3. OD调试篇1—Hello

    OD调试篇1—Hello 要求:通过OD将程序的标题“I love fishc.com”改为“I love you” 一.找到程序的标题“I love fishc.com” 1.把程序拖到OD运行出现 ...

  4. __call重载方法

    <?php class Person { function du() { echo "这是一个存在的方法"; } //该方法有两个参数,第一个参数 $function_nam ...

  5. http://riddle.arthurluk.net walkthrough

    MSVFMyU4MCU4MWh0dHAlM0ElMkYlMkZyaWRkbGUuYXJ0aHVybHVrLm5ldCUyRnN0YWdlb25lLnBocCUwRCUwQTIlRTMlODAlODFo ...

  6. Python学习之路——socket

    一.Socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信. socket服务端示例: import socke ...

  7. C语言之三大查找算法

    查找算法 1.二分查找 二分查找就是折半查找,其基本思想是:首先选取表中间位置的记录,将其关键字与给定关键字key进行比较,若相等,则查找成功.若key值比该关键字值大,则要找的元素一定在右子表中,则 ...

  8. cocos2d-x游戏开发系列教程-超级玛丽07-CMGameMap(二)

    在了解地图的初始化和加载之前,我们先了解下mario的地图. 用tiled工具打开mario地图 从地图中可以看到,mario的地图有很多层构成: objects层:怪物,会动的怪物 coin层:金币 ...

  9. 用C语言写一个程序,得出当前系统的整形数字长(16位,32位,64位)等,不能使用sizeof()

    #include <iostream>#include <cmath>using namespace std; int main(){ int num = -1; unsign ...

  10. HtmlAgilityPack 抓取页面的乱码处理

    HtmlAgilityPack 抓取页面的乱码处理 用来解析 HTML 确实方便.不过直接读取网页时会出现乱码. 实际上,它是能正确读到有关字符集的信息,怎么会在输出时,没有取到正确内容. 因此,读两 ...