zoukankan      html  css  js  c++  java
  • XE 画矩形实现拖拉改变大小(属性)

    实现原理:

    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;
     
    interface
     
    uses
      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

  • 相关阅读:
    day10作业
    day9 函数作业
    Python编码及文件练习题
    day10函数命名空间,嵌套,闭包
    Python基础数据类型考试题
    day9 函数
    day8 文件操作
    day7 集合
    day6 编码
    day5 作业自我完成版
  • 原文地址:https://www.cnblogs.com/findumars/p/10574282.html
Copyright © 2011-2022 走看看