看流星社区

 找回密码
 注册账号
查看: 3891|回复: 4

[Delphi] VB与Delphi的一些区别(给初学D的朋友)

[复制链接]

该用户从未签到

发表于 2011-4-4 09:42:19 | 显示全部楼层 |阅读模式
Delphi的其中大部分人都可能是从其它语言转过来的(如VB),为了帮助各位新手尽快了解Delphi这一强大的编程工具,我花了一小点时间写了一篇关于VB与Delphi之间的一些区别的文章,希望对大家有帮助.
1,VB与Delphi之间的赋值语句.          这里我拿两段代码的对比进行讲解,希望能快速帮你了解它们之间的不同.这里先看VB的然后看Delphi(后面相同).VB:            a=b
            b=c
            c=a
         
            s="hello"
   
Delphi:            a:=b;
            b:=c;
            c:=a;
         
            s:='hello';
   
          从上面,我相信大家已经看的很明白,VB语句简短,一个等于号就OK了,但是Delphi的赋值语句为冒号加等于号,而且每句后面都要加个分号作结尾,另外注意字符串赋值,在VB中使用双引用"",但在Delphi这里使用单引用'',别搞混淆了.呵呵,也许看到这里有些人就不痛快了,感觉Delphi语法如此繁琐!虽然这样,但是你不得不接受现实,因为两种基本的语法都不一样,所以每一种语法有每一种语法的风格.VB呢为Basic语法,Delphi为 Pascal语法.以后有人问起别说我没教哦...
2,VB与Delphi之间的声明VB:            Dim a As String
            Dim b As Boolean
         
            Dim i As Integer,j As Integer
         
Delphi            var
                    a:string;
                    b:Boolean;
                    i,j:Word;
         
          VB中声明使用关键字Dim,在Delphi使用Var,并且不用向VB那样重复写.在VB中使用 Dim i,j As Integer 声明是一种错误的方法,但在Delphi却不同.正确写法如上.
3,VB 与Delphi之间的变量          其实在Delphi中比较多,我不可能全部写上来,建议大家买一些教材书看看,教材书是一定要的,否则你不可能从本文中学到所有Delphi与VB之间的区别知识.下面我列举VB与Delphi之间的一些变量区别:VB
         
            Boolean        占2字节
            Integer          占2字节
            Long              占4字节
            String  
            Byte              占1字节
            Single            占4字节
            Double          占8字节
            Currency      占8字节
         
Delphi
         
            Short            占1字节
            Boolean        多种形式,1,2,4
            Word            多种形式,2,4.相当于VB中的Integer
            Integer        多种形式,1,2,4.相当于VB中的Long
            Int64            占8字节 这里需要注意,Delphi已经有64位的,但VB....唉...
            String
            Byte              占1字节
            Single          占4字节
            Double          占8字节
            Currency      占8字节
            Extended      占10字节
         
          还有很多很多,建议参考教材书.
4,VB与Delphi之间的判断语法、代码块与结构.          还是同上面一样,我拿VB与Delphi进行对比一下大家就可以看出个所以然来了.VB:            if a>b then
            ......
            end if
         
            if a<=b then
            ......
            end if
         
            if a=b then
            ......
            end if
         
            if a<>b then
            ......
            else
            ......
            end if
         
VB中简化以后:            if a>b then ...
         
            if a<=b then ...
         
            if a=b then ...
         
            else语句无法再简化
         
Delphi:            if a>b then
            begin
            ......
            end;
         
            if a<=b then
            begin
            ......
            end;
         
            if a=b then
            begin
            ......
            end;
         
            if a<>b then
            begin
            ......
            end
            else
            begin
            ......
            end;
         
            在Delphi中上面需注意,在if语句中使用begin...end;遇到else时,因把end;后面的分号去掉,如上.
         
