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

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;

Android中的正则表达式Regex使用 优化Dalvik虚拟机的堆内存分配 Android标题栏进度指示器使用方法 Thread和Looper以及Handler和Message详解 Android开发必读 layout资源包含,android开发必读 Android本地化开发技巧 Android开发网将推出每天一类专题 ExifInterface使用,Android 2.0新增类 GraphableButton类实现Android UI开发 Android控件开发之ToggleButton原理 Android标题栏TitleBar全攻略 AsyncTask实例代码演示Android异步任务 重绘TextView类演示Android的Handler Android的SoundPool类使用与利弊 AsyncTask解决Android UI堵塞问题 Android自定义View实例AnalogClock源码 Android UI开发专题(五) Bitmap和Canvas实例 Android UI开发专题(四) View自绘控件 Android UI开发专题(三) 各种Drawable 提高Android开发效率-Eclipse快捷键大全 Android UI开发专题(二) 之绘图基础 Android UI开发专题(一) 之界面设计 Only the original thread that created a view hierarchy can touch its views的相关 Android上的Back键事件捕获 Android蓝牙API之BluetoothSocket类(2) Android蓝牙API之BluetoothSocket类 Android蓝牙API之BluetoothAdapter类(1) Android蓝牙API之BluetoothAdapter类(2) AndroidManifest.xml文件剖析 (三) AndroidManifest.xml文件剖析 (二) AndroidManifest.xml文件剖析 (一) CGI漏洞部题! 怎样令自己的程序不在按Ctrl+Alt+Delete弹出的任务管理器中出现? 如何开发http://www.mobset.com/这样的手机应用程序? 求救! 数据库操作中,内存不能为读,怎么办? 使id号自动加1的方法?? 吸烟成瘾 如何调用com? 有这样的控件么? pb中如何连接局域网中的另一台电脑,并拷贝文件? 我要做毕业设计了,请大家给点建议吧!十万火急,十万火急! 请问,该程序段如何设置组合条件查询? 通信的同步与异步 TreeView中取得节点值时遇到问题!时间太紧了,请帮忙! 招聘上海java程序员 555~~~~~小猪妹我受气了~~刚才去打网络台球,有人骂我好难听的话~~我怎么报仇?? 求助! 十万火急!!!请各位帮忙 有关sql语句的问题,急,(sql = "SELECT id,title,addtime FROM news where special ='是'") 有人知道“达丰电脑”吗?说一下来~~ 请问,在VB中怎么调用 SQL server 的脚本文件?急急急!!! EXCEL、GRADS、SURFER、GRAPHER、MATLAB哪一个好以地图为背景画二维图? 求教高手关于Rose的问题 CComPtr<IFontDisp> 的QueryInterface 问题. 怎么编程实现通过代理服务器访问intenet? 十万火急!!!请各位帮忙 请各位大哥指教:想考研究生,问哪所大学的计算机理论与软件专业最好,能够给出个排名吗,谢谢 如何控制strtofloat所得浮点数小数点后的位数? 有个带有自动生成id的表,做数据窗口时,不能update(), 各位大吓我有一问,今天跟大争明白,大家快来给我做证啊!!! 查找相同字段的sql语句怎么写? 初学c#,感觉完全是在盗用java! 如何将avi文件转换为mpeg文件,帮帮忙了! 关于TPersistentClass使用时遇到的难理解的问题? 有没有谁用起过合计字段? 怎么样成为程序员大本营的用呀! 寻找 日语版的win 2000下载地址 机器在启动是会出现boot.ini非法,由c:/winnt直接启动,请问如何解决呢 Win2000和SCO UNIX共存问题? MSSQL中text数据类型,在JAVA中对应的是哪一个? 怎样才能不让用户复制文档? 如何在VB自定义过程或函数中传递数组? 在VC6中如何使用数据网格 需要类似pcanywhere or romoteanywhere中远程抓屏的源代码?方法提示也可以! 关于数据库中图象的存取问题,100全送! PowerDesigner8 显示与oracle连接信息? PopupMenu如何知道是由哪一个控件激活的(几个控件共用一个PopupMenu) 如何通过序数从DLL引出函数表? 有关datagrid的border问题? 在pb中用SetPicture(lb_image)当lb_image为空时picture的图片不变 (3根号m-3分之2根号n)-(6分之5根号m-6分之1根号n F1、F2为x^2/45+Y^2/20=1的左右焦点,过F1作直线AB交椭圆于A、B,若三角形ABF2的面积是20,求直线AB 设函数F(X)=4X^3+aX+2 曲线Y=F(X)在点P(0,2)处切线斜率为-12,求a;求f(x)在区间【-3,2】上的最大,小值. 若m+m分之1=根号5,则m-m分之1的值为 已知椭圆x^/4+y^=1的左右焦点分别是F1,F2,过原点作直线与椭圆交于A,B两点若三角形ABF2的面积为根号3,求直线方程 a的平方加b的平方等于c的平方的两倍,求cos c最小值 1.下列叙述中,正确的是:A.1mol氧的质量是16gB.已排除C.某物质中含有阿伏伽德罗常数个微粒,该物质的量为1molD每摩尔物质含有6.02*10的23次方个微粒2.同温同压下,氦气的体积两倍于氢气,则氦气 已知不等式x^2-2x-3 配筋为直径10@150双层双向布置.平面布置为3000*4500,如何布置钢筋的受力筋和分布底层筋应该是短筋在下,长筋在上.上层筋是不是同样布置 这两个哪个是正确的?① sio2是硅胶的主要成分② sio2对应的水化物有不同的组成哪个对 过五分之X的平方加四分之y的平方等于1的右焦点作斜率为2的直线与椭圆交A.B两点,O为坐标原点,求三角形OAB面 植筋总面积为4000平米,用直径6毫米和直径12毫米的钢筋个多少? 1.等量镁铝合金粉末分别与下列四种过量的溶液充分反应,放出氢气最多的是( )(给下过程)A.2mol/L的硫酸溶液 B.18mol/L的硫酸溶液C.6mol/L的氢氧化钾溶液 D.3mol/L的硝酸溶液2.举出一个金属元 【椭圆直线】椭圆的中心在原点,焦点在X轴上,过右焦点F作斜率为1的直线交椭圆于A,B.若椭圆是存在点C,是%...【椭圆直线】椭圆的中心在原点,焦点在X轴上,过右焦点F作斜率为1的直线交椭圆于A, x大于等于5时,根号(5-x)^2=___;当x小于-4时,根号(x=4)^2=___ 已知抛物线Y^2=X与抛物线Y=-X^2+4X+2关于直线L对称,则直线L的方程是 如图,椭圆的中心在原点,焦点在X轴上,过右焦点F作斜率为1的直线交椭圆于A,B.若椭圆是存在点C,是%C如图,椭圆的中心在原点,焦点在X轴上,过右焦点F作斜率为1的直线交椭圆于A,B.若椭圆是存在点C 根号2(x-根号3)大于等于根号6(x-1) 已知命题p:函数y=logaX在区间(0,+∞上是增函数 );命题q:关于X的方程x∧2-2ax+4=0有实数根.如 果p∧q为真,求实数a的取值范围. 与抛物线y^2=4x关于直线x=y对称的方程是 怎样写一篇600字的童年趣事作文 已知命题p:f(x)=logax在区间(0,+≠无穷)上是增 命题q:方程x^2-2ax+4=0有实已知命题p:f(x)=logax在区间(0,+≠无穷)上是增命题q:方程x^2-2ax+4=0有实数根若命题‘“p且q”为真,求实数a的取值范 抛物线:C1:y^2=-4x关于直线l:x+y-2=0对称的抛物线C的方程 2x²+5x-3=0 已知函数y=logax在(0,+∞)上是减函数,求函数f(x)=x2-2ax+3在【-2,1/2】上的最大值与最小值. 高一化学 2.3.题 2x²-5x=0 跪求一篇童年趣事的600字作文 已知0《m《1,若m+1/m=6,则根号m减根号m分之一等于几 钢筋接头的概念中,绑扎接头受力钢筋的面积是怎么计算的?比如是接头处两根钢筋面积之和,还是接头处只算一根的面积? 设函数f(x)=6x^3+3(a+2)x²+2ax,是否存在实数a,使函数是在(-无穷,+无穷)是单调函数?答案是先求导f‘(x)=18x²+6(a+2)x+2a.△=36(a²+4)>0.但是△>0 导函数f’(x)不是恒大于零 已知a加a分之一等于m,问m能等于根号3吗 纵向受力钢筋搭接接头面积百分率怎样算?在计算接头面积时,是两条钢筋的面积的总和吗?全部纵筋的面积总和是? 抛物线y^2=4x关于直线l:y=x+2对称的曲线方程是 已知F(1,0)是中心在原点的椭圆x^2/m+y^2/8=1的一个焦点,P是椭圆上的点,定点A(2,1)在椭圆内求|PA|+|PF|的最小值 已知关于x的方程x^2+2mx+2m^2+1=0至少有一个负根 求实数m范围 高一化学题!急!25分!用KMnO4氧化密度为1.19克每立方厘米,溶质质量分数为36.5%的盐酸溶液,反应方程式为:2KMnO4+16Hcl=2kcl+2Mncl2+5cl2{气体}+8H2O1>15.8克KMnO4能使多少克Hcl发生上述反应?有多 求助)已知椭圆的中心在坐标原点,焦点在 x 轴上,以其两个焦点和短轴的两个端点 .已知椭圆的中心在坐标原点,焦点在 x 轴上,以其两个焦点和短轴的两个端点为顶点的四边形是一个面积为 4 的 2x²+3=5x用配方法解出 若曲线C与抛物线x^2=4y关于直线x+y-1=0对称,则曲线C的方程是——为什么只要把x=1-y和y=1-x代入x^2=4y即可? 抛物线y^2=4x关于x=2对称的抛物线方程 PKPM 钢筋和剪扭配筋面积计算下图是PKPM导出的梁配筋面积图请问里面的箍筋和剪扭钢筋的值是怎么计算的?(即这个值需要什么样的配筋方式,不是问这个值由荷载条件怎么求出)最终的配筋 a,b是方程x^2-2mx+3m+4=0的两个实根,求(a-2)^2+(b-2)^2的最值 已知椭圆x^2/a^2+y^2/b^2=1(a>b>0)的右焦点为F(2,0),M为椭圆的上顶点,O为坐标原点,且△MOF是等腰直角三角形(2).过点M分别作直线MA,MB交椭圆于A,B两点,射两直线斜率分别为k1,k2,且k1+k2=8,证明:直 已知关于x的方程X^2-2mx-m+12=0的两个根都大于2,求实数m的取值范围. x^2+px+q型的因式分解1.(a+b)^2-(a+b)-12 2.x^4-4x的2次+3 3.x^2-10xy+24y^2公式:x^2+(a+b)x+ab=(x+a)(x+b) 已知椭圆的中心在坐标原点,他在x轴上的一个焦点F与短轴的两个端点的连线互相垂直,且此焦点F和长轴上...已知椭圆的中心在坐标原点,他在x轴上的一个焦点F与短轴的两个端点的连线互相垂 2x²*5x+3大于等于0 童年趣事 作文 已知角a的终边过点P(m,-1),且cosa=-3/根号10,则m等于 注写梁底部贯通纵筋(不应少于梁底部受力钢筋总截面面积的1/3),请问括号里是什么意思呢? 已知a是实数,函数f(x)=2ax+2x-3-a,如果函数y=f(x)在区间[-1,1]上有零点,求a的取值范围我只想知道a可以=-1吗? 椭圆x2/45+y2/20=1的焦点分别是F1,F2,过原点O做直线羽椭圆相交与A,B两点,若三角形ABF2的面积是20,则线AB的方程是? a平方加2倍的b平方等于6,求a+b最小值 我是文科生, x^2+px-4求p(整数范围内可以因式分解 已知椭圆x^/4+y^=1的左,右焦点分别为F1,F2,过原点做直线与椭圆交于A,B两点,若△ABF2的面积为根号3 ,求直线方程 a平方加2倍的b平方等于6,求a+b最小值 已知a是实数,函数f(x)=2ax^2+2x-3-a,如果函数y=f(x)在区间[-1,1]上有零点,求a的取值范围 已知椭圆x^2/45+y^2/20=1焦点分别为F1、F2,过中心O作直线与椭圆交于A、B,△ABF2面积最大时求此时直线AB方 已知a的平方加2倍b的平方等于b,求a+b的最小值?急.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