01 2014 档案
摘要:本文的内容取自网络,并重新加以整理,在此留存仅仅是方便自己学习和查阅。所有代码均亲自测试 delphi7下测试有效。图片均为自己制作。多线程应该是编程工作者的基础技能, 但这个基础我从来没学过,所以仅仅是看上去会一些,明白了2+2的时候,其实我还不知道1+1。开始本应该是一篇洋洋洒洒的文字, 不过我还是提倡先做起来, 在尝试中去理解.先试试这个:procedureTForm1.Button1Click(Sender:TObject);vari:Integer;beginfori:=0to500000dobeginCanvas.TextOut(10,10,IntToStr(i));end;end
阅读全文
摘要:首部 function SameText(const S1, S2: string): Boolean; [SysUtils.pas 功能 返回字符串S的大写形式 说明 ANSI(American National Standards Insti.
阅读全文
摘要:; not allowed before ELSEElSE前不允许有“;” clause not allowed in OLE automation section在OLE自动区段不允许“”子句 is not a type identifier不是类型标识符 not previously declared as a PROPERTY前面没有说明PROPERTYGOTO leads into or out of TRY statement GOTO进入或超出TRY语句的范围 clause expected, but found要求子句,但出现16-Bit fixup encountered ..
阅读全文
摘要:Delphi语言的数据库编程中,DBGrid是显示数据的主要手段之一。但是DBGrid缺省的外观未免显得单调和缺乏创意。其实,我们完全可以在我们的程序中通过编程来达到美化DBGrid外观的目的。通过编程,我们可以改变DBGrid的表头、网格、网格线的前景色和背景色,以及相关的字体的大小和风格。以下的示例程序演示了对DBGrid各属性的设置,使Delphi显示的表格就像网页中的表格一样漂亮美观。示例程序的运行:在Form1上放置DBGrid1、Query1、DataSource1三个数据库组件,设置相关的属性,使DBGrid1能显示表中的数据。然后,在DBGrid1的onDrawColumnC.
阅读全文
摘要:procedure TForm1.Button1Click(Sender: TObject);var i:Integer;begin i:=SendMessage(Richedit1.handle,EM_LINEFROMCHAR,Richedit1.selstart,0)+1; ShowMessage(IntToStr(i));end;
阅读全文
摘要://先来个例子:procedure TForm1.FormPaint(Sender: TObject);const S = '万一的 Delphi 博客';var font: TFont;begin font := TFont.Create; font.Name := '微软雅黑'; font.Style := [fsBold, fsItalic]; font.Color := clRed; font.Height := 72; Canvas.Font := font; Canvas.TextOut(10, 10, S); font.Free;end;//效果图
阅读全文
摘要:前言:Delphi 支持三种文件类型: 文本文件、记录文件、无类型文件。文本文件是以行为单位进行读、写的。由于每一行的长度不一定相同,不能计算出给定行在文件中的确切位置,因而只能顺序地读写。文本文件只能单独为读或写而打开,在一个打开的文本文件上同时进行读、写操作是不允许的。文本文件的打开需要两个步骤:1.文件变量与文件名关联;2.初始化读写。1.文件变量与文件名关联:AssignFile(VarTxt, FileName);FileName 如果省略路径将默认当前目录。2.初始化读写有三种方式:(1) Reset: 只读打开, 指针移到文件头;(2) Rewrite: 创建新文件并打开, 只写
阅读全文
摘要:本例效果图:代码文件:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); end;var Form1: TForm1;implem...
阅读全文
摘要:procedure TForm1.Memo1Click(Sender: TObject);begin Text := Format('当前列:%d, 当前行:%d', [Memo1.CaretPos.X, Memo1.CaretPos.Y]);end;//用 API 实现procedure TForm1.Memo1Click(Sender: TObject);var LineY,LineX: Integer;begin LineY := SendMessage(Memo1.Handle,EM_LINEFROMCHAR,Memo1.SelStart,0); LineX := Se
阅读全文
摘要:Delphi中字符串的操作很简单,但幕后情况却相当复杂。Pascal传统的字符串操作方法与Windows不同,Windows吸取了C语言的字符串操作方法。32位Delphi中增加了长字符串类型,该类型功能强大,是Delphi缺省的字符串类型。 字符串类型在Borland公司的TurboPascal和16位Delphi中,传统的字符串类型是一个字符序列,序列的头部是一个长度字节,指示当前字符串的长度。由于只用一个字节来表示字符串的长度,所以字符串不能超过255个字符。这一长度限制为字符串操作带来不便,因为每个字符串必须定长(确省最大值为255),当然你也可以声明更短的字符串以节约存储空间。 字符
阅读全文
摘要:在 Delphi 语言的数据库编程中,DBGrid 是显示数据的主要手段之一。但是 DBGrid 缺省的外观未免显得单调和缺乏创意。其实,我们完全可以在我们的程序中通过编程来达到美化DBGrid 外观的目的。通过编程,我们可以改变 DBGrid 的表头、网格、网格线的前景色和背景色,以及相关的字体的大小和风格。 以下的示例程序演示了对 DBGrid 各属性的设置,使 Delphi 显示的表格就像网页中的表格一样漂亮美观。 示例程序的运行: 在 Form1 上放置 DBGrid1、Query1、DataSource1 三个数据库组件,设置相关的属性,使 DBGrid1 能显示表中的数据。然...
阅读全文
摘要:1.提取字符串中指定子字符串前的字符串 FunctionBefore(Src:string;S:string):string; Var F:Word; begin F:=POS(Src,S); ifF=0then Before:=S else Before:=COPY(S,1,F-1); end; eg:Before('123','helloworld_123')返回结果:helloworld_ 2.提取字符串中指定子字符串后的字符串 functionAfter(Src:string;S:string):string; var F:Word; begin F:.
阅读全文
摘要:一、流的概念流简单说是建立在面向对象基础上的一种抽象的处理数据的工具,它定义了一些处理数据的基本操作,如读取数据,写入数据等,程序员只需掌握对流进行操作,而不用关心流的另一头数据的真正流向。其实,流就是把整个对象转化为一个一个单字节数据,然后形成数据流,其形同把固体石块打碎成一颗颗细小的沙子一样,最后可以形成流沙。二、流的主要功能流的主要功能是对文件与非文件数据相互转换进行操作(即它们之间的I/O操作)。如将图片文件保存到数据库,那么数据库中的图片数据就变成非文件数据了,它只属于某记录某字段的数据。而诸如网络上传输的数据、内存中的存储的数据等也都属于非文件数据,这些数据要转变成文件也需要流操作
阅读全文
摘要:{在网上看到个这个例子感觉还不错,将它移到自己的博客里没事的时候看看;TRect作用:保存一个矩形的左上角和右下角的坐标值;声明:type TRect = packed recordcase integer of0:(Left, Top, Right, Botton:Integer);1:(TopLeft, BottonRight:TPoint);end;由上面的TRect可知,TRect是一个记录类型(TRect),保存了矩形的左上角右下角两个点,4个坐标或2个点的值。这个声明是Record类型使用Case子句的典型的例子。当我们通TopLeft和BottonRight两个点创建矩形时,可以
阅读全文
摘要:AbortDoc终止一项打印作业 是 是 是AbortPath 终止或取消DC中的一切路径否 是 是AbortPrinter 删除打印机缓冲文件 否 是 是AbortSystemShutdowna 停止系统工作 否 是 是AccessCheck 检验客户访问权限 否 是 是AccessCheckAndAuditAlarm 检验访问,产生声音或警报 否 是 是ActivateKeyboardLayout 激活一个新的键盘设备 否 是 是AddAccessAllowedAce 将ACCESS_ALLOWED_ACE加入ACL 否 是 是AddAccessDeniedAce 将ACCESS_DE..
阅读全文
摘要:Delphi遍历文件夹及子文件夹{-------------------------------------------------------------------------------过程名:MakeFileList 遍历文件夹及子文件夹作者:SWGWEB日期:2007.11.25参数:Path,FileExt:string1.需要遍历的目录 2.要遍历的文件扩展名返回值:TStringListEg:ListBox1.Items:= MakeFileList( 'E:\极品飞车','.exe') ;ListBox1.Items:= MakeFileLis
阅读全文
摘要:OnActive 焦点称到窗体或控件时发生OnClick 鼠标单击事件OnDbClick 鼠标双击事件OnClose和OnCloseQuery 当关闭一个窗体时就会响应OnClose和OnCloseQuery事件 ,OnCloseQuery事件比OnClose具有更高的优先级。OnContextPopup 在窗体上单击鼠标右键时触发OnCreate 建立事件,窗件或控件第一次建立时发生。OnCreate事件只发生一次,用来执行初始化任务OnDeactivate 从当前程序切换到另一个应用程序时发生OnDestroy 卸载窗体或控件时被触发,用来清除窗体或控件所占的内存,或者其他的收尾工作nDr
阅读全文
摘要:Delphi中解析Xml的控件-SimDesign NativeXml正在学习,感觉应用很方便。无源代码的版本还是免费的。SimDesign.NativeXml是一个delphi和bcb的XML控件,包含一个精巧的Delphi XML执行,使你能在程序中读写XML文档。http://www.simdesign.nl/xml.html网上有一个利用SimDesign.NativeXml生成XML的例子。一个更加强大易用的XML库-- NativeXML原来一直使用Delphi自带的TXMLDocument类来进行XML文件的读写,虽然麻烦了一点,但功能上来说还不错。只是有一个地方让我实在不舒服-
阅读全文
摘要:function IsWin64: Boolean;var Kernel32Handle: THandle; IsWow64Process: function(Handle: Windows.THandle; var Res: Windows.BOOL): Windows.BOOL;stdcall;GetNativeSystemInfo : procedure(var lpSystemInfo: TSystemInfo); stdcall; isWoW64 :BOOL;SystemInfo : TSystemInfo; const PROCESSOR_ARCHITECTURE_AMD64 =
阅读全文
摘要:1、获取windows版本信息可以通过Windows API函数GetVersionEx来获得。具体程序如下:Procedure Tform1.Button1Click(sender:TObject); Var OSVI:OSVERSIONINFO; begin OSVI.dwOSversioninfoSize:=Sizeof(OSVERSIONINFO); GetVersionEx(OSVI); label1.Caption:=IntToStr(OSVI.dwMinorVersion)+',' +IntToStr(OSVI.dwMinorVersion)+','
阅读全文
摘要:Delphi的高效不多说... 俗话说;真正的程序员用C语言,聪明的程序员用Delphi,一点都不假,和C++比它比C++更简单,更容易上手,功能丝毫不逊色C++,比起VB,毫无疑问比VB好多了,重要的是快,高效! 高效的Pascal编译器,强大的数据库支持==.... Delphi在进行计算量相当大的时候会出现程序假死,在线程编程的时候会出现线程堵塞,更重要的是在线程编程时可以大大加快程序的效率。。我们可以用这个函数:Application.ProcessMessages; //防止线程堵塞,程序假死 如在进行一个0到10000的运算时可能会出现假死的现象[delphi]view p...
阅读全文
摘要:[delphi]view plaincopyprint?{将数据集操作方面的东西全部封装成一个单独的类TcustomAdoDataSet是TadoQuery、TadoTable、TadoDataSet、TadoCommand的公共祖先类应尽量使用TadoDataSet和TadoCommand类}unituntOpeDataSet;interfaceusesSysUtils,db,adodb,commonFunction,msg;typeTopeDataSet=classpublic{修改已发生,但还没有得到应用的记录,在关闭窗口前应给予提示}functionadoUpdatesPending(
阅读全文
摘要:[delphi]view plaincopyprint?SysUtils.StrToDate();SysUtils.StrToDateDef();SysUtils.TryStrToDate();SysUtils.StrToTime();SysUtils.StrToTimeDef();SysUtils.TryStrToTime();SysUtils.StrToDateTime();SysUtils.StrToDateTimeDef();SysUtils.TryStrToDateTime();SysUtils.DateToStr();SysUtils.TimeToStr();SysUtils.Da
阅读全文
摘要:[delphi]view plaincopyprint?先把要讨论的几个属性列出来:1、CommaText2、Delimiter&DelimitedText3、Names&Values&ValueFromIndex先看第一个:CommaText。怎么用呢?用代码说话:constconstr:String='aaa,bbb,ccc,ddd';varstrs:TStrings;i:Integer;beginstrs:=TStringList.Create;strs.CommaText:=constr;fori:=0toStrs.Count-1doShowMe
阅读全文
摘要:2013-12-30 12:2712人阅读评论(0)收藏举报[delphi]view plaincopyprint?//TStringList常用方法与属性:varList:TStringList;i:Integer;beginList:=TStringList.Create;List.Add('Strings1');{添加}List.Add('Strings2');List.Exchange(0,1);{置换}List.Insert(0,'Strings3');{插入}i:=List.IndexOf('Strings1');{第
阅读全文
摘要:ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。有几个API函数都可以实现这些功能,但是在大多数情况下ShellExecute是更多的被使用的,同时它并不是太复杂。下面举例说明它的用法。开始一个新的应用程序ShellExecute(Handle, 'open', PChar('c:\test\app.exe'), nil, nil, SW_SHOW);打开记事本,并打开一个文件(系统能识别记事本应用程序的路径,因此我们不必使用绝对路径)ShellExecute(Handle
阅读全文
摘要:请在interface处uses句中加入ShellAPI有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。1.CreateProcess因为使用复杂,比较少用。2.WinExec主要运行EXE文件。如:WinExec('Notepad.exe Readme.txt', SW_SHOW);3.ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。首先必须引用shellapi.pas单元:uses ShellAPI;1).标准用法 ShellExecute函数原型及参数含义如下: function Shell
阅读全文
摘要:MessageBox对话框 输入控件的 ImeName属性把输入法去掉就默认为英文输入了 MessageBox对话框是比较常用的一个信息对话框,其不仅能够定义显示的信息内容、信息提示图标,而且可以定义按钮组合及对话框的标题,是一个功能齐全的信息对话框信息提示图标,而且可以定义按钮组合及对话框的标题,是一个功能齐全的信息对框。 1、函数原型及参数 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer; hWnd:对话框父窗口句柄,对话框显示在Delphi窗体内,可使用窗体的Handle属性,否则可用0
阅读全文
摘要:哈希函数哈希法,又称散列法、杂凑法、关键字地址计算法。这种方法的中心思想是,首先在元素的关键字k和存储位置p之间建立一个对应关系f,使得p=f(k),f称为哈希函数。创建哈希表时,把关键字为k的元素直接存入地址为f(k)的单元,以后当查找关键字为k的元素时,再利用哈希函数计算出该元素所存储的位置p=(k),从而达到按关键字直接存取元素的目的。哈希函数的构造方法:1、数字分析法,如果关键字中有分布较为均匀的部分,则可以使用这几位为哈希地址。例如关键字是4位整数d1d2d3d4,其中d2和d4取值均匀,那么哈希函数可以设为h(key)=h(d1d2d3d4)=d2d4。2、平方取中发,如果不能确定
阅读全文
摘要:在Windows编程时,为了兼容Win7与XP,许多需要底层权限的程序需要通过UAC验证,这是微软出的一个很恶心的东西……还不如Ubuntu那种Root机制呢……但是有困难我们就要克服~现在有一种方式可以变相的绕过UAC控制。其实UAC控制有一点很弱智的是,当你的程序名字中包含Installation、Setup等词时,UAC认为你是安装程序,会默认进行UAC提示,提示用户给此程序提高权限。这对于安装包可以简单解决,但是如果我们的主程序也需要高权限的话,我们需要一个manifest文件来告诉UAC:我需要一个较高的权限,UAC也会提示用户提权。具体操作如下,但是此方法有个不能解决的问题是U..
阅读全文
摘要:Delphi中的窗体,有模式窗体与非模式窗体两种。两种窗体的调用方式不同,模式窗体使用ShowModal显示,非模式窗体使用Show显示。当显示模式窗体的时候你是不能操作本程序的其他窗体的,你不能把焦点从模式窗体转到其他窗体上。而非模式窗体则没有这种限制,你可以从一个非模式窗体切换到另外一个非模式窗体上。两种窗体的区别仅仅在调用的方式上有区别。窗体的创建:当使用Delphi的IDE New一个窗体后,在Project1.dpr文件中,会出现一句1Application.CreateForm(TForm2, Form2);意思是当程序启动的时候会创建TForm2类的Form2实例,也就是窗体..
阅读全文
摘要:设置时Table1.Active := False;procedure TForm1.FormCreate(Sender: TObject);var s: string;begin s := ExtractFilePath(ParamStr(0)) + 'MyDatabase'; //数据库存放在程序当前目录内的MyDatabase里 //ShowMessage(s); Table1.DatabaseName := s; Table1.Active := True;end;Table有3个属性很重要:Active:打开数据连接,设置DatabaseName和TableName属
阅读全文