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

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;

手把手教学:在iOS 8中使用Cocoapods 交互技术前沿与应用实战:MDCC虚拟现实专场议程揭晓 解密“攻城狮使用手册” 技术专家齐聚!MDCC 2015精彩日程全曝光 基于ActiveMQ的消息中间件系统 OneMM逻辑与物理架构设计详解 John Carmack大神亲操刀,为Oculus开发Netflix应用 React Native实战(二):Android的打包 独立游戏的成功秘诀:好设计才是王道 Swift 2.1的新变化 Apple TV实战:用TVML开发第一款tvOS应用 【SDCC讲师专访】阿里王晶昱:云时代的分布式数据库DRDS 硬件研发、嵌入式技术演进:MDCC IoT峰会日程揭晓 专访百度知道iOS团队负责人孙源:代码强迫症的死实践派 TIOBE 2015年10月编程语言排行榜:Ruby取代Objective-C进前十 【SDCC讲师专访】PingCAP联合创始人兼CEO刘奇:好的产品应开源,不闭门造车 【深入浅出Koa】常用工具分享 帮你降低编程难度 Relay: 全新的React数据获取框架 探索游戏开发面临的技术挑战——MDCC 2015游戏开发专场议程曝光 【SDCC讲师专访】易开发创始人潘俊勇:这些年我遇到的那些坑 【CTO讲堂】OpenStack行业实践和发展趋势探讨 万物互联,移动为先:MDCC 2015移动开发者大会盛大开幕! 【MDCC 2015】微软开发体验与平台事业合作部大中华区DX部门总经理Srikanth Raju:物联之上云+端 英雄会晚宴,Top开发者共聚“华山之巅” 【MDCC 2015】产品与设计专场(上):百度研究院、印象笔记等专家齐聚,以实例探讨如何打造好产品 【MDCC 2015】产品与设计专场(下):网易云音乐、在行、三节课、去哪儿网、野兽骑行大咖的产品之路 友盟:把数据用活 让开发者享受大数据红利 友盟:用活大数据 让精细化运营为移动开发者服务 携手世纪互联 IBM Bluemix云平台落地中国 【MDCC 2015】IoT峰会—硬件开发与技术专场(下):专家齐聚,共同打造联网新时代 【MDCC 2015】虚拟现实专场(下):虚拟现实的“困”与“竞” 【CTO讲堂】面对世界竞争对手,如何拿到Google PDF开源项目PDFium? 高分急救:急,急,急 数据定义问题 急:关于rich text小应用程序的问题,请高手指点!谢了! 女大学生的一天(转载) 200分问一个小问题, 在线等: JBuilder自带的ESite for weblogic部署出错... 请问 vb 怎么样让函数返回一个二维数组?能给你例子吗? 有人知道上海通方信息系统有限公司吗?我要去面式了?大家帮帮忙,做ejb程序员。 域问题 转分 介绍制作DLL专业书籍 有关image的函数问题 请教? TObject和integer之间的转换问题 数据库简单问题 文本文件的最后一行怎末去掉换行符,用程序实现。 善良的程序员,当心QQ骗子啊! 谁有Qamonitor,小弟急用! 不要笑偶 转分 有会打印对象编程的吗?printer对象怎样打印横线??怎样打印带风格的报表?? 表分区的数量有上限吗 ASP 0178 (0x80070005) 各位高人,请一定帮个忙吧 !! SetCellImage 利用C# 读取系统当前进程的出现问题,帮忙!! 请教高手:怎样在一个窗口里能够输入文本文件(按回车键) 另一个窗口显示出同样的文本 高手在何方 (大力请进)sql字符串处理的问题 上哪能下到exchange 2000,下到马上给分! ado问题? 数据迁移问题??? 怎么把列名选出来? [在线求助]:有什么好的方法可以使得鼠标放上有链接的地方状态栏不显示真实地址? 高手在哪!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 各位大哥﹐何為微创软件开发管理﹖﹖﹖﹖ 3com switch 3300 xm 有网管的功能吗? 关于窗口大小的问题,快来捡分~~~ 为什么2001年前的提问的问题、得分的问题、信誉分变化纪录都不见了。 无法在人才频道上提交简历。。。 请问:wsad4支持滚轮鼠标的插件哪里有下载??? 自动锁定计算机? 请问如何终止一个正在运行的应用程序 无法在人才频道上提交简历。。。 后面数据库为ms sql server2000的时间问题? DoEvents 怎么用?(不好意思,只有这么多分了!) CSDN真让我失望,大家都喜欢回答无聊的问题(不要回复) jdbc中LIKE条件如何使用prepareStatement? 请问,如果想报考系分的话,需要先过高程吗? 请问怎么把Excel形式的表结构导入到Oracle … 请问数据窗口中如何自动记录资料修改的帐户? 我倒要看看谁有本事让javac输出这样的信息? 家里蝴蝶灯管坏了原是2针的管,错买了4针管回来,请问两者通用吗?不敢乱安, 求问皇帝的新装中骇人听闻的潜台词是什么 求止战之殇的伴奏 一次演讲比赛设一、二、三等奖.一等奖的获奖人数是二、三等奖获奖人数的4分之1,二等奖的获奖人数是一、三等奖获奖人数的3分之2.一、二、三等奖的获奖人数各占获奖总人数的几分之几? 止战之殇是什么意思? 几个句子的发音困难!我在练口语,模仿磁带时就是听不出that怎么读,例如,It was generally supposed that it would not happen again.It is expected that the weather will be good soon.还有,We couldn't afford to keep our car,so we 一道有意思的推算题目!有兴趣速度来哈````58 26 16 14 ( ) 空格里的数字应该是多少啊`? 《皇帝的新装》“这可骇人听闻了”,此句中的“这”字指代什么? 什么是特征音程? 有2个容积分别是5升和7升的水桶 如何量出1升的水来 一道很有意思的经济计量题,请多多指教题目是这样的(翻译过来的,语言也许有不通顺的地方,见谅)你想推广一种产品,这种产品要么很受欢迎要么没有市场.你估计这种产品很受欢迎(获得 在《皇帝的新装》中“这可骇人听闻了”的“这”是什么意思?初一上册26课! 六年级数学题目哈有一个上细下粗的圆柱形酒瓶,底面积是10平方厘米,高是7厘米,里面装有一些酒,正放酒的高度是4厘米,倒着放酒的高度是5厘米,这个酒瓶的容积是多少?可能画的不是很标准 大 大兴安岭上主要分布着什么样的林带?这种林带的代表树种是什么? 谁能解释一下止战之殇这首歌 有没有苏教版六年级数学总复习题哈? 猜为什么是反犬旁 英文翻译,冯友兰的《中国哲学简史》里的一句话The first to do so was Ssu-ma T'an (died HO B.C.), father of Ssu-ma Ch'ien (I45~ca. 86 B.C.), and the author with him of China's first great dynastic history, the Shih Chi or 农场牛羊共160只,卖出羊的10%,再买30头牛,现在牛羊只数相等,问:原有牛羊个几只? 3Only____of them are interested in the exhibition.Afew B a few Ca little D little 现在还有大公无私的人吗? 曾子杀猪的故事,改编剧本,700字 世界上谁的垂直起跳高度最高垂直起跳高度是多少 人是大公无私的吗? 这是题算式怎列 反犬旁加贪是什么字, 数学题面积计算-小学题数学题面积计算 一个面积为70平方米的空间,使用一种280*80cm(厘米)面积的地砖铺设!请问有使用多少块呢? 一次比赛有50人参赛其中有26人获奖已知二等奖的人数比一等奖的人数比为4:1一等奖是三等奖的1/8一等奖几人 世界上垂直起跳最高是谁谢谢 鸿门宴中的 都来帮小女子算算哈!有一间储藏室长8米,宽6米,高4.5米.如果每立方米空间可以放大米5袋,每袋大米重50千克,这间储藏室一共可以存放大米多少吨? 世界上垂直起跳高度最高是多少?拜托各位了 3Q 哎 那我想问的是2013年全国大学生英语竞赛初赛的笔试是 包括单选,阅读理解,完形等等和平常一样吗 有一次演讲比赛,有50名选手参加,其中有4/5获奖.已知或二等奖人数与或一等奖的人数之比是5:1,或%有一次演讲比赛,有50名选手参加,其中有4/5获奖.已知或二等奖人数与获一等奖的人数之比是5:1, 世界上垂直起跳最高距离是多少?人们再不断创造新的高度 鸿门宴中的问题刘邦亲赴鸿门宴的主要原因是什么?显示刘邦什么养的性格特点?鸿门宴上活跃着很多人,请概括分析一下作者是怎样表现这些人物的?效果怎样? 在一次才艺表演中,有50名选手参赛,结果26人获奖,获二等奖与获一等奖的人数比是4:1,获一等奖人数是获奖人数的1\8,有几人获得一等奖?搞错了,是:在一次才艺表演中,有50名选手参赛,结果26 请你举一例,说说某一化学产品的利与弊.越快越好、亲们 精英聚集的地方 用英语怎么说我要做一张关于培训的海报.需要加上这个短语的英文.不要百度翻译.求最地道的说法 急切想知道,请问:冯友兰的《中国哲学简史》好的版本都有哪几个?请问新世界出版的怎么样? 太阳直射南纬20度,昼长达到一年中的最大值的范围是多少? 鸿门宴 . 中国哲学简史 冯友兰的 买哪个出版社的最好? 当太阳直射20N时,20N地区昼长达一年最大值? 关于赞美大公无私精神的人的古诗 冯友兰的《中国哲学简史》哪个出版社的好:我只剩下这一个问题了,急切想知道,拿不定主意,感激不禁注意:是冯友兰的“简史”哪个版本的最好?哪个版本的最好?麻烦给个封面图片 太阳直射南半球,南半球各地昼长于夜,其中什么日夜长达到一年中的最大值太阳直射北半球,北半球各地昼长于夜,其中什么日夜长达到一年中的最大值,一共两个问. "中国国际女排精英赛"译成英文怎么说? 在冯友兰先生《中国哲学简史》中,杨朱杨朱被称为先秦道家第一阶段的代表人.在其它的胡适啊、任继愈等学者的《中国哲学史》中有议论杨朱吗?杨朱又是什么地位呢? 修一条路甲修了全长的4分之1,正好修120米,乙修了百分之35圆形花坛的半径是8米,如果延花坛的边沿修2米的小路,小路面积是多少 独一无二的反义词是什么 中国哲学简史~冯友兰,有这样一句话不懂,哲学简史》有一句话:在我们对人生开始思想之前,我们必须首先“思想我们的思想”.这两个思想啥意思后边还有“思想思想的思想是反思的思想. 历史上跟祁黄羊一样大公无私的有哪些人 独一无二的反义词是什么啊 星体为什么会自转 有什么规律? 历史上大公无私的人被称为什么 独一无二的反义词是什么? 冯友兰人生经历? 大公无私的人有哪些? 独一无二的反义词?1.独一无二的反义词2.填字成词.心悦( )( ) 久负( )( ) 1500幅遭纳粹掠夺画作被发现 价值哥伦比亚一辆巴士坠崖致13死61伤刘结一说中国将积极履行安理会轮值主席2013浙江·杭州国际人才交流与合作周日较强冷空气到来 杭州将进入深秋(杭州正研究建设城市风道 从钱塘江引风习近平鼓励企业加强研发“神医”胡万林牢狱生活曝光 监狱未让习近平“现身”中南大学 大学生欢呼雀美元对主要货币汇率4日下跌纽约股市三大股指4日小幅上涨美财政部预计未来半年发债5310亿美金正恩凭吊勇士之墓北约核演习曾险些引发核战朴槿惠对朝探出橄榄枝?澳百余家网站因“窃听”遭“黑”白宫、两院拒赦斯诺登纽约股市4日波动后小幅上涨部分高校将学位证挂钩英语四级 教育部中印时隔5年再次联合军演 更多表达政丘吉尔曾担心法国对英宣战新黄埔区254万招新区建设方案姜武:身体第一工作第七!陆风 订购2014款陆风X8优惠80雷人雷语每个娃都来了场“火山爆发”手机上预订周末游,说走就走天桥有裂缝 单车常被卡爱迟到?想离婚?可能吓走天使投资普工起薪超两千 企业仍难招到人政府人员上门劝导住户搬离避险由木盆到胶盆新思域首付低至20%起,一年免息上半年广州二手车交易量仅增1%享地铁免费WiFi要闯游戏关,你造吗家门口的免费电影院本周放映安排为抚养费火烧前妻家 还欲铁链锁门女医生捐亡父器官救危重病人斗门清理建设用地8212公顷要为小微企业“输血”,民营银行“造血同城读报我们就是要脸皮厚些
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