FMX

【原创】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 

标签

Delphi 世界时间转换

在网页上经常使用世界时间,但是往往 本地使用的时候,都要转成本地时间 和 时间类型的。这样就很好地可以把网页或网站上的世界时间同步到本地来。


世界时间转换,如:    Sun, 10 May 2020 21:49:45 GMT
在 IdGlobalProtocols 单元有一个函数 ,GMTToLocalDateTime 它可以转换 TDateTime 时间类型
使用方法

procedure TForm1.Button1Click(Sender: TObject);
var
  t: TDateTime;
begin
  t:= GMTToLocalDateTime('Sun, 10 May 2020 21:49:45 GMT');
  Showmessage( FormatDateTime('yyyy-mm-dd hh:nn:ss', t)  );
end;

那么怎样使用时间类型转换成 世界时呢 ,函数如下,它可以把 时间类型TDateTime转成世界时字符串

【原创】delphi fmx 把 Bitmap 类 bmp格式图片转成其它图片jpg;jpeg;png;gif;tif;tiff;ico;hdp;wmp;tga;icns格式

图片格式转换是经常要用到的,这里使用Delphi自带的图片格式处理功能,可以把图片转换成任意的格式,可以非常方便使用在于 PC ,安卓拍照,和图片存储方面


// 把 bmp 转换成其它图片文件格式 如: jpg; jpeg; png; gif; tif; tiff; ico; hdp; wmp; tga; icns 等。此方法适用于移动端 
// 需要引用的单元
uses
   FMX.Surfaces, FMX.Consts;

delphi fmx 截图

从 FMX.Controls.TControl 继承下来的控件都可以调用一个函数  MakeScreenshot,返回 TBitmap。

所以 任意 fmx 控件 都可以使用此函数来截图。

如:截取 Button1 的图并在 Image1 上显示

procedure TForm1.Button1Click(Sender: TObject);
begin
  Image1.Bitmap.Assign(Button1.MakeScreenshot());
end;

标签

【原创】delphi fmx 3d 编程学习 Cube 和 颜色纹理材质

delphi fmx 3d 立方体  Cube 它比 StrokeCube 多了一个 材质来源(MaterialSource) 属性  

打开控件栏,有一个 Materials 页签 , 拖出  ColorMaterialSource1,TextureMaterialSource1  和  LightMaterialSource1 控件Cube 的 MaterialSource 是可以指定这材质来源,

如上图 :第1个 为未指定,显示默认红色
    第2个指定了 ColorMaterialSource(颜色材质)
    第3个指定了 TextureMaterialSource (纹理材质)
    LightMaterialSource 控件 可认为是光照材质纹理 (前2个的集合)
这3个材质来源没有事件,只有设置属性。  

标签

【原创】Delphi Fmx 3d 编程学习 StrokeCube 和坐标系及旋转方向

接着上一个 3d例子, 补充完整。

unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Viewport3D,
  FMX.Controls.Presentation, FMX.StdCtrls, System.Math.Vectors, FMX.Controls3D,
  FMX.Objects3D, FMX.Ani;

标签

【原创】Delphi Fmx 3d 编程学习 第一个Fmx 3d例子 和 3d 控件分组介绍

fmx 自带的3d控件分组介绍

Delphi Fmx  3d

拖出一个  Viewport3D 控件,然后在拖出一个 StrokeCube  控件在 Viewport3D 里面。
为了容易分辨,设置 StrokeCube  为红色。
StrokeCube控件的 Width,Height,Depth 为  长度,高度,深度。 对应为  X,Y,Z轴的大小
Position 为空间中所在位置。 RotationAngle 为自身旋转角度。
Scale 为显示比例尺。基本属性也就这些。

第一个列子,测试 对象的旋转角度

标签

Delphi fmx 获取安卓硬件信息

 

 

//以为下 Delphi fmx 获取安卓硬件信息全源码
unit fMain;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes,
  System.Variants, System.Permissions, FMX.DialogService,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.ScrollBox,
  FMX.Memo, FMX.Layouts, FMX.Controls.Presentation, FMX.StdCtrls,
  System.DateUtils;

标签