博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XE 画矩形实现拖拉改变大小(属性)
阅读量:5290 次
发布时间:2019-06-14

本文共 2700 字,大约阅读时间需要 9 分钟。

实现原理:

1.拖一个rectangle控件,Align属性为TOP

2.拖一个Split控件,Align为Top

3.拖Rectangle,Align为Bottom

4.拖Split,Align为Bottom

5.左边、右边依次类推,

6.最后拖一个Rectangle,Align为Client,Stroke属性中的Color为red。

具体代码:

unit UnitCheckIPN;interfaceuses  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls,  FMX.Objects, FMX.Controls.Presentation;type  TForm2 = class(TForm)    RT: TRectangle;  //RectTop    ST: TSplitter;    RL: TRectangle;    SL: TSplitter;    RB: TRectangle;    SB: TSplitter;    RR: TRectangle;    SR: TSplitter;    Rect: TRectangle;    Image1: TImage;    Button1: TButton;    Button2: TButton;    Button3: TButton;    procedure Button1Click(Sender: TObject);    procedure Button2Click(Sender: TObject);    procedure Button3Click(Sender: TObject);  private    { Private declarations }    procedure SetRect(s:String);    function GetRC: String;                   // 获取   获取当前矩形的位置    procedure SetRC(const Value: String);     // 设置   给定x,y,w,h   矩形自动改变位置  public    { Public declarations }    property RC: String read GetRC write SetRC;  // 将矩形的值设为属性,读为获取rect的(x,y,width, height)   写时为设置矩形的x,y,w,h  end;var  Form2: TForm2;implementation{$R *.fmx}procedure TForm2.Button1Click(Sender: TObject);begin  RC:='103,128,301,203';      //end;procedure TForm2.Button2Click(Sender: TObject);begin  ShowMessage(RC);            //end;procedure TForm2.Button3Click(Sender: TObject);begin  RC:='103,128,394,203';end;function TForm2.GetRC: String;var  x,y,w,h : Single;begin  result:='';  y:=RT.Height+ST.Height;  h:=Image1.Height - RT.Height - ST.Height - RB.Height - SB.Height;  x:=RL.Width+SL.Width;  w:=Image1.Width-RL.Width-SL.Width-RR.Width-SR.Width;  result:=x.ToString()+','+y.ToString()+','+w.ToString()+','+h.ToString();end;procedure TForm2.SetRC(const Value: String);var  ss: TStringList;  x,y,w,h: Integer;begin  ss:=TStringList.Create;  ss.CommaText:=Value;  x:=ss[0].ToInteger();  y:=ss[1].ToInteger();  w:=ss[2].ToInteger();  h:=ss[3].ToInteger();  ss.Free;  RT.Height:=y-ST.Height;  RB.Height:=Image1.Height-(RT.Height + ST.Height + h + SB.Height);  RL.Width:=x-SL.Width;  RR.Width:=Image1.Width-(RL.Width+SL.Width+w+SR.Width);end;procedure TForm2.SetRect(s: String);var  ss: TStringList;  x,y,w,h: Integer;begin  ss:=TStringList.Create;  ss.CommaText:=s;  x:=ss[0].ToInteger();  y:=ss[1].ToInteger();  w:=ss[2].ToInteger();  h:=ss[3].ToInteger();  ss.Free;  RT.Height:=y-ST.Height;  RB.Height:=Image1.Height-(RT.Height + ST.Height + h + SB.Height);  RL.Width:=x-SL.Width;  RR.Width:=Image1.Width-(RL.Width+SL.Width+w+SR.Width);end;end.

 这里充分理解了属性,见证了属性的强大,好好学习,再接再厉。

 

转载于:https://www.cnblogs.com/studypanp/p/4930471.html

你可能感兴趣的文章
<php>Ajax基本格式
查看>>
mybatis中的多条件查询
查看>>
C# WebBrowser 抓图获取网页验证码
查看>>
Linux 终端输入保存到一个文件中
查看>>
未加载opencv_world330.pdb
查看>>
Java排序算法(三):直接插入排序
查看>>
iOS 开发百问(5)
查看>>
删除单链表中某一个值
查看>>
第五周学习进度
查看>>
事务的应用
查看>>
Excel Vlookup多条件查询 , 列转行
查看>>
浅谈JS继承
查看>>
2018-2019-2 20175224 实验一《Java开发环境的熟悉》实验报告
查看>>
元素的offsetParent offsetLeft offsetTop属性
查看>>
NOI2015
查看>>
生成器表达式
查看>>
第三天运算符--三元操作符
查看>>
C#学习笔记-输入数据判断(int、double、string)
查看>>
uva 10881
查看>>
ubuntu node.js Binaries方式安装(二进制文件安装)
查看>>