博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
delphi 程序运行时移动控件
阅读量:5992 次
发布时间:2019-06-20

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

程序在运行时用户需要对一些控件进行重新移动布局,下次进入界面时显示布局后的

方法1:每移动控件时就把位置写入INI文件中

只需在控件的OnMouseDown事件写如下代码:

procedure TFMain.SpeedButton4MouseDown(Sender: TObject;

  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
const sc_move = $F011;
var
  SysFile: TiniFile;
begin
    releasecapture;
    TSpeedButton(sender).Perform(wm_syscommand, sc_move, 0);
    try
      SysFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Sys.ini');
      sysFile.WriteInteger(TSpeedButton(sender).Name, 'TOP', TSpeedButton(sender).Top);
      sysFile.WriteInteger(TSpeedButton(sender).Name, 'Left', TSpeedButton(sender).Left);
    finally
      SysFile.Free;
    end;
end;

方法2:

 封装一函数用于实现控件移动,在控件的OnMouseDown事件中调用即可,然后在关闭时遍利所有控件把位置写入INI

procedure MoveControl(Control: TControl; Shift: TShiftState; X, Y, Prec: integer);

begin   

    if Shift=[ssLeft] then

  begin
    ReleaseCapture;
    Control.Perform(WM_SYSCOMMAND, SC_MANIPULATE, 0);
  end;

 end;

 //关闭写入

  SysFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Sys.ini');

  Try

     for i := 0 to ComponentCount - 1 do

     begin
          sysFile.WriteString(TControl(Components[i]).Name ,TOP,TControl(Components[i]).TOP );

          sysFile.WriteString(TControl(Components[i]).Name ,Left,TControl(Components[i]).Left );

      end;

   finally

      SysFile.Free;
   end;

 

 

 

转载于:https://www.cnblogs.com/liaobotao/archive/2012/05/31/2529221.html

你可能感兴趣的文章
7z压缩与解压命令
查看>>
JavaScript中的基本数据类型和引用数据类型
查看>>
仿淘宝左侧菜单导航栏纯Html + css 写的
查看>>
【141】Adobe Acrobat技巧
查看>>
mysql create dabase 语法详解
查看>>
position:fix固定定位
查看>>
机器学习概念性知识总结
查看>>
Android Activity中启动另一应用程序的方法,无需得到类名
查看>>
解决jquery和prototype库冲突问题
查看>>
Vijos1935不可思议的清晨题解
查看>>
BZOJ 1696 [Usaco2007 Feb]Building A New Barn新牛舍 数学
查看>>
C++语言笔记系列之十三——派生类构造函数的调用
查看>>
JSON以及Java转换JSON的方法(前后端经常使用处理方法)
查看>>
ida idc函数列表全集
查看>>
Linux中Firefox——Httpfox插件安装及使用
查看>>
作业(八)
查看>>
windows设备驱动安装接口(自己仿写)
查看>>
individual_project_word_frequency (续)
查看>>
跟着锅子一步步学习32位汇编(6)---OFFSET ALIGN
查看>>
HDU 1495 非常可乐 BFS
查看>>