【原创】Delphi fmx 获取控件句柄

Fmx 框架控件如果 从 TPresentedControl 类继承下来的,会有一个属性,ControlType,它是一个枚举。

打开 FMX.Controls 单元定义:TControlType = (Styled, Platform);   

控件的ControlType属性默认为 Styled,如果使用 Platform ,则使用当前平台原生创建。

在 Win 平台原生创建是有句柄的。我通过遍历里面的对象,获取到它的 TWinNativeScene 类,取出句柄。

原码如下:

uses

  FMX.Controls.Presentation, FMX.Presentation.Win.Style, FMX.Controls 

Tags

枚举Resource资源名

implementation


{$R 'res.res'}


{$R *.dfm}
Function EnumResNameProc (hModule: HMODULE; lpType, lpName: PChar; lParam: Longint) :BO0L; stdcall
var
hResource: HRSRC;
Begin
    hResource:=FindResource (hModule, lpName, lpType);
    if hResource<> 0 then
    Form1.Memol.Lines.Add(lpName);
    Result:=True;
End;

EdgeBrowser 控件的环境部署

EdgeBrowser 控件是 Delphi 10.4 VCL 新的控件,支持微软最新未发布的浏览器。

 EdgeBrowser.Navigate(‘www.DelphiFmx.com’) 可以直接打开网址。

使用的前提是得有对应的 WebView2Loader 和 对应的 edge版本,因为现在 微软还没有正式推送,只有测试版本。

在Delphi 10.4 里的demo路径里 :C:\Users\Public\Documents\Embarcadero\Studio\21.0\Samples\Object Pascal\VCL\WebBrowser\Edge 

有这个控件使用的 demo ,非常简单。


环境部署:

     第1步,下载 Edge 浏览器安装:  https://www.microsoftedgeinsider.com/zh-cn/download/

应用DevExpress里的气泡组件 cxHintStyleController

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxLookAndFeelPainters, StdCtrls, cxButtons, cxHint, cxControls,
  cxContainer, cxEdit, cxTextEdit, cxMaskEdit, ExtCtrls, cxLabel,
  cxDropDownEdit, cxImageComboBox, ComCtrls, cxColorComboBox,
  cxFontNameComboBox, cxListBox;

Tags