delphi7的入门学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi7的入门学习相关的知识,希望对你有一定的参考价值。

我是一个电脑编程文盲 几乎没有任何基础 学过的一点VB但是也就是知道有编程这回事 想要从零开始学习delphi
我应该首先做什么 在做好之后继续做什么 就是有个学习计划 最好解释的能不要太专业 如果能提供些学习资料的信息就更好了
分对我来说没有任何意义 请不要粘贴长长的垃圾答案与教程 希望程序员朋友能给予指点
如果有必要我可以再加分

既然你已经对vb有所了解,为什么还要学delphi?
两者没有区别。但是vb更简单,更实用。
如果你学会了vb,其他语言只是语法上的区别而已。如果你要走编程这条路,vb足够应付一般的商业程序了。当然如果你要深入到非常底层的话,就只有学习汇编和C语言了。实际一点就学vb好了,除了操作系统、杀毒及海量数据处理外,什么都可以做。
如果你能精通vb,delphi也就2天就会了。
----
建议你先看计算机原理,软件工程对编程有基本的认识后,再看vb就非常容易了。如果你是电脑编程文盲的话,直接看任何编程的书都比较困难的。
参考技术A 对象与内存

delphi 中的内存管理项遵循三条规则

每个对象在其可以使用之前必须被创建

每个对象在其使用之后必须被解除

每个对象必须只能解除一次

继承已有类型

delph中,为了继承一个现有类,只需要在新类声明的开处指出该类.例:

TYPE

TFORM1=CLASS(TFORM)

END;

这个简单垢定义表示TFORM1类继导了TFORM类所有对象方法,字段,属性和TFORM类的事件,用户可以为TFORM类型的对象调用TFORM类的所有公用对象方法.同时TFORM也会从其他类继承一些对象方法,如TOBJECT基类.

保护字段与封装

怎样使派生类与父类不同单元(如果派生类访问了父类的专用字段PRAVATEPROTECTED)。就必须将专用字段声明为保护类型,或者在父类中添加一个简单的对象方法来读取专用元素的值。

delphi中一个类的专有和受保护数据都可以由与该类在同一单元中的函数方法访问。一量将类(包含PROTECTED保护的),在其它单元将不能直接访问PROTECTED中的,(换句话说PROTECTED只在在类的声明单元内使用)。解决办法在其它单元内声明派生类(这个违反封装规则).派生类自动继续父类的保护字段(详细请查看DELPHI入门到精通54-55页)

type
TControlHack = class (TControl); //声明一个派生类,这样可以访问父类的保护字段

procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
for I := 0 to ControlCount - 1 do
TControlHack (Controls [I]).Text :=
TControlHack (Controls [I]).Text + '*';
end;

继承与类型的兼容性

也就是可以将派生类对象赋给父类对象,但不可逆,否则错误;

滞后绑定与多态性

PASCAL函数和过程通常基于静态绑定或超前绑定,即由编译器或连接器来解析对象方法的调用,将请.

面向对象编程语言允许使用另一种绑定方式,叫做动态邦定或滞后绑定,这种只有在运行时只能确定所调用对象方法和实际地址(确定实例类型是父类或派生类的实例利用虚方法重载方法)..这种技术叫多态性.

覆盖\重定义方法

在承类中覆盖一个滞后绑定对象的方法,需要使用关键字OVERRIDE,然后,值是注意:只有在父类中将对象方法定义为虚拟类型后,才能进行覆盖.如果是一个静态类型的对象方法,就没有办法激活滞后绑定.

消息处理

滞后绑定的对象方法也可用于处理一条WINDOWS消息,DELPHI提供了另一个MESSAGE指令,用以定义消息处理对象方法,访方法必须是带有VAR参数的过程.MESSAGE指 令后加上对象方法想要处理的WINDOWS消息编号.

抽象方法

关键字ABSTRACT用于声明只在当前类的子类中定义的对象方法.ABSTRACT指令可完整地定义对象方法,它不是正向声明语句.

为什么要使用抽象象方法:原因很简单,多态性的需要,如果类TANIMAL含有抽象象方法VOICE,那么每个子类都能重定义它,如果有抽象方法VOICE,则每个继承类都必须要重新定义它.

delphi类型安全转换

delphi派生类的类型兼容原则允许程序员在希望使用父类的位置使用用派生类//有点难理解,前面不是讲派生类实例可以赋给父类实例吗,父类实例不可以给子类实例的.

if myanimal is tog then //判断否则类型使用IS操作符或是TOBJECT类的INHEFITSFROM对象方法来查询该信息,IS操作符参数是一个对象与一个类的类型,返回值是个BOOLEAN值.

