| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5147 人关注过本帖
标题:业余的程序员用VB,真正的程序员用VC,聪明的程序员用Delphi
只看楼主 加入收藏
swgweb
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2004-4-8
收藏
 问题点数:0 回复次数:44 
业余的程序员用VB,真正的程序员用VC,聪明的程序员用Delphi
看实例学Delphi编程思路和技巧   在编程爱好者中流传着这样一句话:“业余的程序员用VB,真正的程序员用VC,聪明的程序员用Delphi”。这当然不尽贴切,但从中不难体会到Delphi作为Windows下的主要编程工具之一,其功能完善、灵活多变且易学易用的特点。 下面,我们就通过四则具体的实例来学习Delphi编程的一般思路和技巧。 将程序加入启动 Windows自启动的信息存放于注册表HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run中,Delphi为程序员提供了专用于注册表操作的类型TRegistry:首先利用它声明一个变量,变量的RootKey属性表明当前是对哪一个根键进行操作;使用变量的OpenKey方法打开子键,使用ReadString方法读子键内容,使用WriteString方法写入子键内容。可以自定义一个过程AutoRun来实现此功能,格式为:AutoRun(任意名称,要自动运行的程序名)。实例如下: implementation uses Registry; //声明注册表单元 procedure AutoRun(sCaption,sExeName:string); //sCaption为项目名称,sExeName为程序名 var RegF:Tregistry; //定义变量RegF begin RegF:=Tregistry.Create; //创建变量 RegF.RootKey:=HKEY_LOCAL_MACHINE; //指定要操作的根键 if RegF.Openkey('Software\Microsoft\ Windows\CurrentVersion\Run',true) then RegF.WriteString(sCaption,sExeName); RegF.Free; //释放变量 end; procedure TForm1.Button1Click(Sender:TObject); begin AutoRun('MyAutoRun',Paramstr(0)); //调用过程,Paramstr(0)函数返回带路径的程序名 end; 实现文件拷贝 在本例中,我们使用数据压缩的API函数LZCopy来实现一个文件拷贝的过程,其调用格式为:CopyFile(源文件名,目标文件名。 implementation uses LZExpand; procedure CopyFile(sFileName,dFileName:String); var sFile,dFile:file; begin AssignFile(sFile,sFileName); Reset(sFile); AssignFile(dFile,dFileName); Rewrite(dFile); LZCopy(TFileRec(sFile).Handle,TFileRec (dFile).Handle); CloseFile(sFile); CloseFile(dFile); end; 避免多次打开同一程序 Windows是一个多任务的操作系统,允许用户同时打开多个实例,但这样做有可能会造成不良后果。例如:自己设计屏幕保护程序时,只要屏保程序已经被打开运行,就不能再运行其第二个实例;如果不加以限制,则可能出现每隔一定时间就运行一个屏保程序的不正常情况。 要使系统只能打开程序的一个实例,需要对工程文件(*.dpr)进行少许改动,使用API函数FindWindow,其格式为:FindWindow(窗体类名,窗体标题),返回一个窗体的句柄或零(如果没有找到窗体)。假设程序主窗体的标题为MainForm,则工程文件的具体代码如下: program Project1; uses Forms,Windows, Unit1 in 'Unit1.pas' {Form1}; var Hwnd:THandle; begin Hwnd:=FindWindow('TForm1','MainForm'); //查找是否已有窗体MainForm if Hwnd<>0 then begin SetForegroundWindow(Hwnd); //激活已运行的程序实例,但程序最小化时无效 Application.Terminate; //终止本次实例 end else begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run;//运行本次实例 end; end. 限制窗体的大小 当编程者为窗体选择可变化的边框时,用户可以按自己的意愿拖动边框,改变窗体大小。Delphi为窗体和所有控件提供了一个特殊的属性:Constraints。只需为Constraints属性的子属性设置合适的最大值与最小值,就能建立一个大小不超过指定限制的窗体或控件。我们可以将这些语句放在窗体创建事件中(FormCreate): procedure TForm1.FormCreate(Sender: TObject); begin form1.Height:=200; form1.Width:=300; form1.Constraints.MaxHeight:=400; form1.Constraints.MaxWidth:=600; form1.Constraints.MinHeight:=100; form1.Constraints.MinWidth:=150; end;
搜索更多相关主题的帖子: Delphi 程序员 业余 
2004-04-12 18:32
忍天
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2004-3-30
收藏
得分:0 
不同意!

/yszan.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://z./yszan.gif');}" onmousewheel="return imgzoom(this);" alt="" />
2004-04-12 21:48
静夜思
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:济南的冬天
等 级:管理员
威 望:11
帖 子:8902
专家分:2567
注 册:2004-3-25
收藏
得分:0 
现在C#炒的很热

畅所欲言
2004-04-18 19:30
firechun
Rank: 1
等 级:新手上路
帖 子:135
专家分:0
注 册:2004-4-13
收藏
得分:0 
涉及语言之争,不好。

本人在编程中国发表的所有文章,除特别说明外均属原创,转载时请注明作者编程中国
2004-04-21 16:12
asdliu
Rank: 1
等 级:新手上路
帖 子:175
专家分:0
注 册:2004-4-21
收藏
得分:0 
他说的有道理呀,vb是真的不行了,一直在走下坡路,c++和c#还有。net和jave等才是现在最流行的呀,我的同学现在都不学vb了,我以前也学vb,可是我的一个北大的同学说那没有前涂的,现在只要有/c#/jave/c++,无论那个程序都可以搞定的,他现在是ibm的实习生,我以前觉得无论学什么语言,只要学好就没什么不行的,听他一说,我心非意冷了,就改学c++了,不知道我的这种做发对不对,希望大家说说吧

阳光版主欢迎您
2004-04-21 21:51
学习者
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2004-4-23
收藏
得分:0 

我也不同意!!

这怎么都是版主在说话,在各位面前我都不好意思说话了。——太菜了

2004-04-23 19:42
griefforyou
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:3336
专家分:0
注 册:2004-4-15
收藏
得分:0 
呵呵,王婆卖瓜,自卖自夸

天津网站建设 http://www./
2004-04-24 11:34
tvrc200379
Rank: 1
等 级:新手上路
帖 子:351
专家分:0
注 册:2004-3-30
收藏
得分:0 

都是一样的啊,Delphi也不怎么样啊!


我是灌水天堂的新版主,请新老用户来报道啊 (欢迎来灌水。。。) 哈哈哈。。。。 http://websx.home./bbs/list.asp?boardid=35
2004-04-24 16:18
C++大粉丝
Rank: 4
等 级:贵宾
威 望:10
帖 子:477
专家分:0
注 册:2004-4-23
收藏
得分:0 
晕~没有我们VC的事儿,还是不绞合了~~

I am a big fan of c plus plus.
2004-04-26 23:56
yangguofa
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2004-5-5
收藏
得分:0 

优点各自存在!!!

不过我个人比较喜欢DELPHI


/bbs/UploadFile/2005-3/2005320191459674.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www./bbs/UploadFile/2005-3/2005320191459674.gif');}" onmousewheel="return imgzoom(this);" alt="" />
2004-05-07 12:02
快速回复:业余的程序员用VB,真正的程序员用VC,聪明的程序员用Delphi
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016248 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved