说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Delphi使用心得

HTML文档下载 WORD文档下载 PDF文档下载
Delphi使用心得

Delphi是Borland公司推出的一个可视化、面向对象的快速应用程序开发工具,继16位的1.0版本后,又推出了32位的2.0、3.0版本,很受开发人员的欢迎。下面就将我在学习Delphi过程中的一些心得奉献给大家,希望能给您带来帮助和启示。

一、如何使Form在不同的聊环直率下显示出同样大小?

我喜欢把我的15英寸显示器置于800×600的模式下,因为这时的色彩和字体都比较好看,但是在这种模式下用Delphi设计的程序运行于别的机器上时往往由于分辨率不同、字体大小不同显得很难看,相信不少朋友和我一样遇到同样的情况,当然我们可以“强迫”别人也使用800×600的分辨率。那么有没有办法使自己的程序“专业化”一些,能够自适应屏幕的分辨率呢,答案是肯定的,因为Delphi 提供了ScaleBy这个过程,利用这个过程我们可以在FormCreate时轻易地控制form 的外观。实现的代码如下:

implementation

const

ScreenWidth:LongInt=800;

ScreenHeight:LongInt=600;

{I designed my form in 800×600 mode.}

{$ R*.DFM}

procedure TMainForm.FormCreate(Sender:TObject);

var

OldFormWidth:integer;

begin

Scaled:=TRUE;

if(Screen.width <> ScreenWidth)then

begin

OldFormWidth:=Width

Height:=longint(Height)*longint(Screen.Height)DIV ScreenHeight;

Width:=longint(Width)*longint(Screen.Width)DIV ScreenWidth;

ScaleBy(Screen.Width

ScreenWidth);

Font.Size:=(Width DIV OldFormWidth)*FontSize;

end;

end;

二、如何判断一个程序是否已在运行?

在某些时候我们通常需要自己编制的程序只可以有一份拷贝在运行,如何作到这一点呢?通常我们可以用GetWindowsWord获得窗口句柄,再用GetClassName获得并比较ClassName来达到目的。

...

Result:=true;

if GetWindowWord (Wnd

Gww_HINSTANCE)

=hPrevInst then

begin

GetClassName(Wnd

ClassName

30);

if StrIComp(ClassName

'TApplication')=0 then

begin

TargetWindow^:=Wnd;

Result:=false;

end;

end;

...

后来我曾在网上看过一段关于此方面的说明,它介绍了另一种方法,是通过在内存中建立旗语标志实现此功能的,试了一下效果很好,具体的过程见下面的程序与注释:

unit prevcode;

interface

uses

Windows

Messages

SysUtils

Classes

Graphics

Controls

Forms

Dialogs

type

TForml=class(TForm)

procedure FormCreate(Sender:TObject);

private

{Private declarations}

public

{Public declarations}

end;

function DoIExist(WndTitle:String):Boolean;

var

Form1:TForm1;

implementation

{$R*.DFM

function DoIExist(WndTitle:String):Boolean;

var

hSem:THandle;

hWndMe

hWnPrev:HWnd;

semNm

wTtl:Array[0..256]of Char;

beigin

Result:=False;

StrPCopy(semNm

'SermaphoreName');

StrPCopy(wTtl

WndTitle);

hSem:=CreateSemaphore(nil

0

1

semNm);//如果第一次运行则建立一个标志

//检查这个标志是否存在

if(hSem <> 0)AND(GetLastError()=ERROR_ALREADY_EXISTS))then

begin

CloseHandle(hSem);

hWndMe:=FindWindow(nil

wTtl);//获得当前运行的窗口句柄,改变标题

SetWindowText(hWndMe

'zzzzzzz');//这样才可以寻找其他instance

//寻找这个视窗的instance

然后将它置于Z-order顶层

hWndMe:=FindWindow(nil

wTtl);

if(hWndMe <> 0)then

begin

if IsIconic(hWndMe) then ShowWindow (hWndMe

SW_SHOWNORMAL)

else

SetForegroundWindow(hWndMe);

end;

Result:=True;

end;

end;

procedure TForm.FormCreate(Sender:TObject);

begin

if DOIExist(Self.Caption)then

Halt;

end;

