摘要: 关于线程的原理:其实并没有真正的多线程,所谓的多线程只不过是CPU的执行效率高,将任务分成多个点,基本能达到同时执行的效果.关于Delphi下的多线程的应用需要说明的是:同时开启的线程数以及线程执行的方法都会影响cpu的执行效率,一般的情况下,能不用线程就不要用;下面写一个Delphi的多线和应用的例子:----------------------------多线程的申明type TmapQueryThread=class; TmapQueryThread=class(TThread) private vehicleId:string; Lon:integer; Lat... 阅读全文
posted @ 2012-02-15 17:20 Sam.山子 阅读(3334) 评论(1) 推荐(1) 编辑
摘要: http://topic.csdn.net/u/20120111/18/2DACB0AB-1C29-4AB7-9EF9-F53D5B0A8CD6.html C#串口操作资料 阅读全文
posted @ 2012-01-19 15:30 Sam.山子 阅读(205) 评论(0) 推荐(0) 编辑
摘要: ///////////////////////----------参数说明---------------------////////////////////////h:窗体中控件的句柄(用在某个控件上提示消息)(要调用的控件句柄)//text:要提示的文本//cap:提示框上的标题//IconType:提示框上显示的图标(共三个值。1、2、3分别为提示、警告、错误s)//t:消息停留的时间(以毫秒计算)//left: 消息框偏离控件的左距离,设为0则表示没有//top: 消息框偏离控件的顶距离,设为0则表示没有procedure TFrmMain.QiPaoShowMessage(h:HWND 阅读全文
posted @ 2011-09-22 16:17 Sam.山子 阅读(3958) 评论(0) 推荐(0) 编辑
摘要: 逻辑查询处理的各个阶段sqlserver select 执行顺序(5) select (5-2) distinct(5-3) top (<top_specification>)(5-1)<select_list>(1) from(1-j)<left_table> <join_type>join <right_table> on <on_predicate> |(1-a)<left_table> <apply_type> apply <right_table_experssion> as 阅读全文
posted @ 2011-08-12 00:13 Sam.山子 阅读(649) 评论(1) 推荐(0) 编辑
摘要: 逻辑查询处理的各个阶段sqlserver select 执行顺序(5) select (5-2) distinct(5-3) top (<top_specification>)(5-1)<select_list>(1) from(1-j)<left_table> <join_type>join <right_table> on <on_predicate> |(1-a)<left_table> <apply_type> apply <right_table_experssion> as 阅读全文
posted @ 2011-08-12 00:11 Sam.山子 阅读(860) 评论(0) 推荐(1) 编辑
摘要: 多态1什么是多态?1.1概念多态的概念众说纷纭,下面是几种代表性的说法:“This ability to manipulate more than one type with a pointer or a reference to a base classis spoken of as polymorphism” (《C++ Primer》第838页)。即用基类的指针/引用来操作多种类(基类和其派生类)的对象的能力称之为多态。它是从语言实现的角度来考虑的。“polymorphism provides another dimension of separation of interface fr 阅读全文
posted @ 2011-07-27 18:20 Sam.山子 阅读(669) 评论(0) 推荐(0) 编辑
摘要: 1、弹出窗体要想在一个窗体中弹出另一个窗体,方法如下:uses 窗体单元名;formName.show;formName.showmodel 返回一个窗体状态句柄。关闭窗体:close;2、关于禁用最大最小化窗体方法设置窗体的boderstyle为:bsTooWind3、Delphi 7 读写文件方法var fp:TextFile; fileName:string;//获得项目根目录fileName:=ExtractFileDir(Application.ExeName)+'\FrmSetColumn.ini';//当前项目目录下的文件try assignfile(fp,fil 阅读全文
posted @ 2011-07-20 14:43 Sam.山子 阅读(1152) 评论(0) 推荐(0) 编辑
摘要: 下面创建第一个程序 Hello World 程序!最后显示界面如下:下面我们让窗体创建显示的时候打印出Hello World!代码如下:procedure TForm1.FormCreate(Sender: TObject);begin ShowMessage('Hello World !');end;下面单击运行:还可以从控制台输出的方式完成该程序:编写如下代码:uses SysUtils;begin { TODO -oUser -cConsole Main : Insert code here } WriteLn('Hello World!'); ReadL 阅读全文
posted @ 2011-07-10 19:13 Sam.山子 阅读(613) 评论(2) 推荐(1) 编辑
摘要: Delphi 的各文件后缀名介绍:1、项目文件(.Dpr):Delphi项目文件,用于保存窗体、单元等信息,以及程序运行的初始化代码等,这种文件实际上包含了Pascal源代码。2、单元文件(.pas):Pascal文件,用于保存程序源代码,可以是与窗体有关的单元或是独立的单元(相当于.net的.cs文件)3、窗体文件(.Dfm):保存窗体或数据模块及其构件特性的二进制文件(相当于.net的.aspx文件)4、选项文件(.Dof):含有当前项目选项设置的文本文件。5、Package源文件(.DPK):软件包的项目源代码文件,用于管理Packages信息。6、资源文件(.res):该二进制文件包含 阅读全文
posted @ 2011-07-10 18:50 Sam.山子 阅读(1755) 评论(0) 推荐(0) 编辑
摘要: 为了完全支持OLE,32位Delphi 增加了Variant 数据类型,本节将从宏观角度来分析这种数据类型。实际上,Variant类型对Pascal语言有普遍而深入的影响,Delphi 控件库中与OLE 无关的地方也使用到这种类型。Variant变量没有类型一般说来,你可以用Variant 变量存储任何数据类型,对它执行各种操作和类型转换。需要注意的是:这违反了Pascal 语言的一贯原则,有悖于良好的编程习惯。variant 变量的类型检查和计算在运行期间才进行,编译器不会提示代码中的潜在错误,这些错误在进一步测试中才能发现。总之,你可以认为包含variant变量的代码是解释性代码,正如解释 阅读全文
posted @ 2011-07-10 18:23 Sam.山子 阅读(12442) 评论(0) 推荐(1) 编辑
摘要: Delphi 4 的动态数组传统的Pascal 语言其数组大小是预先确定的,当你用数组结构声明数据类型时,你必须指定数组元素的个数。专业程序员也许知道些许动态数组的实现技术,一般是采用指针,用手工分配并释放所需的内存。Delphi 4中增加了非常简单的动态数组实现方法,实现过程效仿我前面讲过的动态长字符串。与长字符串一样,动态数组的内存动态分配并且引用记数,不过动态数组不支持 copy-on-write 技术。这不是个大问题,因为你可以把变量值设置为nil释放数组内存。这样你就可以声明一个不指定元素个数的数组,并用SetLength 过程给数组分配一个特定大小的内存,SetLength 过程还 阅读全文
posted @ 2011-07-09 16:05 Sam.山子 阅读(617) 评论(0) 推荐(0) 编辑
摘要: Delphi 中字符串的操作很简单,但幕后情况却相当复杂。Pascal 传统的字符串操作方法与Windows 不同,Windows吸取了C语言的字符串操作方法。32位Delphi中增加了长字符串类型,该类型功能强大,是Delphi 确省的字符串类型。字符串类型在Borland公司的Turbo Pascal和16位Delphi中,传统的字符串类型是一个字符序列,序列的头部是一个长度字节,指示当前字符串的长度。由于只用一个字节来表示字符串的长度,所以字符串不能超过255个字符。这一长度限制为字符串操作带来不便,因为每个字符串必须定长(确省最大值为255),当然你也可以声明更短的字符串以节约存储空间 阅读全文
posted @ 2011-07-09 15:47 Sam.山子 阅读(1690) 评论(0) 推荐(0) 编辑
摘要: 例程(routine)是Pascal 的一个重要概念,例程由一系列语句组成,例程名是唯一的,通过例程名你可以多次调用它,这样程序中只需要一个例程就够了,由此避免了代码多次重复,而且代码也容易修改维护。从这个角度看,你可以认为例程是一种基本的代码封装机制。介绍完Pascal 例程的语法后,我会回过头来举例说明这个问题。Pascal 过程与函数Pascal中的例程有两种形式:过程和函数。理论上说,过程是你要求计算机执行的操作,函数是能返回值的计算。两者突出的不同点在于:函数能返回计算结果,即有一个返回值,而过程没有。两种类型的例程都可以带多个给定类型的参数。不过实际上函数和过程差别不大,因为你可以 阅读全文
posted @ 2011-07-09 15:39 Sam.山子 阅读(7678) 评论(0) 推荐(1) 编辑
摘要: 如果说数据类型是Pascal 编程的一个基础,那么另一个则是语句。编程语言的语句主要由关键字和操作指令组成。语句常放在过程或函数中,就象我们将在下一部分中看到的那样。现在,我们集中讲解最基本的编程语句。简单语句和复合语句Pascal 简单语句中不包含任何别的语句,赋值语句和过程调用即是简单语句的例子。简单语句用分号隔开,如下所示:X := Y + Z; // assignmentRandomize; // procedure call用begin 和end 将简单语句括起来即组成复合语句,复合语句用法与普通的Pascal 语句相同,见下例:begin A := B; C := A *... 阅读全文
posted @ 2011-07-09 15:20 Sam.山子 阅读(770) 评论(0) 推荐(0) 编辑
摘要: Pascal 语言的一个重要特征是它能自定义数据类型。通过各种类型构造器,你可以定义自己的数据类型,如子界类型、数组类型、记录类型、枚举类型、指针类型和集合类型。最重要的用户定义数据类型是类(class),类是Object Pascal的面向对象扩展部分,本书不讨论这部分。你可能会认为其它编程语言也有诸如此类的类型构造器,确实如此,但是Pascal 是第一个完美实现这一理论的语言。至今仍然没有语言有能力定义那么多的数据类型。命名及不命名的类型为了后续使用或直接用于变量,需要给自定义类型命名。如果自定义一个命名的类型,你必须将代码放在特定的type区,如下所示:type // subrange. 阅读全文
posted @ 2011-07-09 15:09 Sam.山子 阅读(1039) 评论(0) 推荐(0) 编辑