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

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;

英特尔或在2月宣布其电视计划:提供分类频道 Prismatic:用机器学习分析用户兴趣只需10秒钟 谷歌布局亚太地区数据中心建设 服务响应速度有望提升30% 2013年移动互联网行业技术趋势前瞻 老骥伏枥志在千里:回顾微软这一年 2013或将崛起 水落石出:在与谷歌苹果竞购创业公司中微软胜出 用扁平化的界面设计吸引用户 2012年12月份全球主流浏览器市场份额排行榜 冲榜不一定要刷榜:增加游戏曝光度的7大杀手锏 科技vs政治:FTC对Google的反垄断调查结束背后 威胁百度:奇虎360确认将与谷歌达成合作关系 Facebook更新Messenger应用 推免费网络电话服务 网上疯传iOS7概念设计:Dashboard是真是假? 过时的UI设计 Ubuntu手机系统前途不被看好 三星将于今年发布Tizen设备 将对苹果形成威胁? 分享9条经典的编程语录 国际著名黑客大赛介绍与比较 微软Azure CDN服务全球范围内出现宕机 双向多功能U盘:从Android设备到PC还有多远? 证明了自己:微软Win8获美国防部6.17亿订单 2013 Facebook黑客杯报名即将开始 解决Win8下IE10无法打开的故障 [简讯] Scala 2.10.0发布! 收购传闻:Apple一厢情愿还是Waze待价而沽 回顾过去,展望2013:移动开发引擎、工具和语言盘点 成本为0!Netflix开源工具Janitor Monkey清理AWS iOS开发者讲述在Google工作的三个月 GitHub历史上最糟糕宕机事故回放及反省 疑因竞争 谷歌有意让地图与WP手机不兼容 移动游戏开者必看:海外VC最关心什么? 淘宝UED:随侃设计师的个人素养 请教一个笨问题!请帮帮我! ==========诸位兄台,如何获得一个字附的点阵数,象“A”的点阵数是XX(我也不知道)========== ms6163 可以支持奔3吗? 女孩为什么穿短裙?大家快来看 找注册码,我下载了一个叫AVPhone的东西,有没有哪位大哥有注册码??? 42分,如何在VC中建立象vb中的控件数组 实习要搞数据库开发,可我只学过foxpro2.5~~~,现在想用vfp,能不能推荐一本好的,谢谢 在DELPHI中如何控制DOS命令语句的运行顺序? 请问:网站发手机短信息的技术解决方案,请详细说明一下! 为什么JBuilder5中没有Component Palette ,即能够产生各种控件的页.象jb3那样.有swing,swingcontainers,dataexpress..... 为什么我不能给分? 如何实现网络定时传输文件??? 完了,完了,我彻底完蛋了! 我从网上下载的*.bin文件的电影怎么播放? 考水平考试的朋友请过来看。 刚收到111222的信~~~难过~~~我会想念他的~~~你们是不是也会~~~ 我的硬盘为何这样!help!! 考水平考试的朋友过来看看 我要毕业啊 ===============想知道111222去向的朋友,看这(独家披漏)===================== 以下SQL语言如何写? 111222走了~~送分~~~心里不好受~~~ 111222真的走了~~~~~~~~~~~ JBuilder中用MYSQL数据库,用中文进行条件查询时,查不出任和数据? ASM 菜鸟问题,请大家帮忙!谢谢 解释一下好了吗? ============答对我的问题者,将可获得111222的签名照片!!!!!!!!=========== 关于图片的上传 ======== 绝对好消息,activereport2.0已经release 了,cracker们出动啊~~~~~加油 ============= 关于什么才是真正的系统分析和系统分析员的讨论!——欢迎大家参加,进行善意地讨论!^&^ 今晚的球赛什么时候开始啊? 哪里有关于水平考试(高程)的模拟题的啊??? 为什麽还是不能显示中文呢? 怎样获取WIN2000的密码 在父窗体怎样画jpg格式的背景图? 如何注册MSComm控件????????? 如何解决这个问题啊?重赏啊!!!! 公告: 从现在开始封shines 111222 :)流芳斑主,结贴的工作要开始了,会很累啊!我代表大家先谢谢你了! 怎样改变MSHflexgrid中每条记录的背景颜色。急急急急急急急 各位,能不能给我讲一下“句柄”是怎么一回事? 唉,心情不爽 关于C++语法的问题? 灌水-----大学时的恶作剧(转载) "setdibs()"是什么来着,请指教,谢谢! 写注释不宜过头 这段代码错在哪里? 请大家预测一下比分(参与者都有分)开赛后就不算了,还有半个小时,赶紧着 写网络电话程序的讨论 最后一帖,贴完睡觉----如何在电梯里捣乱 怎样定制一个在程序中重用的组件?只能通过包方式吗? 1、甲、乙、丙三人合修一围墙,甲、乙合作6天完成工作量的1/3,然后乙、丙合作2天完成余下任务的1/4,剩余的工作三人合作5天才完成.他们各完成了这项工程的多少?2、一个两位数,个位数字与 10x+20(x-3.5)=80 这个方程怎么解? 45%x=25%(x+16) 这个方程怎么解, 两个班进行比赛,每个班5男3女.一个队的每个队员都要与另一个队的比赛.男女之间不比赛.胜一场得3分,负一场扣1分.无平局.最后三班比一班多24分.求三班赢了多少场. 2*(x+2x)=54 45-x=x*6这道方程怎么解 x={2,4,5,6,8},y={30,40,55,70,80},求线性回归方程 将一批工业最新动态信息输入管理存储网络,甲独做需要6小时,乙独做需要4小时,甲先做30分钟,然后甲、乙一起合作,那么还需要多长时间才能完成工作 方程的 X-3=(54-3)+3 如题,方程的 X-3=(54-3)+3 5x+8(8-x)=55 直接写出来. 东港区的,下册,人教版 (/是除号) x/50-x/75=10 顺便讲一下咋解这种方程. 5(x-3)=55解方程并写出检验 小学第一学期教学质量达标检测卷五年级数学(上) ① X/45=Y+0.5 ② X/50=Y-0.5 解下列方程,加检验.x+0.3=1.8 3+x=5.4 x-1.5=4 x解下列方程,加检验.x+0.3=1.8 3+x=5.4 x-1.5=4 x-6=7.6 北京师范大学五年级数学方程的检验检验怎么写 5%X+(500-X)×4%=23.5这个方程怎么解 2(8+x)=20怎么写方程并检验 方程的检验怎么写 x/2-60=x/3+80这个方程怎么解 (1+x%)*1260+1827 30%x-20%x+x-1.8 怎么写,要检验,要写方程左边等于…… 方程4(2-X)=60的解是 3.5/(8+20)=x/12这个方程怎么解? x+4x=360怎么解 解关于x的方程3^(x+2)-3^(2-x)=80 求检查初中数学题.方程的. x-(5/4x-360)=1/3(5/4x-360) 解方程过程 (x-18)÷2=x÷4这道方程怎么做? 求检查初中数学方程计算题. 4x-360=x-60怎么解? 25%+X=75 方程 标准检测卷观察下面三行数:-3,9,-27,81,-243,729……0,12,-24,84,-240,732……-1,3,-9,27,-81,243……问:第1行与第2行第3行有什么关系?并取每行数的第十个数,计算这三个数的和. 1.25x加4x等于360 怎么解 方程19-120x=7怎么解注意, 方程怎么检验 (x+18)÷4=120;列方程快快快~~~ 19-120%x=7这条方程怎么解 速求? 某商店经营T恤衫,已知成批购进时单价是2.5元.根据市场调查,销售量与销售单价满足如下关系:在一段时间内,单价是13.5元时,销售量是500件,而单价每降低1元,就可以多售出200件.1)销售量可 18+120%x=24请帮我解答方程. 判断:X=26是方程X-12+6=20是方程的解 (X+Y)2=1402X2Y*3=14400 谁能解这个方程:1/5(x-2)=80% x-1/4=36.这道方程怎么做 就是图上的那些..6点之前. 120x=100(x+1)怎么解? x+35-x=(20+x)×2方程怎么解?20+35-x=(20+x)×2怎么算啊? 一道初中数学题关于方程的共有足球篮球排球20个,共330元.足球60元一个,篮球30元一个,排球10元一个.问:排球有几个?(也要说出足球和篮球的个数)拜托不要让我一个一个试,如果数很大怎么 (x-2)*180=120x怎么解 x/3.5+(x-35)/3.5=x/2 这个方程怎么解 【初中数学】用方程解决问题.依法纳税是每个公民应尽的义务.从2008年3月1日起,新修改后的《中华人民共和国个人所得税法》规定,公民每月收入不超过2000元,不需交税;超过2000元的部分为 这个方程怎末解 解方程式X-2=X÷3+12 甲志愿者计划用若干个工作日完成社区的某项工作,从第三个工作日起,乙志愿者加盟此项工作,且甲、乙两人工效相同,结果提前3天完成任务,则甲志愿者计划完成此项工作的天数为_____. (1+20%)=(1+x%)*80%这个方程怎么解? 2.8+x=10.35 解这个方程 2005年基数为1 要求2010年下降22.5%1.每年下降?2.2006年下降1.36% 2007年下降4.09% 如果2008年下降6%那么09年目标是?请列出方程并说明理由 80%x=(x+20)乘75%的方程怎么解 χ²+12χ+36=0请问怎么解这个方程.非常谢谢.在线等谢谢各位了!能详细点写出步骤吗,谢谢!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn