在Windows高级设置中的视觉效果中可以设置是否开启“平滑屏幕字休边缘”,可以通过编程的方式来实现: if SystemParametersInfo(SPI_SETFONTSMOOTHING, 1, nil, SPIF_UPDATEINIFILE or SPIF_SENDCHANGE) then begin SHChangeNotify(SHCNE_ASSOCCHANGED,0,nil,nil); end; SystemParametersInfo的第二个参数为1表示开启,0表示关闭.…
Delphi编程中资源文件的应用/转自 http://chamlly.spaces.live.com/blog/cns!548f73d8734d3acb!236.entry一.引子: 现在的Windows应用程序几乎都使用图标.图片.光标.声音等,我们称它们为资源(Resource).最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便程序需要的时候调用.资源是程序的一部分,程序要正常运行就离不了资源文件.但是它是不可执行代码. 为了更好地管理资源,Delphi中提供了一种.RES类型的…
右击里面有修改 点开直接修改就可以了吧. DELPHI 里程序的版本信息怎么是灰色的,无法更改 耐心读以下说明,应该能解决你的问题,如果不能解决,请Hi我~ 如何给自己的dll文件添加版本信息呢? 首先建立一个文件后缀为.rc(以ver.rc为例),用记事本打开,拷贝下面内容: ("//"号为注释,会被编译器丢弃,这里只是为了说明才加上的.) VS_VERSION_INFO VERSIONINFO //版本信息结构 FILEVERSION 1,0,0,1 //顾名思义文件版本,就是在属…
Delphi编程获取系统当前进程.窗口句柄.文件属性以及程序运行状态. uses TLHelp32,PsAPI; (1)显示进程列表:procedure TForm1.Button2Click(Sender: TObject);var lppe: TProcessEntry32;found : boolean;Hand : THandle;P:DWORD;s:string;beginListBox1.Items.Clear ;Hand := CreateToolhelp32Snapshot(TH…
段东宁 计亚南 (郴州职业技术学院, 湖南 郴州  423000) 摘要: 资源文件是一种能有效地组织.管理和使用资源的文件形式,在软件开发中有着广泛的应用.本文详细介绍了在Delphi编程中资源文件的创建方法和使用技巧. 关键词:Delphi,资源文件,TResourceStream对象,MCISend String 函数 The Application of Resource Files in Delphi Programming DUAN Dong-Ning (Department of…
Delphi编程防止界面卡死的方法经验分享! 1.循环里面防止界面卡死的方法可以使用Application.ProcessMessages:  例如下列方法:    var      n: Integer;    begin      for n := 0 to 10000 do      begin        Edit1.Text := IntToStr(n);      end;    end;  在程序里执行的时候,界面肯定会卡死的,但如何防止界面出现卡的情况呢,加入Applicati…
我以前遇到过Delphi编程中使用回车键不换行的问题,一直没有找到正确处理方法,以至于每次都重新安装Delphi,今天在XE8中再次遇到这样问题,万幸找到了正确的解决方法: 可能使用过程中不小心按了insert键,只需要再次按insert键解除!…
delphi编程创建桌面快捷方式   uses ActiveX,ComObj,StdCtrls,ShlObj,FileCtrl; procedure TForm1.N2Click(Sender: TObject); var tmpObject : IUnknown; tmpSLink : IShellLink; tmpPFile : IPersistFile; PIDL : PItemIDList; StartupDirectory : array[0..MAX_PATH] of Char; S…
Delphi 修改新建窗体时候的默认字体格式 操作步骤: 1.运行输入“regedit” 2.找到目录(这里默认以Delphi 7为例) HKEY_CURRENT_USER\Software\Borland\Delphi\7.0 3.新建项名为“FormDesign”的项,在下面新建一个字符串值:名称:DefaultFont 值为例如:微软雅黑,10 注意:这个FormDesign 不是原来的 Form Design,没有空格 图例以下:        创建时间:2019.12.19 来源:ht…
通过以sdk方式编制windows窗口程序,对理解windows消息驱动机制和delphi消息编程有很大的帮助. sdk编制windows窗口程序的步骤: 1.对TWndClass对象进行赋值; 2.向系统注册wndclass对象(RegisterClass): 3.CreateWindow创建窗口,获得窗口句柄Hwnd; 4.显示窗口(ShowWindow): 5.通过GetMessage函数不断获取系统消息,交给程序处理,程序过通回调函数(wndproc)处理系统消息.(消息处理部分)程序代…
在编程时候,尤其是在一个大的团队里面,遵守统一的编程规范是极其重要的.为所有的开发人员制定一个源代码书写标准,以及程序和文件的命名标准,使他们在编程时有一致的格式,这样,每个编程人员编写的代码能够被其他人理解,减少程序维护和移交的成本. 这里先只介绍关于Delphi语言的编程规范,暂时跳过文件.项目命名…… 1.1.关于缩进 缩进能够更清晰的展示源码的逻辑结构,采用两个空格字符,不能使用制表符(即Tab字符).这是因为,制表符的宽度随着不同源码编缉工具及不同的设置,展示出来的效果不一样,如果空格…
1. [CTRL+空格] [CTRL+SHIFT+空格] 这两个快捷键都是在代码编写过程中用到的,起提示作用,使用频率最高. CTRL+空格: 在当前光标处提示有哪些变量.函数可以使用.这个功能对于无法准确写出函数名非常有用,你不需要去记住每个函数的名字,只需要在提示选项中选择,这样你仅需要输入几个字母就可以完成整个变量或者函数的输入.不过很不幸的是通常情况下输入法占用了这个快捷键,让你无法使用,你必须手动将输入法中的相关快捷键改成其他键. CTRL+SHIFT+空格:在一个函数没有输入参数的括…
万事大吉,只欠根据字体文件(.ttf文件)切换阅读字体,通常Android系统只带三种以下字体.一般用Java/Eclipse开发的话比较简单,typeface的createFromAsset,createFromFile之类的很容易使用.但是由于FireMonkey是跨平台的类库,必然不能和平台帮得太紧,所以提供了抽象的封装.但是也许Delphi XE5是Android平台的第一个版本,有些地方难免有疏漏,FireMonkey的封装没有提供更换字体的功能. 但是我要实现的电子书阅读器换字体几乎…
你的电脑有没有摄像头?看到别人用QQ玩视屏你会不会去想怎么实现的?这里介绍使用DELPHI使用MS的 AVICAP32.DLL就可轻松的实现对摄像头编程,如果再加上你的网络编程水平,实现一个视屏聊天就不成什么问题了. 看看下面代 码的代码: const WM_CAP_START = WM_USER; ; ; ; ; ; ; ; ; ; ; ; function capCreateCaptureWindowA(lpszWindowName : PCHAR; dwStyle : longint; x…
鸡啄米在上一节中讲了CFont字体类,本节主要讲解文本输出的方法和实例. 文本输出过程 在文本输出到设备以前,我们需要确定字体.字体颜色和输出的文本内容等信息.Windows窗口的客户区由应用程序管理,所以我们还要在应用程序中控制输出文本的格式,例如后续字符的位置.换行等格式. 由此,文本的输出过程大致包括确定字体信息.格式化文本和执行输出操作三个步骤.下面分别讲解. 1.确定字体信息 文本在输出以前应该先确定字体信息,或者是当前正在使用的字体,或者是自定义的字体,之后就可以根据确定的字体来显示…
0.前言: 很多前端小伙伴在写页面尤其是移动端页面的时候,要求页面布局以及字体大小随屏幕宽度变化而随之按比例自适应[注:非响应式],那么,在vue-cli脚手架中应该如何去实现呢? 1.安装flexible库 : //在项目库下运行:npm i lib-flexible --save-dev 2.项目入口文件main.js中引入lib-flexible: //main.js中:import 'lib-flexible' 3.在项目index.html的head中配置meta: <meta nam…
回想当年学习编程,刚开始学习是非常艰苦的,可能是因为文科生原因,刚开始接触工科类的知识不是很擅长,上去大学第一年基本没有好好学习编程,入门C#编程基础一窍不通,也许那时年少无知,第二学期开始奋发图强,终于在编程之路越走越远,现在目前在国内BAT某家公司从事互联网内部系统开发工具的开发,趁这段时间有点空闲好好总结,复习下以前的知识,编程之路漫漫,只有不断的成长和学习,才能走得更远,不忘初心,方得始终.这里先讲几个基础,然后层层深入,尽管自己学识也不是很渊博,但是写下这些回忆,或许对自己也是有很大帮…
https://www.ithome.com/html/win10/374911.htm 笔者前段时间买了一台小米笔记本Pro,除了有字体模糊的问题外,还是比较满意的.这台笔记本是15.6英寸,1080P的屏幕,自带Windows10家庭版,默认使用125%的缩放.Windows10的UWP应用显示效果还过得去,但传统的EXE软件显示就一塌糊涂了.下面分享一下我是如何解决大部分传统软件的字体模糊问题的. 一.打开设置中的“允许Windows尝试修复应用,使其不模糊”. 这个开关的路径是:设置——…
下面我们就讨论一下在delphi中如何给窗口的标题栏上添加新的按钮. 一.实现起来要定义以下过程: 1. 定义DrawCaptButton过程,这个过程的功能是在指定的位置画出按钮. 在过程中要使用win32函数GetSystemMetrics得到窗口的大小和标题按钮的大小:使用delphi函数Bounds定义一个矩形,这个矩形就是新按钮的位置:再定义一个小的矩形,这个矩形是为了填写文本:最后就调用delphi中比较有用的函数drawbuttonface把按钮画出来. 2. 每次我们对窗口进行操…
首先需要说明,这个问题的出现需要几个前提:使用微软的Oracle驱动(使用Oracle自己的驱动不会出现这个问题).使用绑定变量法,使用Format等方式拼接SQL也不会出现这个问题,还有一些诡异的规律我还没有发现原因,将会在文中说明. 这个问题是工作中的一个功能模块出现的问题,但是我会在本文中通过一个程序重现这个问题,然后进行分析. 首先给出重现这个问题的简单的程序 首先为了重现这个问题,在程序开发时候配置TADOConnection,必须选择微软的驱动,如下图红框标记的第一个驱动就是微软的O…
bool是LongBool类型. Delphi中定义了四种布尔类型:Boolean,ByteBool,WordBool和LongBool.后面三种布尔类型是为了与其他语言兼容而引入的,一般情况下建议使用Boolean类型.这四种类型的布尔值占用内存的数量如下:Boolean 1 ByteByteBool 1 ByteWordBool 2 Bytes(1 Word)LongBool 4 Bytes(2 Words)对于ByteBool,WordBool和LongBool三种类型True常量的值为非…
接着前面两篇文章的内容,我们今天把这个贴吧爬取图片的程序完善,让它具有可以下载贴吧多页和帖子多页图片的能力. 主界面设计如下,包含3个labelededit,3个button,1个memo,1个stringgrid,2个label,1个progressbar,大家可以根据实际情况自行调整. 主窗体界面 网页分析,在前面2篇文章也已经说给大家了,下面我们来看一下具体实现的代码. 程序打开,只有输入贴吧名和打开贴吧这2个控件的Enabled是True: 全局变量和UTF-8转换函数: 窗体的oncr…
接着上一篇文章说一下我们如何爬取多页帖子的图片. 第一步,还是随便找个贴吧,这次我们就找图片相对较少的射雕英雄传吧. 把页面拉到最底下,在页码区域单击右键,选择检查. 在这里我们看到了页码的代码区域,蓝色字体就是页码的链接地址,比如第二页的地址: "http://tieba.baidu.com/f?kw=%E5%B0%84%E9%9B%95%E8%8B%B1%E9%9B%84%E4%BC%A0&ie=utf-8&pn=50" 其中,%E5%B0%84%E9%9B%95%…
大家如果经常在逛贴吧的时候,会看到很多帖子里有很多好看的图片,都想下载下来留存的话,常规的方法只能一张一张点击右键,然后图片另存为,这样的方法对于图片少的来说没什么,要是图片超过100张,200张,那可就痛苦了,今天就为大家介绍一下如何利用delphi去爬取贴吧帖子的图片. delphi的爬虫思考 第一步,打开任意一个贴吧,比如图片吧. 打开图片吧 第二步,在贴吧里随意找个有很多图片的帖子. 有很多图片的帖子 第三步,在任意一层有图片的楼层,右键单击图片,选择检查. 右键单击检查 第四步,在页面…
Delphi的强大与其庞大的组件库息息相关,目前的XE10.1版本已自带FastReport和GDI+等,下面我们来看一下几个非常强大且实用的组件库 一.DevExpress套件 Dev包含Grid.Chart.Reporting.Tree-Grid等100多个功能子控件,同时套包内包含Winform.WPF.Sliverlight..net 版本和 .NET Application Framework 开发框架.适用各种桌面.Web应用程序开发,尤其是Winform应用程序开发. Dev可以说…
  一.创建菜单并添加项目 在设计程序时,有时需要动态创建菜单, 通常使用以下的语句: PopupMenu1 := TPopupMenu.Create(Self);  Item := TMenuItem.Create(PopupMenu1);  Item.Caption := '菜单一';  Item.OnClick := MenuItem1Click;  PopupMenu1.Items.Add(Item);  Item := TMenuItem.Create(PopupMenu1);  It…
1.开启线程的两种方式: 进程,线程: 进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合)而线程才是cpu上的执行单位) 1.同一个进程内的多个线程共享该进程内的地址资源 2.创建线程的开销远小于创建进程的开销(创建一个进程,就是创建一个车间,涉及到申请空间, 而且在该空间内建至少一条流水线,但创建线程,就只是在一个车间内造一条流水线,无需申请空间,所以创建开销小) # 方式1: from threading import Thread import time def sayh…
1.开启子进程的两种方式: # 方式1: from multiprocessing import Process import time def task(name): print('%s is running'%(name)) time.sleep(2) print('%s is done'%name) if __name__ == '__main__': # p = Process(target=task,kwargs={'name':'子进程1'}) p = Process(target=…
开启进程的两种方式——Process 方式一:函数方法 from multiprocessing import Process import time def task(name): print('%s is running'%name) time.sleep(3) print('%s is done' % name) if __name__ == '__main__': p = Process(target=task,args=('子进程1',)) p.start() #仅仅只是给操作系统发送…
一.抽象类与接口的异同 接口简单的理解可认为是一个抽象类,我们先定义一个抽象类和接口来对比之间的异同,代码如下: type IFormattedNumber = interface //定义接口 function FormattedString: string; end; TFormattedNumber = class //定义抽象类 public function FormattedString: string; virtual; abstract; end; 上面定义了一个接口IForma…