Delphi中简化同VB一样            if a>b then ...
         
            if a<=b then ...
         
            if a=b then ...
         
            if a<>b then
                    ......
            else
                    ......
                 
            在Delphi中使用上面简化代码时,不能包函太多语句,一般只允许调用一条语句,否则出错.
         
          熟悉VB的话你可以很明显的看出之间的差别,另外在then后面delphi与VB有所不同,VB呢是直接 if...then...end if,而Delphi是if...then begin...end;,其实Delphi这里的begin...end 就相当于VB从then到end if,只不过Delphi在一些判断等语句后面需要写代码的地方加上begin...end;这样就会显得很有结构感.也许这句话表达起来有些让你困惑, 但是会用代码帮助你理解这些东西.          提示:Delphi赋值语句的为 a:=b; 但在判断语句中应该写成 if a=b then 这样.这里我以前学的时候老搞错,我现在在这里给大家作个提醒,希望大家别跟我一样犯错误.
          这里我们打开Delphi 7,当然你如果使用更高版本的话也同样,因为Delphi的兼容很好,不像VB,这一点让我比较满意.然后双击窗体Form,接着出现了一段代码:procedure TForm1.FormCreate(Sender: TObject);
beginend;从这里我们可以与VB的对比一下:Private Sub Form_Load()End Sub          可以看出VB的代码确实比较简洁,也难怪很受欢迎.好了,话入正题.这两段代码分别是VB与Delphi窗体创建时所产生的事件,从这段可以看出在 Delphi中,我们是把代码写在begin...end之间,而VB是Sub..End Sub,可以看看两者其实相差不了多少!而这两者之间我们可以统称为代码块.也就是说在用Delphi写代码的时候,当你写出begin,就一定要使用 end;(注意每句end后面要加上;分号)进行结束收尾工作,否则代码出错别找我哟...再看结构,如下:VB:            select case i
                    case 1
                            msgbox "1"
                    case 2
                            msgbox "2"
            end selectDelphi:            case i of
                    1:
                    begin
                            showmessage('1');
                    end;
                    2:
                    begin
                            showmessage('2');
                    end;
            end;
         
            上面如果有一条语句可简化成以下方式:
         
            case i of
                    1:showmessage('1');
                    2:showmessage('2');
            end;          在VB中选择结构为select case X...end select,在Delphi中为case X of...end;注意区分.其中的分支在VB中需要使用case关键字,而在Delphi中可以直接把判断结果写上去,然后后面标上冒号即可.          另外这里我需要提到一点的是,在VB中可以使用select进行判断字符串,但是在Delphi这是不允许的,但是我们可以通过另类方法实现,如下:VB:            select case s
                    case "a"
                            msgbox "a"
                    case "b"
                            msgbox "b"
            end select            VB中可以实现字符串判断
         
Delphi
         
            在进行之间需要写一个子函数进行处理
            function CaseStr(const s:string;const x:array of string):string;
            var
                    i:integer;
            begin
                    //low high 这里是计算 x 数组中的低位到高位,从0开始,相当于VB的 0 to uBound(X)
                    for i:=low(x) to high(x) do
                    begin
                            if x[  i  ]=s then
                            begin
                                    Result:=i;
                                    Exit;
                            end
                            else
                                    Result:=-1;
                                 
                            //这里的Result:=,相当于VB的CaseString=
                    end;
            end;
         
            case CaseStr(s,['a','b']) of
                    0:showmessage('a');
                    1:showmessage('b');
            end;         
总得看来并不是很难,基本上只要稍微掌握一点点Delphi语法就基本上可以写得出来了.这里主要是对于刚刚从VB转到Delphi的初学者有所帮助.现在的Delphi真的很强大,用Delphi几乎可以实现任何功能,编写出任何程序,有人说VB中不可以内嵌汇编,但用在Delphi身上显然不合适.所以说你如果选择了这门语言,我敢说,你选择对了!

该用户从未签到

发表于 2011-4-4 09:44:18 | 显示全部楼层
写得非常好,想当年大概95年前后,我也是从VB转到DELPHI的,当时就在两种语言的不同表达方式上犯了不少错,走了不少弯路,要是当时有人这么把两者之间的区别整理出来就好了,呵呵。所以建议从VB转到DELPHI的人都看看,这样至少可以少犯些表达方式方面的错误。

该用户从未签到

发表于 2011-4-4 09:44:32 | 显示全部楼层
简单明了,原来只是小小改变,但是开始就对DEiphi觉得麻烦,所以不看了。。现在好像有趣了。。
谢谢。。

该用户从未签到

发表于 2011-4-4 09:44:41 | 显示全部楼层
我喜欢delphi  比vb 好 用 还有好多控件可以

该用户从未签到

发表于 2011-4-4 09:44:54 | 显示全部楼层
正要转到delphi。。突然就发现了好文章
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-20 18:25

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表