zoukankan      html  css  js  c++  java
  • 款式修改窗口,开发调整过窗口格局保存功能,关了窗口重新打开还是按关闭前的格局.

    1.
    如果允许用户在运行时移动控件和调整控件大小,你必须确保在窗体关闭时保存控件的位置,窗体创建/加载时恢复每个控件的位置。以下是如何在INI文件中存储的每个窗体上的控件的左,上,宽度和高度属性。

    接下来的两个程序TFrmStyleProp.WriteControlPlacement;
    var和TFrmStyleProp.ReadControlPlacement;用Delphi的ini文件来存储和恢复窗体上每一个控制的位置属性:
    //款式修改窗口格局 BN0158
    uiuujhbfggchchhchjhcjhjchj

    //写窗口的控制放置位置
    procedure TFrmStyleProp.WriteControlPlacement;
    var
    iniFile : TIniFile;
    idx : integer;
    ctrl : TControl;
    begin
    iniFile := TIniFile.Create(ChangeFileExt(Application.ExeName,'-prop.ini')) ;
    try
    for idx := 0 to -1 + Self.ComponentCount do
    begin
    if Components[idx] is TRzSizePanel then
    begin
    ctrl := TControl(Components[idx]) ;
    iniFile.WriteInteger(ctrl.Name,'Top',ctrl.Top) ;
    iniFile.WriteInteger(ctrl.Name,'Left',ctrl.Left) ;
    iniFile.WriteInteger(ctrl.Name,'Width',ctrl.Width) ;
    iniFile.WriteInteger(ctrl.Name,'Height',ctrl.Height) ;
    end;
    end;
    finally
    FreeAndNil(iniFile) ;
    end;
    end;

    //读控制窗口的位置
    procedure TFrmStyleProp.ReadControlPlacement;
    var
    iniFile : TIniFile;
    idx : integer;
    ctrl : TControl;
    begin
    iniFile := TIniFile.Create(ChangeFileExt(Application.ExeName,'-prop.ini')) ;
    try
    for idx := 0 to -1 + Self.ComponentCount do
    begin
    if Components[idx] is TRzSizePanel then
    begin
    ctrl := TControl(Components[idx]) ;
    ctrl.Top := iniFile.ReadInteger(ctrl.Name,'Top',ctrl.Top) ;
    ctrl.Left := iniFile.ReadInteger(ctrl.Name,'Left',ctrl.Left) ;
    ctrl.Width := iniFile.ReadInteger(ctrl.Name,'Width',ctrl.Width) ;
    ctrl.Height := iniFile.ReadInteger(ctrl.Name,'Height',ctrl.Height) ;
    end;
    end;
    finally
    FreeAndNil(iniFile) ;
    end;
    end; (*ReadControlPlacement*)

    2.procedure ReadControlPlacement;
    procedure WriteControlPlacement;


    3.procedure TFrmStyleProp.act_CloseStyleExecute(Sender: TObject);
    begin
    .........
    WriteControlPlacement
    end;


    4.//调用

    在窗口的FormShow事件处理函数中调用ReadControlPlacement;
    procedure TFrmStyleProp.FormShow(Sender: TObject);
    begin
    ReadControlPlacement;
    end;

    在窗口的FormClose事件处理函数中调用WriteControlPlacement;

    procedure TFrmStyleProp.FormClose(Sender: TObject;
    var Action: TCloseAction);
    begin
    WriteControlPlacement;
    Action := caFree;
    end;


    5.
    uses
    ..........
    ..........
    ..........
    IniFiles;

  • 相关阅读:
    【C#进阶系列】06 类型和成员基础
    纪中5日T1 1564. 旅游
    纪中17日T1 2321. 方程
    纪中17日T2 2322. capacitor
    纪中10日T1 2313. 动态仙人掌
    纪中14日听课小结 图论 最短路 二分图 差分约束
    一个抓猫的游戏 消遣GAME 持续更新中!
    洛谷P1464 Function  HDU P1579 Function Run Fun
    洛谷P1976 鸡蛋饼
    纪中12日T1 2307. 选择
  • 原文地址:https://www.cnblogs.com/guangzhou11/p/8819839.html
Copyright © 2011-2022 走看看