AS操作符的参数是一个对象和一类的类型,结果是被转换为新类 类型的对象.可以写下列是代码:

mydog:=myanimal as tdog;

TEXT:=MYDOG.EAT;

(myanimal as tog).eat; east是一个成员函数;

delphi 接口

为什么使用接口:当定义一个抽象类表示带层次结构的基类时,会发现抽象类是如此此抽象,以至于它只列出一出一系列虚拟函数,而没有提供任何实际的实现代码.这种纯抽象类还可以使用另一种特殊技术,接口.

接口特点:接口被看成一个完全独立的元素,具有与众不同的特性;

Android Support Library 学习入门

0. 文前闲话

        作为一个由原生桌面应用程序开发者(VC、Delphi)转行的Android菜鸟,虐心的事真是数不胜数:安装个开发工具下载个SDK需要整整一夜;早晨一上班点开Android Studio(简称AS),去倒个水回来了还不见它开始工作;开发工具一忙起来就会忘记你这个开发者,不知过了多久后才给你一句:“去TMD的GFW,我啥也没干成,你自己看着办吧!”。

        对于我们这些已经被微软、Borland、Sybase洗脑多年的开发者,除了开发工具的不适应,最大的壁垒其实是大脑中已经固有的思维方式,往往在接受新概念时总要习惯性的去跟以往已经认知的东西做对比,这就要比一个New Comer耗费更多的时间和体力。比如说本文要谈的Android Support Library,一直被我望文生义的当做系统底层的支持库,在我的身边不停的出现,可是始终没有进入我的脑袋。于是经过一番搬梯FQ,查阅了官网资料,在这儿试着弄个水落石出。

        要想真正的掌握Android Support Library,没有其它什么捷径,窍门。只有一条路,就是阅读官方的API参考,一个类一个函数的逐个搞明白。那就让本文做你开始品尝"API参考"大餐前的一道开胃菜吧。

 

