首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    DELPHI中自适应窗体的实现

    前言 我们知道,屏幕分辨率的设置影响着表单布局,假设你的机器上屏幕分辨率是800*600,而最终 要分发应用的机器分辨率为640*480,或1024*768,这样你原先设计的表单在新机器上势必会 走样。...实现方法 一、根据新的分辨率自动重画表单及控件   先在表单单元的Interface部分定义两个常量,表示设计时的屏幕的宽度和高度(以像素为 单位)。...在表单的Create事件中先判断当前分辨率是否与设计分辨率相同,如果不同,调用表 单的SCALE过程重新能调整表单中控件的宽度和高度。...,也自动调整控件字体的大小,以适应新的分辨率, 但美中不足的是它并不改变控件的顶点坐标位置,也就是说,该过程不改变控件之间的相对 位置关系。...它需要用到WINDOWSAPI函数EnumDisplaySettings和ChangeDisplaySettings,前者取当前显示模式信息,后者则更改显示设置,具体参数的含义请参见DELPHI帮助。

    1.6K40

    Delphi XE5中的新增内容

    Delphi XE5中的新增内容 Delphi XE5是所有Delphi开发人员的必须备升级,并且是来自Embarcadero的获奖的、多设备应用开发解决方案的最新版本。...Delphi XE5中的新特性 针对设备和仿真器的 Delphi Android ARM编译器 FM 平台用于创建针对Gingerbread (2.3.3 – 2.3.7)、Ice Cream Sandwich...FireDAC 允许您从Delphi和C++Builder原生高速直接访问 InterBase、SQLite、MySQL、SQL Server、Oracle、PostgreSQL、DB2、SQL Anywhere...了解更多 > 在RAD Studio、Delphi和C++Builder的专业版中,通过选择数据库进行FireDAC 本地/嵌入式连接 在企业版、旗舰版或架构师版中、或通过购买针对专业版的客户端/服务器附件组件包...了解更多 > 视频:Delphi XE5中的新增内容 浏览可以开发 Android应用的 Delphi XE5的一些新特性。

    3.9K40

    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...,不会对DELPHI正常释放过程产生影响,所有的释放操作都是和VCL一致的,只是不会把错误显示出来。

    1.3K40

    Delphi中谨慎使用QuotedStr、QuotedString、DequotedString相关的函数

    //以下测试代码 var s, ss: string; begin //JSON中包含大量双引号,方便测试出效果 with TStreamReader.Create('全国adcode.json...', TEncoding.UTF8) do try s := ReadToEnd; finally Free; end; //1.添加定界符(内容中含定界符的要转义)...ss := QuotedStr(s);//单引号 ss := s.QuotedString('''');//单引号 //2.添加指定的定界符(内容中含定界符的要转义) ss := AnsiQuotedStr...(s, '"');//双引号 ss := s.QuotedString('"');//双引号 //3.去掉定界符(内容中含连续两个定界符的要反转义) ss := AnsiDequotedStr...//所以,使用StringHelper的QuotedString和DeQuotedString方法时,要注意 //通过查看源码,发现AnsiQuotedStr和AnsiDequotedStr使用的指针操作

    70240

    Delphi中利用StringList对象来记录动态生成的对象

    StringList使用 在Delphi中,如果程序需要动态创建大量的对象,那么我们可以利用StringList对象来管理这些动态生成的对象。...具体步骤如下: ---- 1、创建StringList对象: OBJ := TStringList.Create; 2、保存动态生成的对象: OBJ.AddObject('标识','对象名'); 3、调用生成的对象...OBJ.IndexOf('标识')] as 对象类型).Free; 对象类型(OBJ.Objects[序号/OBJ.IndexOf('标识')]).Free; 释放对象后记得要删除StringList里对应的记录...: OBJ.Delete(序号/OBJ.IndexOf('标识')); 5、StringList的释放: if Assigned(OBJ) then OBJ.Free; ---- 查询是否存在 如果在...StringList里面查询某一项是否存在,我们可以用下面的例子进行: var S : TStrings; begin S := TStringList.Create; S.Add('中国'

    2.2K30

    详解Echarts中的配置项

    上一个博客介绍了详细介绍了Echarts提供的图表类型及其适用场景,vue3中安装和使用Echarts,以及自定义图表和处理事件等内容,在上一个博客中我也提到过,Echarts中的配置项非常多,...今天我们就来详细的聊一聊Echart是中的配置项。...各个配置项主要的配置参数如下: title配置 title配置项是Echarts中的 title 标题组件,它包含主标题和副标题。其常用的配置项有下面几个 text:标题文本内容。...其属性的取值为 ‘inherit’ 时,表示继承系列中的属性值。 lineStyle:图例图形中线的样式,用于诸如折线图图例横线的样式设置。...其属性的取值为 ‘inherit’ 时,表示继承系列中的属性值。 selectedMode: 图例选择的模式,控制是否可以通过点击图例改变系列的显示状态。

    1.9K20

    Blazor 中的依赖项注入

    依赖注入 (DI) 是一种通过关注点分离来促进软件松散耦合的技术。在 Blazor 应用程序的上下文中,DI 鼓励你为特定任务开发离散服务,然后将这些服务注入到需要使用其功能的组件和类中。...这些依赖类旨在调用针对抽象的操作,而不是针对特定的依赖项实现,从而确保使用类不绑定到特定的实现。这样可以使应用程序更易于维护和测试。...Blazor 中的服务 Razor 组件主要与 UI 表示有关。生成 UI 所涉及的部分工作通常涉及与数据存储进行通信,可能是通过 Web 服务。可能需要记录组件中的操作和事件。...Razor 组件与数据访问服务的特定实现紧密耦合。由于组件与其服务之间关系的性质,它使组件难以进行单元测试:服务实现被硬编码到组件中。...注册通常发生在应用程序的 Program 类中的 Main 方法中,其中应用程序的 ServiceCollection 可以通过 WebAssemblyHostBuilder 的 Services 属性访问

    2.3K10

    MySql缓存中的关键项

    MySql的设计中大量使用了缓存,下面这些缓存配置项是应该熟知的 key_buffer_size key_buffer_size是设置MyISAM表索引的缓冲区大小,此参数对MyISAM表性能影响最大...当MySQL访问一个表时,如果在MySQL表缓冲区中还有空间,那么这个表就被打开并放入表缓冲区,这样做的好处是可以更快速地访问表中的内容 一般通过查看 Open_tables 和 Opened_tables...Thread Cache池中可以缓存的连接线程最大数量,可设置为0~16384,默认为0 这个值表示可以重新利用保存在缓存中线程的数量,当断开连接时,如果缓存中还有空间,那么客户端的线程将被放到缓存中;...如果线程重新被请求,那么请求将从 缓存中读取,如果缓存中是空的或者是新的请求,那么这个线程将被重新创建,如果有很多新的线程,增加这个值可以改善系统性能 1GB内存 -> 8 2GB内存 -> 16 3GB...,如果该值非常大,则表明缓冲区中碎片很多 tmp_table_size tmp_table_size用于设置内存临时表的最大值。

    1.7K50

    oracle中number的用法,Oracle Number数字

    大家好,又见面了,我是你们的朋友全栈君。 oracle函数 的 Oracle Number数字 在本教程中,您将学习Oracle NUMBER数据类型以及如何使用它来为表定义数字列。...Oracle NUMBER数据类型简介 Oracle NUMBER数据类型用于存储可能为负值或正值的数值。...以下说明了NUMBER数据类型的语法: NUMBER[(precision [, scale])] Oracle NUMBER数据类型具有以下精度和尺度。 精度是一个数字中的位数。 范围从1到38。...NUMBER(5,-2) 请注意,如果在NUMBER(p,s)列中数字,并且数字超过精度p,则Oracle将发出错误。 但是,如果数量超过尺度s,则Oracle将对该值进行四舍五入。...它们不是真正的数据类型。 Oracle在内部将这些别名映射到相应的NUMBER数据类型。 在本教程中,您已经学习了Oracle NUMBER数据类型以及如何使用它来为表定义数字列。

    2.7K20

    删除排序数组中的重复项删除排序数组中的重复项 II

    Remove Duplicates from Sorted Array 题目大意 对排好序的list去重,输出去重后长度,并且不能创建新的数组 解题思路 快慢指针 代码 官方答案 数组完成排序后,我们可以放置两个指针...只要 nums[i] = nums[j]nums[i]=nums[j],我们就增加 jj 以跳过重复项。...当我们遇到 nums[j] \neq nums[i]nums[j]≠nums[i] 时,跳过重复项的运行已经结束,因此我们必须把它(nums[j]nums[j])的值复制到 nums[i + 1]nums...然后递增 ii,接着我们将再次重复相同的过程,直到 jj 到达数组的末尾为止。...,返回处理后的数组长度) 的基础上,可以使每个数字最多重复一次,也就是说如果某一个数字的个数大于等于2个,结果中应保留2个该数字。

    10.6K20

    【DB笔试面试576】在Oracle中,简述Oracle中的游标。

    ♣ 题目部分 在Oracle中,简述Oracle中的游标。 ♣ 答案部分 在介绍游标之前先介绍一下Oracle数据库中库缓存(Library Cache)的作用及其组成结构。...由于库缓存对象句柄是以哈希表(Hash Table)的方式存储在库缓存中的,哈希表就是很多Hash Bucket组成的数组,所以,Oracle会通过相关的哈希运算来存储和访问对应的库缓存对象句柄。...例如,Oracle可以通过访问某个库缓存对象的Heap 0中的Child table而依次顺序访问从属于该对象的所有子库缓存对象。...Oracle会用Data Heap来存储这些动态运行时数据,所谓的“Data Heap”,可以简单地理解成是库缓存中的一块连续的内存区域,Data Heap是动态分配的,其大小并不固定。...各个Data Heap之间是独立的,没有关联关系,Oracle会在Heap 0的属性“Data Blocks Pointer”中存储指向这些Data Heap的指针,这样Oracle通过访问Heap 0

    1.9K20

    go vet中的那些检测项

    它可以检查代码中可能存在的各种问题,例如: 未使用的变量、函数或包 可疑的函数调用 错误的函数签名 程序中的竞态条件 错误的类型转换等 本文意图列出当前go tools项目中提供的所有检测项及其作用...这些几乎总是无用的,即使没有用,它们通常也是一个错误。 assign 是 go vet 中的一个检查项,主要用于检查可能出现的变量赋值问题。...go vet 中的 atomic 检查项主要用于检查在使用原子操作时可能出现的一些问题。...pkgfact 分析的输出是一组从分析的包及其导入的依赖项中收集的键/值对。 每个键/值对都来自一个顶级常量声明,其名称以“_”开头和结尾。...对于打算使用代码点的转换,请考虑将其替换为 string(rune(x))。 否则,strconv.Itoa 及其等效项返回所需基数中值的字符串表示形式。

    1.9K60
    领券