如何让IE 10玩转响应式网站 Windows Server 2012:令CIO激动的三个新特性 高德和新浪微博战略合作 打通账号互调数据 乐观锁和悲观锁 你更钟情于哪一个? Apple索30%分成 iOS版微软SkyDrive更新搁浅 [简讯] Linux 3.7发布 开源图形卡驱动程序 高效敏捷的十大经验法则 佛瑞斯特资讯公司预测2013年云计算的十个变化 百会中小企业CRM年会成功举办 发布CRM选型指南 诺基亚创新体验中心NEIC训练团正式开班 新威胁:IE新漏洞允许网站跟踪鼠标 少编码多思考:代码越多 问题越多 [简讯] JDK 7u10发布 修复安全漏洞 搜狗茹立云:为何搜狗语音助手比Siri更精准? BlackBerry 10最终版SDK Gold发布 谷歌地图正式登陆App Store 为开发者推出SDK 你的云数据的三个最大威胁 公开叫板:Google不打算推出Win8版Gmail和Drive APP备案风波:开发者何去何从? 32位和64位的JVM 我该选择哪个呢? 黑莓“Got Game Port-a-Thon”活动将于12月22日在北京举行 专访Moti Joseph:浏览器安全的经验之谈 四大开源云平台的命运基因 FPS移动游戏:画质不是第一位,操控才是死穴 微软2013年的五个安全预测 应用成武器 王淮,大城小胖论辩HTML5 局部有小雨 技术人员创业后就不再适合继续编码了? Google Dremel vs Apache Hadoop 低功耗之争:英特尔 VS ARM NEIC-诺基亚体验创新中心 助力开发者创享新移动互联时代 Google地图主管Daniel Graf:新设计,新目标 --请问如何将一个BMP图形文件转成JPG图形文件,高分请教师--- 高分给出,win98的怪问题! 打印统计问题 请教 : html的javascript 中报错:document.Form1.client_name.value不是对象 VC++里面如何从文本文件中一行一行读取文件? 请问,如何用mail函数批量发送邮件.多谢. 各位请教一下,Jsp 的服务resin在win2000下是怎样配置的 各位兄弟: 有谁知道 侯杰 的 <多线程程序设计> 什么时候才能买到??? 哪里有VFP3.0下载? system.ini和win.ini的作用 怎样生成安装包,多谢! 如何在两个不同的应用程序之间拖动文本字符 请问,PTSTR 和 PSTR 有什么不同? 反对上海电信变相涨价的行为。我能不能告中国电信“违约”和“欺诈”呢。 求救!误删Office2000注册表! 生成.exe出错 在Excel中,如何让某些行不能滚动? 在--成都--程序员能拿多少--¥--???? 换了17寸纯平显示器,开心,放分. 错装PB7,不能无create datawindows的图标,全是XX,为什么? 请问怎样遍历一个页面中服务器端的所有对象? 能否跟我说说——自动控制方面——与delphi编程的基本常识?我一直想了解,但不知道我们编的程序如何去跟那些硬件搞在一起而且控制硬件呢? 程序出错 发现一个不错的网站!www.ffboy.com 兩個Recordset之間數据轉入和轉出問題???. 高手請進......(一定給分) 大家推荐一下 ,win2k 下的 XML 编辑器。 请问男女之间存不存在真正的友情? 请教一下,怎样打印 java applet绘出的图形?,要用java 编写 高手请进!!!关于数据库 很菜的问题!字符串转化的问题? 最近运行D盘时,出来"找不到该路径..."的对话框,是什么原因? 指针数组定义的问题 我想截获tcp包,问从何下手,大鸟们 快来帮忙 远程数据传输问题:不同地域,不同系统间的数据传送有什么好方法? 急!!!(原谅我的无知) DELPHI怎么联接Access数据库!!!BDE ADO都可以!!!! 求安装制作软件 请问进行OpenGL编程除了VC和C++BUILDER外,还有什么工具可用?????? 请教一下,怎样在jsp中捕获 java applet 的按钮事件 一道填空题,大家看一看呀 小弟对现公司特别反感,很想换个学习环境比较好一点的,但是公司又要叫我签下一年的合同,我真是难办。 关于扩展名为.DAT文件的问题。 himen.sys文件的作用? 给SQL2000存储过程批量加密? 如何定义一个和Excel内嵌函数一样的用户自定义函数? 如何用DELPHI扫描所有硬盘的所有文件 老生常谈的一个问题?qq上mm问:“你张的帅么?“怎样回答最好呀!!! 如何扫描局域网共享资源(及进行密码验证)-只想知道原理无其它意思 VC++里面如何从文本文件中一段一段读取文件? 急求大型网络可行性报告(规划书) 为什么,能增加新记录,却不能更新旧记录? 细菌按形状可分为(),()和()? 当月球走到什么位置时开始发生月食说下,简略 10S内通过某导体横截面的电荷量为6库,电流做功36焦,通过导体的电流为------安,导体两端的电压为--伏什么是电荷量啊 细菌有哪几种形态? 月食都发生在圆月之夜对吗30秒之内回答出来 某导体两端为电压为6V,通过他的电流为0.5A,10s内通过该导体横截面的电荷量为()C,电流做功为()J. 铁细菌是什么形状的 物理电功率计算题 1、一个电灯泡在2s内电流做功 w2、功率为500w的电饭锅工作3h消耗的电能为 kw*h3、一个500w的电烤箱工作 h消耗一度电,而一度电可供100w的灯工作 h4、红绿灯,每盏灯都有220v、10 月亮本身不发光,月光是月亮对( )的反射? 细菌有()、()和()状等不同形状,有些细菌相连接成().但每个细菌都能()生活. 一个小灯泡正常发光时电压2.5v电流一分钟做功1.75焦耳求电流额定功率.如电压2v电功率 关联词 月亮不能发光 月亮能反射太阳光除“虽然……但是……” 一个高数求导问题求大神解答!希望能写在纸上拍下来发给我会加分就是求括号里面的那个的导数就行了, 不用管左边的e 设X的概率密度为f(x)={2x,0 月球是一个不发光的球体,我们看到的月光是它反射太阳的光.这句话对不对? 常用的静态图象文件有几种格式?分别具有哪些特点? 设X~N(0,1),求Y=2X^2+1的概率密度RT 标有“220V 40W”电热器安装在220V的电路中,则通过电热器的电流时多少?工作10s后,所消耗的电能是多少J?产生的热量又是多少J? 求导,为什么 d(y^5)/dx 会等于 d(y^5)/dy · dy/dx 一个40W的电灯泡表示的物理意义 稳压电源:要求:输入220V电压,输出40V左右直流电压,5-10S之后,输出直流电压稳定在15V左右,电流1A. 高数,如何证明反函数二阶导d(1/y')/dx=-y''/(y')^2如题 电功的物理意义是什么RT 将表有220V 750W微波炉接在电压为220V的电路上,通过它的电流是_他的电阻是_这个微波炉2分钟消耗的电能是 已知y=y(x)的导数y',y‘’存在,且y=y(x)的反函数为x=x(y),试用y',y''表示(d^2x)/dx^2 —(y'')/(y')^3 月食大约在几月 某导体的电阻为10Ω,通过导体的电流为0.5A,通电10S,导体消耗了多少电能 女人体型分为哪几种 月亮为什么会月食 月亮反射太阳的光,那么月光也是七色光吗? 旗袍款式分为哪几种 今年几月几日有月蚀的?在江苏盐城地区可以看到月蚀吗 月亮反射了太阳多少光 轮廓标分为几种,我要详细的. 某家用60w的灯四盏,换成11w的灯.问若平均每天用5小时电,1年(365天)节约多少千瓦时 星星因为体积,质量不同,而发出不同的光.月亮也有质量,但是月光却是:反射的太阳光呢比如,我们能看见的行星:金星等等.它就是自己的光.而看见的月亮(地球的卫星),确是反射的太阳光. 肥胖分为不同体型的种类有哪几种呢? 1.家庭电路电压在用电高峰时段时会降低到198V,一盏“220V,100W”的灯泡在此电压下工作的实际功率是( ) 2灯的亮度取决于( )A.灯的电阻 B.通过灯的电流 C.灯的额定电压 D.灯的实际功率 导体两端的电压为3v时,通过导体的电流是0.3A如果加在导体两端的电压变为0v时,那那么该导体的电阻是A:0.9欧 B:10欧 C:0欧 D:0.01欧 物理题求详解...汽车发动机的功率为60kW,汽车的质量为4t,当它行驶在坡度为0.02的长直公路上时汽车发动机的功率为60kW,汽车的质量为4t,当它行驶在坡度为0.02的长直公路上时,所受阻力为车重的 月亮会发光吗 某导体两端电压为15V,此时通过导体的电流为3A,若导体两端的电压增加3V,此时通过导体的电流和导体的电阻分别是( )A 0.6A 5欧姆B 3.6A 5欧姆C 3.6A 1欧姆 D 4A 6欧姆 最近一次月食在几月几日 月球会不会发光 10s内通过某导体横截面积的电荷量为2C,通过电流?,电压6V,电阻为?Ω.两端的电压为3V时,该电阻为?ΩC是什么? 最近的一场月食是在几月几号 月球会发光吗? 概率论 概率密度函数 问题二维随机向量(X,Y)的联合概率分布为f(x,y)={e^-(x+y) ,x>=0 y>=0 {0 , 其他求:1、Z=(X+Y)/2的概率密 谁能告诉我最近的月食是在几月几日的几点? 月亮为什么会发光?是因为太阳照吗?还是其他原因? 概率论问题关于概率密度函数 2008年有没有月食?几月几日? 简单的概率论与数理统计题目,判断哪些可以作为某随机变量的分布函数,哪些不可以,为什么 概率论中条件概率密度函数的计算问题问题写在第二张图片了,麻烦各位老师看看,我那样算可以吗?好像算出来的结果是一样的 2010年1月1日的几点几分有月食发生,那后面到什么时候又会有? 一段导体两端的电压是24V,通过的电流是0.5A,这段导体消耗的电功率是()W,通电10s产生的热值() 问一条概率论的题...关于概率密度函数设随机变量x~u(0,π),求下列随机变量Y的概率密度函数.已知Y=2ln X...如果有公式什么的讲解会加分的~ 细菌的样子 设随机变量 X,Y 相互独立,且服从[0,1]上的均匀分布,求X+Y 的概率密度参考答案是这么写的.让我不明白的是最后x,y取值有两种情况的依据是什么,又为什么如此划分区间呢?求详细说明(最后描红 某导体两端电压为6V,通过它的电流为0.5A,10s内通过该导体横截面的电荷量为()C?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn