DELPHI & PASCAL
文章平均质量分 65
jqandjq
这个作者很懒,什么都没留下…
展开
-
无论如何,先迈出脚步
接连地被大公司BS了……在被三乡的一家小公司BS之后我决定还是先到市区的公司先实习实习虽然过段时间打算去深圳面试……但一度地玩下来到现在有点心里空虚 装个DELPHI要花N久的时间,所以在这工作之余,写写东西DELPHI的确NB,刚开始学,什么都不懂不过WINDOWS界面编程的话看上去好像很方便 早上一大早起床,去等公交,领近8点,44号公交还没到于是和原创 2009-12-08 10:44:00 · 589 阅读 · 0 评论 -
[Warning] Method 'Destroy' hides virtual method of base type 'TObject' 解决方法
<br />[Warning] uDataModel.pas(32): Method 'Destroy' hides virtual method of base type 'TObject'<br /> <br />是因为确保在多态的情况下对象能正确被析构<br />如果不加override关键字,编译器会给出类似"Method Destroy hides virtual method of base type TObject"的警告提示。<br />警告的意思是你定义的Destroy隐藏了基类的虚方法T原创 2010-07-22 21:09:00 · 3550 阅读 · 0 评论 -
inherited
<br /> <br />The reserved word inherited plays a special role in implementing polymorphic behavior. It can occur in method definitions, with or without an identifier after it.<br />If inherited is followed by the name of a member, it represents a normal me原创 2010-05-31 17:14:00 · 865 阅读 · 0 评论 -
delphi中Synchronize
<br />delphi中Synchronize这个东东有什么用?我知道是线程同步使用的<br />是否是一个函数或变量,当一个线程在使用时,如果这个函数使用了Synchronize修钸的话就不允许别一个线程来调用这个函数 <br /> <br />1楼:别的线程会等待该操作完成后才能继续 <br />2楼:你说的基本是这个意思。它的目的是避免多个子线程同时访问主线程资源。 <br />示例: <br />procedure ServerThread.ListItemEnd; //子线程的一个方法 <br转载 2010-06-01 10:49:00 · 7530 阅读 · 0 评论 -
delphi多线程
<br />Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多线程编程的全部,我写此文的目的在于对此作一个补充。<br /> 线程本质上是进程中一段并发运行的代码。一个进程至少有一个线程,即所谓的主线程。同时还可以有多个子线程。当一个进程中用到超过一个线程时,就是所谓的“多线程”。<br /> 那么这个所谓的“转载 2010-06-01 10:59:00 · 3818 阅读 · 2 评论 -
TThreadList 的用法入门
初次使用TThreadList时找不到.Count属性,也找不到.Items属性,没有这两个属性就不能访问列表中的内容,这可怎么用呢,后来发现了LockList方法,这个方法返回一个TList,哦,原来是首先通过LockList安全的得到一个TList然后使用TList返回列表中的内同,当然最后不要忘了调用UnLock函数。例子:with MyThreadList.LockList dobegin try for X := 0 to Count-1 do Som转载 2010-06-09 17:42:00 · 1039 阅读 · 0 评论 -
delphi三层构架思想
<br /><br />三层架构指的是界面,业务逻辑和数据存储分离,不是指物理上是否分离。<br />这样做的好处是层次分明,维护好做,系统资源也好分布式处理。<br />数据库层哪就不说了,用MSSQL、Orcale随你了,就是数据服务层<br />业务逻辑的话要分析清楚,就是中间层<br />界面,也叫客户端。这里就是得到数据和显示数据的部分了,不做其它处理。但是数据有效性分析最好放在界面层,以充分利用客户端的性能。不然的话业务逻辑层的负担太大也会形成瓶劲。<br />数据库的建立不说了。<br />三转载 2010-09-15 14:27:00 · 746 阅读 · 0 评论 -
DELPHI头文件顺序
<br />DELPHI 头文件的加载貌似是覆盖式的<br />比如一个函数在文件里有:<br /> <br />Unit: SysUtils<br />Delphi syntax:<br />procedure FindClose(var F: TSearchRec);<br /> <br /> <br />在另一个文件里也有<br />WINDOWS<br /> <br />BOOL FindClose(<br /> HANDLE hFindFile // file search handle <br原创 2010-09-08 09:30:00 · 954 阅读 · 0 评论 -
delphi多线程访问公共变量
一、用TCriticalSection类来阻塞。(ps:这里的咚咚都涉及Win32编程,我对这些不了解,先掌握如何运用吧。)这个有点类似临界区。要Uses SyncObjs单元。1、声明一个全局的TCriticalSection类的实例。2、建立TCriticalSection.Create,最好是在程序onCreate里面,这样才能保证对所有线程进行控制。3、在全局变量访问前用TCriticalSection.Acquire或TCriticalSection.Enter来阻塞。4、访问完毕,用TCriti转载 2010-09-17 15:00:00 · 2283 阅读 · 1 评论 -
DELPHI 获取版本号、格式化版本信息、比较版本号等相关操作
<br />// 获取版本号function GetFileVersion(FileName: string): string;type PVerInfo = ^TVS_FIXEDFILEINFO; TVS_FIXEDFILEINFO = record dwSignature: longint; dwStrucVersion: longint; dwFileVersionMS: longint; dwFileVersionLS: longint;原创 2010-09-27 14:41:00 · 4913 阅读 · 1 评论 -
关于DELPHI的四舍五入
<br />首先,这是弱贴<br />在一群里看到在讨论四舍五入的实现<br />因为DELPHI里的一般默认的舍入方式都是用银行家舍入法<br />也就是“四舍六入五成双”的做法,但是这样的做法往往不太适合中国人的习惯<br />于是居然开始有人用判断语句写函数实现,加入很多判断<br />甚至有人用上了字符串处理实现,还被奉为牛B一般<br />其实一般正数的四舍五入到整数可以用 + 0.5取整实现<br />trunc(x+0.5) <br />对于保留小数位的情况,或可以借用 *X 再除 X<br原创 2010-11-29 17:17:00 · 1012 阅读 · 0 评论 -
关于文件路径的那些事
文件操作里,第一步就是文件路径的或获取很多人不在意使用系统自带的“过滤装置”自己写了文件的过滤函数一方面减慢了开发的流程,另一方面加大了出现BUG的可能性首先我们最最常用的就是要知道我们现在所开发的程序的相关文件路径信息这个一般用:ParamStr函数我们看一下帮助文档发现ParamStr的作用是:Returns a specified parameter from the command-line.(在命令行里获得规定的函数)声明:Delphi syntax:function ParamStr(Index原创 2010-10-20 10:51:00 · 961 阅读 · 0 评论 -
关于Windows消息的发送和接收入门
关于Windows消息的发送和接收入门 1. 发送消息 PostMessage 函数功能:该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。 消息队列里的消息通过调用GetMessage和PeekMessage取得。 函数原型: B00L PostMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);原创 2010-10-31 13:21:00 · 2261 阅读 · 0 评论 -
关于钩子的使用入门
关于钩子的使用入门1. 钩子概念钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该原创 2010-11-04 14:36:00 · 1166 阅读 · 0 评论 -
关于鼠标钩子使用入门
<br />关于鼠标钩子使用入门1. MOUSEHOOKSTRUCT 鼠标钩子结构体<br /> 当WH_MOUSE钩子处理的鼠标事件时,该结构包含鼠标信息。<br />typedef struct { <br />POINT pt; <br />HWND hwnd; <br />UINT wHitTestCode; <br />ULONG_PTR dwExtraInfo; <br />} MOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT; <br />参数:<br />pt原创 2010-11-21 22:52:00 · 1637 阅读 · 0 评论 -
Delphi WinExec ShellExec 用法介绍(转)
在Windows程序设计中WinAPI也为我们提供了类似的函数,它们就是WinExec()和ShellExecute(),下面就来讨论一下这两个函数的用法。 <br /><br />1)WinExec() 函数原型:<br /><br />UINT WinExec(LPCSTR lpCmdLine,UINT uCmdShow); <br /><br />参数说明:(激活的意思是能接受焦点,即标题栏变成蓝色) <br /><br />lpCmdLine:以0结尾的字符串,命令行参数。<br /><br />u转载 2010-11-22 09:17:00 · 1838 阅读 · 0 评论 -
进程列举操作
进程列举操作1. 进程的概念进程是操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。对应用程序来说,进程就像一个大容器。在应用程序被运行后,就相当于将应用程序装进容器里了,你可以往容器里加其他东西(如:应用程序在运行时所需的变量数据、需要引用的DLL文件等),当应用程序被运行两次时,容器里的东西并不会被倒掉,系统会找一个新的进程容器来容纳它。进程是由进程控制块、程序段原创 2010-11-23 17:11:00 · 878 阅读 · 4 评论 -
delphi中register, pascal, cdecl, stdcall, safecall
注: 使用错误,或者在该加的地方没有加,可能会出现"privileged instruction"错误,或者地址访问错误。常见的调用惯例有register, pascal, cdecl, stdcall, safecall。函数的调用管理决定了参数如何传递给子过程,并从堆栈中退出,以及寄存器在参数传递中的使用,错误和异常的处理。Delphi中默认的调用惯例是register。1) regist转载 2010-05-28 17:18:00 · 2051 阅读 · 0 评论 -
用Delphi制作DLL
一 Dll的制作一般步骤 二 参数传递 三 DLL的初始化和退出清理[如果需要初始化和退出清理] 四 全局变量的使用 五 调用静态载入 六 调用动态载入 七 在DLL建立一个TForM 八 在DLL中建立一个TMDIChildForM 九 示例: 十 Delphi制作的Dll与其他语言的混合编程中常遇问题: 十一 相关资料 一 Dll的制作一般分为以下几步: 1 在一个DLL工程里写一个过程或函数转载 2010-05-28 17:23:00 · 572 阅读 · 0 评论 -
Delphi键盘码,键盘响应
用法:if key = chr(VK_RETURN) then...常数名称 十六进制值 十进制值 对应按键VK_LBUTTON 01 1 鼠标的左键VK_RBUTTON 02转载 2009-12-09 09:47:00 · 1137 阅读 · 0 评论 -
Delphi屏幕绘图
以下代码在全屏幕中心绘制一个十字架:procedure TForm1.Button1Click(Sender: TObject);var FullscreenCanvas:TCanvas; DC:HDC;begin DC:=GetDC(0);//取得屏幕的DC,参数0指的是屏幕 FullscreenCanvas := TCanvas.Create;//创建一个CANVA转载 2009-12-09 14:50:00 · 1525 阅读 · 0 评论 -
Delphi-Timer定时器使用
Timer定时器是一个非可视化组件,能够定时触发OnTimer事件,完成模拟时钟、系统延时、倒计时等工作。在System选项卡中。1. Timer的主要属性(1) Enabled属性:当值为True时,打开定时器,否则关闭定时器。默认值为true。(2) Interval属性:控制OnTimer事件触发的时间间隔,单位是毫秒。将Interval设置为0,相当于关闭定时器。默认值为1000ms(1秒转载 2009-12-08 16:48:00 · 4442 阅读 · 1 评论 -
在delphi根据TshiftState值来判断用户按下Ctrl,shift,alt等键的方法
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);beginif ssCtrl in shift then ShowMessage(ssCtrl);shift 是一个集合变量。type TShiftState = set转载 2009-12-09 09:32:00 · 2054 阅读 · 0 评论 -
DELPHI基础教程读书笔记
设置字体的过程Procedure TForm1.FontDlgApply(Sender:Tobject);beginButton1.Font:= FontDialog1.Font;end; 该程序只有当用户按动About框的按钮或被About窗控制图标关闭窗口后,才会回到主窗体中,而不能与第一个窗体发生交互行为。这就是方法Show和ShowModal的主要不同之处集合类型是一群相同类型元素的组原创 2009-12-19 09:26:00 · 664 阅读 · 0 评论 -
delphi如何用保存数据库连接参数(INI篇)
在设计数据库应用程序的时候,经常需要将一些信息从程序中独立出来,以保证程序的可移植性。其中最重要的信息就是数据库的连接参数。在Delphi中,获得正确的数据库连接参数的方法十分简单,你只需要建立一个数据模块,在其中添加一个ADO Connection,双击之,然后在弹出的窗口中选“Use Connection String”,单击“Build”按钮,在“数据链接属性”窗口中选择适当的驱动引擎,并设转载 2009-12-22 14:27:00 · 1643 阅读 · 0 评论 -
DELPHI参数几个概念上的区别
引用参数: 引用参数用var关键字标示procedure DoubleTheValue (var Value: Integer);begin Value := Value * 2;end;在这种情况下,参数既把一个值传递给过程,又把新值返回给调用过程的代码。当你执行完以下代码时:var X: Integer;begin X := 10; D原创 2010-03-02 15:32:00 · 1399 阅读 · 0 评论 -
PASCAL精要学习笔记之与C/C++的异同(入门)
一个完全的Pascal程序结构program 程序名; uses 已知单元说明; label 标号说明; const 常量说明; type 类型说明; var 变量说明; function 函数说明; procedure 过程说明;begin 语句; 语句; …… 语句end.1. 注释不同一般有三种注释的方法:{this is a comment}(* this is an原创 2009-12-27 14:46:00 · 1058 阅读 · 0 评论 -
delphi TStringList的用法
delphi TStringList的用法 TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的。常规的用法大家都知道,现在来讨论它的一些高级的用法。先把要讨论的几个属性列出来:1、CommaText2、Delimiter & DelimitedText3、Names & Values & ValueFromIndex先看第一个:CommaText。怎么用呢?用代码说转载 2010-03-17 15:37:00 · 928 阅读 · 0 评论 -
Delphi 小谈之TList 篇(转)
看了这里标题,大家可能以为我会谈TListBox控件,那就错了。我要谈的是Delphi提供给我们的具有列表性质的类:TstringList、TList和TObjectList。TstringList用来存放字符串,TList存放指针,而TObjectList则存放对象(Object)。 在我们使用Delphi 的过程中,有很多数据的存储是要靠数组解决的。虽然Delph转载 2010-03-29 17:20:00 · 6180 阅读 · 0 评论 -
C#的委托与Delphi中的"事件委托"
C# in .Net Framework .Net Framework中,要传递方法,必须把方法细节包装在一种新类型的对象中,即委托.委托只是一种特殊的对象类型,其特殊之外在于,我们以前定义的所有对象都是包含数据,而委托包含的只是方法的细节. 委托是一个类,所以其使用同类一样,需要两阶段.声明(定义)委托,创建委托一个或多个实例. 声明委托语法转载 2010-03-31 11:19:00 · 894 阅读 · 0 评论 -
Delphi中实现C++/Java类似静态变量的功能
在网上看到很多人都在为Delphi是否支持C++/Java中的静态变量及静态方法的功能而困扰,其实这在Delphi中是很简单的.静态方法就是使用Class Function. 静态变量则使用单元局部变量来实现. 代码如下: //=========================================// StaticVarTestU - 定义了可以计数的类,通过类方法即可转载 2010-05-06 15:43:00 · 498 阅读 · 0 评论 -
Delphi单例模式(singleton)
Delphi深度探索-单例模式(singleton)作者陈省(hubdog)所谓单例就是系统中只能存在某个类的一个实例,在现实中只能存在一个实例的对象是很常见的,比如系统配置对象只能有一个,比如一个客户端同服务器的TCP/IP连接经常只允许有一个连接等等。下面是一个单例模式的UML图:单例模式的实现那么如何保证在系统中每时每刻只有一个类的实例存在呢,这可以通过静态变量来实现,在调用GetInstance时判断静态变量是否为nil,如果为nil表示系统中没有类的实例,则构造对象,同时将类实例赋值给静态变量,如转载 2010-07-08 10:40:00 · 1861 阅读 · 2 评论 -
Delphi设计模式之单例模式(Singleton Pattern)
<br /> Singleton Pattern模式的设计意图是:保证一个类仅有一个实例,并提供一个访问他的全局访问点。 <br />有人已经实现了这个模式,详见代码如下: <br />interfaceuses classes,SysUtils; type TSingletonList = class(TList); TSingletonl = class public constructor Create;virtual; destructor Destroy; override;转载 2010-07-08 14:56:00 · 1182 阅读 · 1 评论 -
关于TLIST排序SORT的使用
TOBJECTLIST里,有自带的排序功能TLIST,TSTRINGLIST也有,MS是一样的 SORT里有一个参数: Compare:TListSortCompare 那我们先了解一下 TListSortCompare typeHELP原文:TListSortCompare is the type for callbacks that compare two items原创 2010-05-19 14:56:00 · 4731 阅读 · 0 评论 -
Delphi中动态链接库(DLL)的建立和使用
动态链接库是一个能够被应用程序和其它的DLL调用的过程和函数的集合体,它里面包含的是公共代码或资源。由于DLL代码使用了内存共享技术,在某些地方windows也给了DLL一些更高的权限,因而DLL中可以实现一些一般程序所不能实现的功能,如实现windows的HOOK、ISAPI等。同时,DLL还为不同语言间代码共享提供了一条方便的途径。因而DLL在编程时应用较为广泛,本文将介绍如何在 Delphi转载 2010-05-28 15:01:00 · 690 阅读 · 0 评论 -
关于NextGrid控件和cxTreeList控件中的子节点问题(未完待续)
<br />关于NextGrid控件和cxTreeList控件中的子节点问题<br />本文来自http://blog.csdn.net/jqandjq,引用必须注明出处<br />本文章主要讨论NextSuit控件套件中的NextGrid控件和Express控件套件中的cxTreeList控件中关于子节点使用的不同点,以及转换方式,并着重于NextGrid到cxTreeList控件的转换。<br />NextGrid和cxTreeList对于子节点的管理方式是有很大的不同的,NextGrid作为一个GRI原创 2011-03-28 14:37:00 · 3241 阅读 · 2 评论