1. Support Library 介绍

        官方文档上(原文:http://developer.android.com/tools/support-library/index.html)第一句话就指明了Support Library的作用:“Android Support Library代码包使新版本的Android框架中的最新特性能够兼容之前版本Android框架“。也就是说Support Library为不断升级的Android系统提供了向下兼容性。

        上面的翻译还是不太直白,还是打个比方吧:假设Google发布的新版本Android API提供了一个新特性:你只需要调用一个简单的api函数就可以实现在App应用出现车辆照片时自动识别车辆品牌,并振动提醒用户,真是太酷了。可是你调用这个api写出的App应用在旧版Android手机上却无法展示如此狂拽酷炫diao炸天的车震特效,甚至都无法安装运行,真是让人沮丧。这时候就该Support Library出马了,Support Library可以让新api特性在指定版本的Android上也能正常运行。(请注意这里的“新api特性”和“指定版本”,在使用Support Libary时,首先要确定这两点:你要使用什么新api特性以及最低支持到哪个版本的Android。)

        对于做过VC++开发的,Google的这种兼容方式看着太眼熟了。每一次Visual Studio的升级都会带来新版本的MFC库,程序发布时一定要同时打包相应版本的MFC库,才能在各个版本的Windows中运行。只是Google没有直接通过Google API库来实现这种兼容性,而是单独搞出个Support Library来。

        官方文档上提到,对于应用开发者,根据应用程序支持的系统版本和使用的API函数,最好在Android工程中包含相应的Support Libary以使用新特性,这样不仅可以把你应用程序的界面由穷D丝变成白富美,更重要的是可以扩大你的用户群体。

        对于Android开发者,由于要面对各种各样的设备类型、高低不同的系统版本,因此在由一坨Android开发的小鲜肉变成老腊肉的演变过程中,能够熟练处理兼容性问题是必不可缺的基本功之一。为此要熟知每一个特性是在哪一个API level上加入的,在查阅官方手册Api Reference时多留心右上角的API level。

 

技术图片

 

        另外还要把下一节所介绍的Support Library Features原文多读几遍。

 

2. Support Library Features

        Support Library其实是多个库(jar包)的组合,这里不得不说,它的jar包名比较有迷惑性,对于我这样的初学者来说,容易形成错误的“想当然认知”判断。例如下面的

    com.android.support:support-v4:21.0.0

        我一开始就粗心的把v4当成了版本号(21.0.0才是真正的版本号),因此总是迷惑什么情况选择v4版,什么情况选择v7版?是不是还有v5, v6?其实v4、v7都是Support Library中不同的库名称而已。包名中的v4不是版本号,只不过表明了它不凡的身世:“我的诞生,是为了照亮Android1.6(API  level 4)用户的!”

        Support Library的第1版(2011年3月发布)就只包含v4库,之后的版本不断地在完善v4库。一直到2年后(2013年5月)的第13版,为了兼容API level 7(android2.1)增加了v7这个库(v7其实也是一组库的组合)。此时已经Android4.3(API level 18)的时代。

        随着Google为了提升用户体验,不断的解决版本兼容性问题,Support Library也越来越大。除了v4和v7这两个最常用的库,Support Library Features还包含了其它10几个库(不知将来Support Library是否会有终点?),关于每一个库的功能特性,在原文中(http://developer.android.com/tools/support-library/features.html)有详细的论述。在这里,只把Support Library包含的库名罗列一下。

  • v4 Support Library

  • Multidex Support Library

  • v7 Support Libraries(注意是复数,因此是一组库)

    • v7 appcompat library(这个最常用吧)

    • v7 cardview library

    • v7 gridlayout library

    • v7 mediarouter library

    • v7 palette library

    • v7 recyclerview library

    • v7 Preference Support Library

  • v8 Support Library

  • v13 Support Library

  • v14 Preference Support Library

  • v17 Preference Support Library for TV

  • v17 Leanback Library

  • Annotations Support Library

  • Design Support Library

  • Custom Tabs Support Library

  • Percent Support Library

  • App Recommendation Support Library for TV

        由于v4 Support Library和v7 Support Librarys主要涉及程序组件,新的用户界面特效,网络连接等比较基础的变动,因此我们平时比较常用到。

3.  Support Library的安装

        如果你使用的是Android Studio(像我一样的菜鸟肯定选AS了,用过eclipse开发Android的老鸟请飞过这一节),Support Library的安装和使用非常简单。只需要打开SDK Manager,点几下鼠标,再加几行代码就行了。不信请看:

3.1 下载

        打开SDK Manager:

 

技术图片

        官网专门指出,如果你使用Android Studio,选择并安装 Android Support Repository ,不需要选择Android Support Library。

3.2 在程序中加入Support Librarys

        在官网介绍中,根据带资源和不带资源两种库分别介绍了不同的使用方法,实际上只是针对eclipse而言。如果使用Android Studio,使用方法是一样的:只需要打开build.gradle文件,增加下面的代码(以v4库为例):

dependencies 
    ...
    compile "com.android.support:support-v4:18.0.+"

        剩下的事,就是在代码中使用你需要的类了。

        官方提醒:在应用程序中包含了Support Library后,强烈建议在发布程序前,使用ProGuard工具对发布包进行优化。这样除了能够保护你的源码不被别人用反编译工具获取,同时它把你程序所引用的第三方库中并未使用的类都去掉了,让你的应用程序保持尽可能的小,别忘了,手机上的存储可是寸土寸金啊!

3.3 修改Manifest文件

        既然你已经使用了Support Library,现在你的应用程序只差一步就能横行天下,兼容更多的系统版本了。那就是修改Manifest文件中的版本声明。打开Manifest.xml文件,找到android:minSdkVersion一项,把它修改的足够的低。

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="17" />

        你也许会问:“我改了Manifest.xml给谁看?”。是的,它还真不是给人看的。上面的Manifest.xml告诉Google Play(谷歌官方应用商店),你的程序可以安装在Android 2.1(API 7)版本之上的设备上,低于这个版本的,我猜应该就不给装了。因为我还没用过Google Play(暗自一阵脸红),国内的软件应用商店好象没有版本提示,我只见过Apple的应用商店是进行版本判断的。

4. 结束语

        在企业应用中,除了专业化较强的原生桌面应用程序,大多数业务系统已经迁移到了B/S架构的Web方式,随着移动互联网的普及,大量的应用程序将向手机迁移,这里面也会包括原有少量的桌面应用程序。原生桌面应用程序的生存空间越来越小,反之则出现了大量新的移动应用需求,新的机会慢慢来临。原生桌面程序开发人员,为了不被这个时代所淘汰,尽快掌握Android开发吧。路漫漫其修远兮,吾只能不停的上下折腾。     

以上是关于delphi7的入门学习的主要内容,如果未能解决你的问题,请参考以下文章

Python入门学习指南--内附学习框架

Python入门学习指南--内附学习框架

Python入门学习指南--内附学习框架

Python入门学习指南--内附学习框架

Python入门学习指南--内附学习框架

Python入门学习指南--内附学习框架