首页
学习
活动
专区
圈层
工具
发布

DELPHI中自适应窗体的实现

实现方法 一、根据新的分辨率自动重画表单及控件   先在表单单元的Interface部分定义两个常量,表示设计时的屏幕的宽度和高度(以像素为 单位)。...在表单的Create事件中先判断当前分辨率是否与设计分辨率相同,如果不同,调用表 单的SCALE过程重新能调整表单中控件的宽度和高度。...width)*longint(screen.width) div orignwidth; scaleby(screen.width,orignwidth); end; end;   SCALE过程在调整控件宽度和高度的同时...要想调整控件之间的选队相对位置,还需要自己编程实现,有兴趣的读者可试一 试。 二、将机器分辨率更改为设计时的分辨率   这种方法不改变表单本身,而是将屏幕分辨率更改为与表单设计时用到的分辨率相同。...它需要用到WINDOWSAPI函数EnumDisplaySettings和ChangeDisplaySettings,前者取当前显示模式信息,后者则更改显示设置,具体参数的含义请参见DELPHI帮助。

1.5K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Delphi中QuotedStr介绍及使用

    在 Delphi 中,QuotedStr 是一个非常常用的函数,它的作用是将一个字符串转化为带引号的形式,并且对其中的单引号(')进行转义,以确保字符串的安全性。...通常用于生成 SQL 查询字符串,或者在需要将字符串包裹在引号中的场合。 1. ...QuotedStr 函数概述QuotedStr 是 Delphi 中 SysUtils 单元提供的一个函数,它的作用是将一个字符串转换为用单引号包围的形式,并且处理字符串中的单引号字符。...使用场景生成 SQL 查询语句: 在 SQL 查询中,字符串常常需要被单引号包围。使用 QuotedStr 可以避免手动添加引号。...总结QuotedStr 通过为字符串添加单引号和转义其中的单引号字符,使得字符串能够在如 SQL 等需要转义字符的场合中安全使用。

    16900

    DELPHI中完成端口(IOCP)的简单

    所以TCP在发送数据包的时候,会将下一个数据包和这个数据包合在一起发送以增加网络利用率(虽然SOCKET 中可以强制关闭这种合并发送,但是我不建议使用)。...这样以来,在我们接受到一个数据包以后,就会发现在这个数据包中含有其它的数据包,从而很难处理。 处理粘包现象有多种方法。我的方法是在每发送一个数据的前面加入这次发送的数据长度(4位)。...在接收到数据包以后,我们首先得到数据包的长度,然后根据这个数据包长度来得到实际的数据。...以下是我的粘包处理函数实现(这个函数是对于多个套接字来处理的所以在这里我使用了TList链表): //用于处理粘包的数据结构 tagPacket = record Socket:TSocket;...如果有则将这个数据拷贝到一个临时处理的缓存中。

    1.6K10

    delphi 进程通信_多线程实现java

    ExitThread 函数的参数是一个退出码, 这个退出码是给之后的其他函数用的, 这里随便给个无符号整数即可. 2、 VCL实现同步的另一种方法就是调用线程类的Synchronize的过程,此过程需要一个无参数的...procedure,故在此procedure中无法传递参数值,但可以通过类的成员来实现。...在类的Execute中只须调用Synchronize就可以了。 实现: 关键在于对Synchronize参数的定义。...在类的重载Execute中调用Synchronize。...TSemaphore (信号对象,D2009才开始有),TEvent (事件对象)很多都是引用了API的方法进行了一定的简化,不过也有部分功能的缺失,如Event (事件对象)缺少了启动步进一次后暂停的功能,不过基本在同步上已经够用了

    50140

    学习笔记:7z在delphi的应用

    所以压缩是不可避免了,delphi中的默认压缩算法整了半天不太好使,就看了看7z,在windows下有dll那么就用它吧。...下载7z.dll,还有一个delphi的开发sdk文件,sevenzip.pas。有这两个就可以了。...procedure AddFiles(const Dir, Path, Wildcard: string; recurse: boolean); stdcall; Dir:待压缩的目录 Path:压缩包中的目录...(就是压缩后在压缩包里的根目录) Wildcard:通配符,可以用于过滤文件(*.*) recurse:递归子目录 其他的压缩我就没去试了,生成7z的包用winrar反正是可以打开和解压的。...后记:以前在.net平台上调用过7z,只不过是使用shell方式调用的7z.exe。用命令感觉会麻烦一些,使用dll集成在程序中还是挺方便的。

    3K100

    Delphi XE5中的新增内容

    Delphi XE5中的新增内容 Delphi XE5是所有Delphi开发人员的必须备升级,并且是来自Embarcadero的获奖的、多设备应用开发解决方案的最新版本。...了解更多 > 通过FireDAC 在更多设备上内置访问更多的数据库 FireDAC 数据库组件和驱动程序现在已完全融入到RAD Studio、Delphi和C++Builder中。...了解更多 > 在RAD Studio、Delphi和C++Builder的专业版中,通过选择数据库进行FireDAC 本地/嵌入式连接 在企业版、旗舰版或架构师版中、或通过购买针对专业版的客户端/服务器附件组件包...Delphi 2009 Unicode 功能区控件 Robust 项目管理 重要的DataSnap 升级 泛型和匿名方法 在Embarcadero doc wiki上查看Delphi...了解更多 > 视频:Delphi XE5中的新增内容 浏览可以开发 Android应用的 Delphi XE5的一些新特性。

    3.7K40

    delphi去掉字段前后的引号_Delphi编程SQL语句中引号(‘)、quotedstr()、(”)、format()在SQL语句中的用法…

    Delphi编程SQL语句中引号(‘)、quotedstr()、(”)、format()在SQL语句中的用法 (2011-06-23 12:14:13) 标签: delphi编程 sql语句引号...quotedstr 总结一下SQL语句中引号(‘)、quotedstr()、(”)、format()在SQL语句中的用法以 及SQL语句中日期格式的表示(#)、(”) 在Delphi中进行字符变量连接相加时单引号用...虽然可能在引赋初值在某些情况下不对 AnIntStr:string=’456′; AStr:string=’abc’; AFieldName: string=’字符型编号’; ATableName: string...=’YourTable’; ADate:Tdatetime=now; Adoquery1:tadoquery; 1,Delphi语句 adoquery1.sql.text:= ‘select 字符型编号...and 整型编号=’+Inttostr(AnInt); 传到数据库服务器为: select 字符型编号 from YourTable where 字符型编号=’abc’ and 整型编号=123 2,Delphi

    1.7K110

    Delphi中实战中用FormActivate后篇(自动关闭界面)

    前言 前一章我们介绍了在实战中使用FormShow和FormActivate的用法《Delphi实战中讲解FormCreate,FormShow,FormActivate》,这一篇我们主要讲解支付成功后如何自动关闭支付界面返回数据...我们在上面的视频中可能看到,当扫码支付成功后,付款界面显示了支付成功和交易流水号后,过了大约1.5-2秒左右,付款界面就自动关闭了。...也就是说,在FormActivate里面加上Close是不起作用的。 那我们应该用什么方式进行处理呢?其实也挺简单,我们加上一个Timer的控件,一个公共参数变量,即可实现。...然后在Private里面加入一个boolean的变量 ? 然后在FormShow事件中先定义交易变量为未完成,Timer控制的间隔时间和启动。...这样我们每隔1.5秒就会自动检测是否完成交易,用来实现我们的窗体关闭。 ---- -END-

    99230

    Delphi中利用SEH屏蔽退出时的Runtime Error

    Delphi写的程序,如果在单元的finalization里出现了一些异常操作会导致退出时抛出Runtime Error ,规范的处理办法当然是解决这些异常,但是有些特殊的情况下,比如用了很多的第三方控件...做法其实很简单,就是在 END.之前手工调用Halt释放,并且将Halt抛出的错误屏蔽掉,这样做和正常的DELPHI释放过程没有任何区别,因为End.编译后其实就是一句话 Call Halt0,只是VCL...第一个最容易想到的做法就是直接 Try  halt except end;   但是这样是不行的,因为try…except end捕获的错误都会放到System单元的_HandleOnException中处理...,函数检查错误类型是否是DelphiException,如果不是就不处理,这个时候就会被DELPHI的顶层异常机制捕获,并抛出Runtime error,halt里抛出来的错误恰恰就是非DelphiException...测试这段代码可以,自己在某个单元的finalization段里抛出一个异常,看看加上代码和不加代码的效果有何不同。

    1.2K40

    在Java中,如何实现封装?

    在 Java 中实现封装主要通过 访问修饰符 和 getter/setter 方法 来实现,核心步骤是"隐藏属性、暴露接口"。...具体实现方式如下:一、使用访问修饰符隐藏类的成员Java 提供了 4 种访问修饰符,用于控制类成员(属性和方法)的访问范围,从而实现隐藏:修饰符 访问范围...二、通过 getter/setter 方法暴露访问接口对于私有属性,提供公共的 getXxx() 方法(获取属性值)和 setXxx() 方法(设置属性值),在方法中可以添加校验逻辑,确保数据合法性。...public int getAge() { return age; } public void setAge(int age) { // 例如:限制年龄在...总结Java 实现封装的核心步骤: 用 private 修饰属性,禁止外部直接访问; 提供 public 的 getter/setter 方法,控制属性的读写逻辑; 用访问修饰符隐藏内部方法实现,

    18710
    领券