Delphi
文章平均质量分 66
hopezhangbo
这个作者很懒,什么都没留下…
展开
-
Delphi 常用快捷键
1.SHIFT+鼠标左键先选中任一控件,按键后可选中窗体(选中控件后按Esc效果一样) 2.Shift+F8调试时弹出CPU窗口。 3.Shift+F10等于鼠标右键(Windows快捷键)。 4.Shitf+箭头选择 5.shift+F12快速查找窗体并打开 6.F7(步进式调试同时追踪进入子过程) 7.F8(步进式调试不进入子过程) 8.F9运行原创 2013-01-04 22:54:30 · 832 阅读 · 0 评论 -
delphi 线程全局变量copy
delphi多线程如果使用对于变量的访问会出现安全的问题。对于局部变量与对象内部变量,每个线程对象都会有拷贝,因此不会相互干扰,但是如果访问的是全局变量呢?那么就会出现问题,全局变量的值就会无法确定。我们看一下列子unit ThreadCopy;interfaceuses Winapi.Windows, Winapi.Messages, System.SysUtil原创 2013-02-28 14:22:33 · 1286 阅读 · 0 评论 -
delphi 信号量线程同步
另一种使线程同步的技术是使用信号量对象。它是在互斥的基础上建立的,但信号量增加了资源计数的功能,预定数目的线程允许同时进入要同步的代码。可以用CreateSemaphore()来创建一个信号量对象,其声明如下:function CreateSemaphore(lpSemaphoreAttributes: PSecurityAttributes; lInitialCount, lM原创 2013-02-28 17:20:10 · 1500 阅读 · 0 评论 -
delphi 线程互斥
互斥非常类似于临界区,除了两个关键的区别:首先,互斥可用于跨进程的线程同步。其次,互斥能被赋予一个字符串名字,并且通过引用此名字创建现有互斥对象的附加句柄。提示 临界区与事件对象(比如互斥对象)的最大的区别是在性能上。临界区在没有线程冲突时,要用1 0 ~ 1 5个时间片,而事件对象由于涉及到系统内核要用400~600个时间片。可以调用函数CreateMutex()来创建一原创 2013-02-28 16:53:29 · 1358 阅读 · 0 评论 -
delphi Winsock非阻塞模式详解
这几天一直研究delphi winsock。记录一下心得。Winsockt的TClientSocket设置ClientType的属性为ctNonBlocking.则通讯模式为非阻塞模式。ctBlocking为阻塞模式,这里说一下阻塞与非阻塞的一些区别。ctBlocking模式当客户端请求数据后,线程阻塞不继续执行,直到服务端返回数据,客户端将据需执行,并读取数据。然而阻塞模原创 2013-02-28 11:14:18 · 1092 阅读 · 0 评论 -
Delphi 文件操作
var file_name:string;file_name:='c:\luther.gliethttp.txt';FileWrite(com.log_fd, PChar(file_name)^, length(file_name));文件是同一种类型元素的有序集合,是内存与外设之间传输数据的渠道。文件的本质是一个数据流,所有的文件实际上是一串二进制序列。文件管理包括:1、文件操作原创 2013-02-26 14:07:55 · 686 阅读 · 0 评论 -
delphi操作xml
使用delphi来操作xml文件,或者xml字符串,导入需要单元,XMLDoc,XMLIntf这两个库文件。 doc : TXMLDocument; rootnode : IXMLNode; chender : IXMLNodeListTXMLDocument是文档结构,IXMLNode是文档节点,IXMLNodeList是节点集合。doc:=TXMLDocument.原创 2013-02-26 11:50:39 · 721 阅读 · 0 评论 -
Delphi socket连接.net Socket
这几天一直研究Delphi连接.net的socket程序,终于有一些进展。需求:服务端截取前4个字节,转换为数字,次数字为业务代码。将决定调用哪个业务逻辑。using System;using System.Collections.Generic;using System.Text;using System.IO;using System.Net.Sockets;using System原创 2013-02-25 15:58:13 · 980 阅读 · 0 评论 -
delphi Goto 语句的使用
Goto语句可使程序离开当前位置直接跳至某个特定的语句执行,其形式为: goto label; 后面的label表示语句标签,执行goto语句会直接导致程序跳到lable标记的位置。 大部分能够声明变量的地方都可声明一个标签,声明格式为:label 标签; 标签可以是任何一个合法标识符或一个0至9999间的数值。理所当然,Goto语句及其中的标签必须在当前范围内原创 2013-02-03 13:47:15 · 4456 阅读 · 1 评论 -
delphi 共享变量(Absolute Address)
共址变量是这样一种变量:声明时可以将其与其它的某个变量相绑定,绑定后二个变量在内存中存储位置的起始地址相同。声明共址变量的格式为var v1:type1 absolute v2; 其中v2是一个声明过的变量。程序在编译时会将v1与v2的起始地址设置为相同位置。我们以一个例子来说明: program ShareAddress;{$APPTYPE CONSOLE原创 2013-02-03 13:31:30 · 1454 阅读 · 0 评论 -
Delphi格式化函数Format、FormatDateTime和FormatFloat
1.Format 根据指定所需要的格式,格式化字符串。原型:function Format(const Format: string; const Args: array of const): string; 例子:var s: string; begin //指令类型 type s := Format('最大整数是: %d; 最小整数是: %原创 2013-01-31 10:47:36 · 6647 阅读 · 0 评论 -
Delphi 日期时间函数详解
各种时间类型之间的转换函数 DateTimeToFileDate函数:定义:DateTimeToFileDate(DateTime: TDateTime): Integer;作用: 将一个TDateTime类型的时间转化为Dos环境中的时间,Dos环境下对时间的访问方法和VCL中的TdateTime类型不一样,在进行文件操作时,为了保持时间的一致性,需要使用DateTimeTo原创 2013-01-31 10:45:53 · 1867 阅读 · 0 评论 -
Delphi中怎样将字符串按给定字符分隔(类似split函数的功能)
今天偶尔要做的Delphi程序,其中涉及到了字符串处理,里面有一个功能类似于VB里的split()函数的功能,于是查了很久才查到些资料,现将这些资料整理一下,方便大家.首先是一个网友自己编的函数.实现了和split()函数的功能. unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes,原创 2013-01-30 15:44:47 · 1465 阅读 · 0 评论 -
delphi 线程同步 临界区
dephi线程的同步,最简单的就是临界区。临界区的意思就是,一次只能由一个线程执行的代码。在使用临界区之前,必须使用InitializeCriticalSection( )过程来初始化它。其声明如下:procedure InitializeCriticalSection(var lpCriticalSection);stdcall;lpCriticalSecti原创 2013-02-28 15:58:38 · 916 阅读 · 0 评论