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

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;

IT巨头混战:谷歌、苹果、Facebook以及亚马逊的四国演义 乐视TV:智能电视平台——Android 开发者的新空间 TIOBE 2012年12月编程语言排行榜:Objective-C冲刺卫冕年度语言 11月份浏览器市场份额 IE10已占据0.51% 亚洲高科技公司正在分享惠普、戴尔和IBM的云“午餐” Groupon创业启示:进军海外,请三思 天才之为责任:Unity CEO谈论Unity 4.0游戏引擎 中文版Evernote百宝箱上线:开发者海外推广新渠道 360产品被爆收集用户隐私 桌面安全路在何方 销售额达一万亿元 阿里巴巴成世界最大电商 共享软件海外营销策略与实战分析(武汉站)成功落幕 你未必知道的CSS故事:揭开leading的面纱 2013年 影响Web发展的5类API 《Warcraft是怎样炼成的》:多人对战、战争迷雾以及AI HBTC精彩回顾 Hadoop专家分享大数据技术工具与最佳实践 苹果iTV规格泄露:iOS应用开发的新蓝海 Facebook觊觎微信鼻祖WhatsApp,但谈不上收购 首款社交API应用 Facebook Messenger for Firefox正式上线! 共享软件海外营销策略与实战分析(沈阳站)成功落幕 移动之伤:为什么山寨游戏比原创更火? IBM在京发布PureData 主打数据交易处理、操作分析 Intel发布Hadoop免费版 全力拓展生态圈 突出图片搜索:微软向测试人员开放Socl社交搜索 豌豆荚创始人:和巨头竞争,我们拼产品和技术 “互联网女皇”报告解读:智能电视大趋势 苹果扩大其北卡罗莱纳州燃料电池发电场规模 Oracle回收站使用全攻略 微软这次很诚实:IE真的糟透了 Facebook进军短信业务,挑战微信鼻祖WhatsApp 从菜鸟到专家的五步编程语言学习法 亚马逊企业文化:从书贩到云服务巨头的催化剂 ORACLE统计问题 腊肉是月老啊,单身的哥哥们找腊肉拉红线啊! 新闻搜索 using namespace std; 微星845 Ultra-C 支持P4赛扬2.0的吗? 请问哪里有关于cc的比较好的文档资料. 水晶报表的问题!!!!!!!!!!!! 关闭Jbuilder9时,会弹出微软拼音输入法的关于信息框,如何解决? TreeView的删除问题/// 怎样在delphi里使用windows定义的结构体 问个问题 顺便散分 sub main问题 郁闷,一夜起来信誉分掉了一大截,散分 请问UNIX下makefile 是怎么一回事 我在学习C#,不过基础不好,很吃力!中秋快乐! 如何防止文件被访问?谢谢! 今年中秋我爸收了一大堆礼物,价值估计不下于20万(我爸是税务局长),呵呵,太高兴了!再散点分给大家!今年中秋我爸收了一大堆礼物, ASP.NET有没有类似javascript中的window.confirm( )这样的方法,弹出对话框提示是否确认? C#builder里的CaliberRM有谁用过? 学ASP学的我晕了,大家给条路!!! 简单问题求助~~~~~~~~~~~~~~~ sql7.0到sql2000升级 图像存储及传输的计算问题? 为什么不能共享? 大家讲讲TreeMap的使用,回答好的立刻给100分!! 请问哪里有免费的或破解的查木马软件下载?? 在ASP.NET中能控制输入法吗?在.NET应用程序中有一INPUTLANGUAGE类,可以控制,在ASP.NET中能实现吗? 有谁做过用moden拨号连接,访问另一台pc,建立连接 如何让bean中的“输出”定位到网页中的特定位置? 请问以下这个项目如何设计?关于图形数据库系统的 触发器的大问题,请各位高手支招: CEO是个什么职务?有多大管理权限? 一个看似简单.....其实非常难的问题....小妹初学web开发. 为什么不能共享??? 100分求:哪儿有《深入理解linux内核》可供下哉! 工作机会 JBUILDER是否帶有TomCat﹐如何安裝使用﹖ 这里有没有用过realbasic的朋友 为什么不能共享??? 报表怎么样进行总计,一个QRexpr的问题? 请推荐 求救,如何用实现在同一个局域网内另外一台电脑用ADO访问服务器的ACCESS文件,马上给分 请问高手,以下问题如何解决? 在java中怎么把日期0204改成2002-04 在自己建立的文件夹下建立文件,可怎么都不对头!!SOS!! 数据窗口打印问题,多多帮忙!!!!!!!!!!!!!!!!!!!!!!!!!! 在SQL中写个函数,急 我刚学编程没有多久,发现在数据库很重要,但不知道怎样一个用一个系统方法去学习?请各们前辈能给我以指点。非常感谢!!! 我用ADO做了一个数据库应用,数据库是ACCESSXP,ODBC JET4。0?有一个问题 使用DEV-C++进行命令行编译的设置问题 请问高手,如何解决图形数据库问题? 初二科学题:将制备的硫酸铜溶液与其他同学制备的硫酸铜比较,你得到哪些启示? The ploughing set cappuccino什么意思 高二课文杜浦诗赏晰秋兴八首,咏怀古迹,登高 英语翻译Until recently,market experiments focused almost exclusively on the behavior of sellers.Like the theory the experiments are designed to test,buyers are assumed to act as passiveprice-takers.Thus,human buyers are replaced by a computer alg 姓韩的历史上又名的坏蛋大家帮我找找,性韩的优美有什么坏蛋,历史上特别出名的也行,实在没有就是个比较出名的太监都可以,反正只要姓这个韩就可以了~@我想骂韩国人~@ 做个数学题:A,B,C分别为三角形的三边之长,求证:(A/B+C)+(B/C+A)+(C/A+B) 母爱作文200字写的好一点,短一点 关于母爱的作文200字 国家结构形式 名词解释:联合国包括成立时间、外交特权、性质、发挥的作用等 “最有权力人物”排行榜 普京“战胜”中国军队以开放态度迎接互联网花莲6.7级地震致1伤 为台湾今年来广西回应米粉店枪杀案:嫌犯带枪系执行杭州40岁已婚男扮21岁女大学生约2花莲6.3级地震无重大灾情 目前仅传连鞠两躬,美主持人再向华人道歉美使馆疑用这个“白盒”监听俄网站曝光斯诺登游艇照 金发美女陪伴智利科金博附近海域发生6.6级地震 杭州本周末或是最后一个有桂花香的周末奥巴马敦促众议院就临时拨款议案投票朝鲜进入“动员状态”应对美军演派遣航三星杯八强中国占据半数席位潘基文建议组建联合代表团消除叙化武拨动心灵的琴弦船形帽在我军的秋来春去解放军报:坚持党性就是要坚持正确政治翼装飞行世锦赛选手坠落山崖加强党内监督要有责任感兵分多路连夜抢险救灾站在秦岭望大海圣杯记武动乾坤子鼠之霉鼠神职超级主神创神传奇盗墓笔记谋国网游之红警帝国异界多塔异世之极品僵尸申扎旅游锦绣天府塔旅游秦堰楼旅游老君阁旅游月城湖旅游四川美术展览馆旅游海棠公园旅游嘉定坊旅游万仙楼旅游圣堂山旅游林屋洞旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