DELPHI编程手记
delphi开发笔记

Ctrl+B Buffer List窗口。
Ctrl+I 同Tab键。
Ctrl+M 同Enter键。
Ctrl+N 同Enter键,但光标位置保持不变。
34 Ctrl+鼠标转轮 加速滚屏。
35 Shift+F8 调试时弹出CPU窗口。
36 Shift+F10 等于鼠标右键(Windows快捷键)。
37 Alt+F4 关闭所有编辑框中打开的源程序文件,但不关闭项目。
6 相反,在过程、函数、事件的定义处,SHIFT+CTRL+向下的方向键 可跳跃到具体过程、函数、事件内部
7 CTRL+ SHIFT + C:编写申明或者补上函数
8 SHIFT+CTRL+E 显示 EXPLORER
9 Ctrl+ shift + n (n=1,2,3,4......)定义书签
3、双击ConnectItem,敲入以下代码。
procedure TChatForm.ConnectItemClick(Sender: TObject);
begin
if ClientSocket.Active then ClientSocket.Active := False;
if InputQuery(Computer to connect to, Address Name:, Server) then
Ctrl+T 删除光标右边的一个单词。
Ctrl+Y 删除光标所在行。
Ctrl+Shift+↑ 光标在函数体内时,将光标快速移至当前函数声明处。
delphi教程

delphi教程Delphi是一种先进的编程语言和集成开发环境(IDE),经常用于快速开发可视化和跨平台的应用程序。
它是由Embarcadero Technologies开发的。
Delphi结合了面向对象编程和事件驱动编程的特点,并提供了强大的组件库和可视化设计工具,使开发人员能够轻松地创建功能强大且用户友好的应用程序。
Delphi教程可以帮助初学者了解和掌握Delphi编程语言的基础知识和技巧。
以下是一个简单的Delphi教程,介绍了一些基本概念和常用功能。
首先,我们需要了解Delphi的开发环境。
Delphi IDE提供了代码编辑器、可视化设计界面和调试工具等组件。
开发人员可以使用代码编辑器编写Delphi代码,使用界面设计器创建用户界面,以及使用调试工具调试和测试应用程序。
接下来,让我们来了解一些Delphi的基本概念。
Delphi是基于面向对象编程的语言,它使用类和对象来组织代码。
一个类是一个定义了一组属性和方法的模板,而对象是类的实例。
开发人员可以创建自己的类,并定义适用于这些类的属性和方法。
Delphi还支持事件驱动编程模型。
开发人员可以定义事件处理程序,以响应用户的操作或系统产生的事件。
通过将事件处理程序与控件的事件关联,开发人员可以实现用户界面的交互和功能。
Delphi还提供了丰富的组件库,其中包括许多预定义的控件和功能。
这些控件可以用于创建用户界面,例如按钮、文本框、列表框等等。
开发人员可以使用这些控件和组件来构建功能丰富的应用程序。
此外,Delphi还支持数据访问和数据库操作。
开发人员可以使用Delphi提供的数据库组件来连接和操作各种数据库,如Oracle、MySQL、Microsoft SQL Server等。
最后,Delphi还具有跨平台的能力。
开发人员可以使用一套代码开发应用程序,并在不同的操作系统上运行,如Windows、macOS和Linux等。
总结一下,Delphi是一种强大的编程语言和集成开发环境,适用于开发各种类型的应用程序。
Delphi学习笔记

五、Delphi文件管理5.1 文件管理基本功能的实现1.文件打开文件打开的功能实现可以利用Windows API函数ShellExecute实现,另外在Delphi里面调用此函数,需要在Uses子句加上”ShellAPI”。
ShellExecute的用法首先必须引用shellapi.pas单元:uses ShellAPI;1.标准用法ShellExecute函数原型及参数含义如下:function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory: PChar; ShowCmd: Integer): HINST; stdcall;●hWnd:用于指定父窗口句柄。
当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。
例如,可以将其设置为应用程序主窗口句柄,即Application.Handle,也可以将其设置为桌面窗口句柄(用GetDesktopWindow函数获得)。
●Operation:用于指定要进行的操作。
其中“open”操作表示执行由FileName参数指定的程序,或打开由FileName参数指定的文件或文件夹;“print”操作表示打印由FileName参数指定的文件;“explore”操作表示浏览由FileName参数指定的文件夹。
当参数设为nil时,表示执行默认操作“open”。
●FileNam e:用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。
●Parameters:若FileName参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为nil或PChar(0)。
●Directory:用于指定默认目录。
●ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0。
若ShellExecute函数调用成功,则返回值为被执行程序的实例句柄。
Delphi笔记

Delphi笔记Delphi笔记-ObjectPascal的相关内容Delphi学习笔记2007-12-08 21:15:51 阅读121 评论0 字号:大中小订阅Pascal有3种字符串类型:1.ShortString该类型的字符串的最大长度为255个字符。
所占的内存中的第一个字节地址中存放字符串的长度信息。
每个字符占一个字节的空间。
它所占的内存是静态分配的。
2.AnsiString是一种动态分配内存的字符串类型,最大长度为2的31次幂个字符,占2GB的内存空间。
它的变量是一个占4B内存的指针,指向动态内存。
每个字符占一个字节。
3.WideString也是一种动态分配内存的字符串类型,最大长度比AnsiString小一个字符。
它的效率比AnsiString差。
每个字符占两个字节。
内存分配和释放函数:AllocMem() FreeMem()GlobalAlloc() GlobalFree()GetMem() FreeMem()New() Dispose()StrAlloc() StrDsipose()StrNew() StrDispose()VirtualAlloc() VirtualFree()SetLength()函数和过程的重载要用关键字overload,类的函数和过程的覆盖要用override。
它们的区别是:重载的多个函数具有相同的函数名,不同的参数列表;覆盖用在父类与子类之间,子类的同名函数覆盖父类的同名虚函数或动态函数。
数据类型表:8位有符号整数:ShortInt8位无符号整数:Byte16位有符号整数:SmallInt16位无符号整数:Word32位有符号整数:Integer,LongInt32位无符号整数:LongWord,Cardinal64位有符号整数:Int644字节浮点数:Single6字节浮点数:Real488字节浮点数:Double10字节浮点数:Extended64位货币值:currency8字节日期/时间值:TDateTime16字节variant:Variant,OleVariant,TVarData1字节字符:Char2字节字符:WideChar固定长度(最大为255个字符)的字符串:ShortString动态字符串:AnsiString, WideString以NULL(即以#0)结束的字符串:PChar , PWideChar1字节布尔值:Boolean,ByteBool2字节布尔值:WordBool4字节布尔值:BOOL,LongBool当第一次声明了一个AnsiString变量时,它是没有长度的,也没有分配内存空间,可以通过给它赋值或调用SetLength()函数来给它分配内存空间。
DelPhi学习笔记2.常用函数与过程

Delphi7.0的常用函数与过程2.1.4 Delphi 7中的运算符与表达式Delphi 7 有8 类运算符,本章主要学习算术运算符、字符串运算符和位运算符。
其他运算符将在以后的章节中学习。
1.算术运算符算术运算符是用户最熟悉的,类似算术中的加减乘除等。
Delphi 7中有8个算术运算符,具体含义如下。
(1)取正运算符“+”:单目运算符,表示对一个数值型数据取正,例如+5的值为5。
另外,取正运算符可以省略。
(2)取负运算符“-”:也是单目运算符。
例如对5取负,其值为-5。
(3)加法运算符“+”:与数学上的加法相同。
加法运算符与取正运算符符号相同,但含义不同。
例如3+5的值为8。
(4)减法运算符“-”:与数学上的减法含义相同。
也请注意减法运算符与取负运算符的异同。
(5)乘法运算符“*”:表示对两个数值型数据相乘,与数学中的乘法相同。
例如:3*5 的值为15。
(6)除法运算符“/”:与数学上的除法含义相同。
例如3/5 的值为“0.6”。
另外,除法运算的结果总是实型数据。
(7)整除运算符“div”:只能对两个整数进行除法运算,结果为整型数据。
例如5 div 3 的值为1,而“5 div 2.0”是不合法的。
(8)取余运算符“mod”:对两个整数相除,结果为余数。
例如5 mod 3的值为2。
1,数学类函数包括绝对值函数,取整数函数,取小数函数,平方函数,平方根函数,三角函数,指数函数,对数函数和随机函数等。
(1)绝对值函数:Abs(x) 返回x的绝对值,x是整型或实型数据例:x := Abs(-1); //这是一个赋值语句,先计算赋值号右边函数的值(为1)再赋给x. (2)取整数函数(3)取小数函数返回x的小数部分,x为实型数据(4)平方函数返回实型数据x的平方值,x为实型数据(5)平方根函数返回非负实数x的算术平方根,x为非负实数,返回值也为非负实数例:(6)三角函数返回以弧度为单位的x的正弦函数值,x的单位为弧度返回以弧度为单位的x的余弦函数值,x的单位为弧度ArcTan(x):Extended;返回x的反正切函数值,x的单位为弧度(7)指数函数返回值为e,参数x为实型数据例:(8)自然对数函数Ln(x) := Real;返回x的自然对数值,参数x为正实数,其它对数函数可以由换底公式导出。
Delphi7随手记

Delphi基础第1章D elphi入门第2章D elphi语言基础 22.1简单范例Program Exa02_1{SAPPTYPE CONSOLE}UsesSysutils;VarRadius:Real;Diameter,Circumference,Area:Real;BeginWrite(‘输入一个圆的半径值: ’);ReadLn(Radius);Diameter := 2* Radius;Circumference := PI* Diameter;Area:= PI*SQR(Radius);writeLn(‘该圆的直径为:’,Diameter:13:2);writeLn(‘该圆的周长为:’,Circumference:13:2);writeLn(‘该圆的面积为:’,Area:13:2);ReadLn;End;2.2Delphi语言的基本元素2.2.1.保留字和指示字And array as Asm 汇编语言Begin Case class const Constructor Destructor Dispinterface 显示接口Divdo Downto Else EndExcept Exports File Finalization finally for function Goto转移If implementation in inherited initialization inline interface islabel libary mod NilNot object Of orout packed procedure program property raise record repeatstring then threadvar totry type unit untiluses var while withXor 异或指示字absolute abstract assembler automated cdeclcontains default deprecated dispid dynamicexport external far forward implementsindex library local message namenear nodefault overload override packagepascal platform private protected publicpublished read readonly register reintroducerequires resident safecall stdcall storedvarargs virtual write writeonly2.2.2.直接量所谓直接量,是在程序中可以直接使用而无须声明的数据。
delphi编程经验2007(Delphi教程)

delphi编程经验2007 (Delphi教程) delphi编程经验20071).按下ctrl和其它键之后发生一事件。
procedureTForm1.FormKeyDown(Sender: TObject;var Key: Word; Shift: TShiftState); begin if (ssCtrl in Shift) and (key =67) then showmessage('keydown Ctrl+C'); end; (2).Dbgrid中用Enter 键代替Tab键. procedureTForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then if ActiveControl = DBGrid1 then beginTDBGrid(ActiveControl).SelectedIndex :=TDBGrid(ActiveControl).SelectedIndex + 1; Key := #0; end; end;(3).Dbgrid中选择多行发生一事件。
procedure TForm1.Button1Click(Sender: TObject); var i:integer; bookmarklist:Tbookmarklist; bookmark:tbookmarkstr; begin bookmark:=adoquery1.Bookmark; bookmarklist:=dbgrid1.SelectedRows;try begin for i:=0 to bookmarklist.Count-1 do beginadoquery1.Bookmark:=bookmarklist[i]; with adoquery1 do begin edit; fieldbyname('mdg').AsString:=edit2.Text; post; end; end; end; finally adoquery1.Bookmark:=bookmark; end; end; (4).Form的一个出现效果。
delphi教学笔记

delphi教学笔记以下是一份Delphi教学的笔记,供您参考:1. Delphi概述* Delphi是一种基于Object Pascal语言的集成开发环境(IDE)。
* Delphi具有可视化的编程环境,可以快速构建Windows应用程序、数据库应用程序和网络应用程序等。
* Delphi支持面向对象的编程和事件驱动的编程。
2. Delphi开发环境* Delphi的开发环境包括IDE、编译器、调试器、数据库引擎等。
* Delphi的IDE具有可视化的界面设计器、代码编辑器、调试器等工具,方便开发者进行应用程序的开发和调试。
* Delphi的编译器可以将Object Pascal代码编译成可执行文件或库文件。
* Delphi的调试器可以帮助开发者进行代码调试和错误排查。
3. Delphi语言基础* Object Pascal语言是Delphi的开发语言,它是一种结构化编程语言,支持面向对象编程和事件驱动编程。
* Object Pascal语言包括变量、数据类型、语句、函数、过程等基本语法。
* Delphi还支持面向对象编程的概念,包括类、对象、继承、多态等。
4. Delphi应用程序开发* Delphi应用程序开发包括界面设计、代码编写、调试和发布等环节。
* Delphi的界面设计器可以帮助开发者进行用户界面的设计和布局,支持各种控件和布局方式。
* Delphi的代码编写可以采用面向对象的方式,通过定义类和方法来实现各种功能和业务逻辑。
* Delphi的调试器可以帮助开发者进行代码调试和错误排查,包括断点调试、单步执行、变量观察等功能。
* Delphi的应用程序发布可以采用打包的方式,生成可执行文件或安装包,方便用户安装和使用。
5. Delphi数据库开发* Delphi支持各种关系型数据库的开发和管理,包括Oracle、MySQL、SQLite等。
* Delphi可以采用BDE(Berlin Database Engine)作为数据库引擎,支持各种数据库操作和管理功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
怎样在关闭窗口之前加入确认对话框1.在Form的OnCloseQuery事件里加入以下代码:if Application.MessageBox('Close it now?','Ask',MB_YESNO)=IDYES then CanClose:=TrueelseCanClose:=False;怎样在运行时刻动态生成控件[可视的和不可视的]㈠、可视控件:[以下以TEdit控件为例]1.在Form的Public中定义TEdit控件Edit1:TEdit;2.在需要生成的地方加入以下代码:Edit1:=TEdit.Create(Self);Edit1.Parent:=Form1;?//Set parent to paint the Edit1Edit1.Left?:=20;?//Set postionEdit1.Top:=20;Edit1.Text:='Edit1Text';//Set values....?//Set other property3.使用完毕后,释放分配的资源if?Assigned(Edit1)thenEdit1.Free;?㈡、非可视控件:[以下以TTimer控件为例]1.在Form的Public中定义TTimert控件Timer1:TTimber;2.在需要生成的地方加入以下代码:Timer1:=TTimer.Create(Self);Timer1.OnTimer:=YourAction;//定义自己的OnTimer事件//procedure TForm1.YourAction(Sender:TObject);//是已经定义的响应过程3.使用完毕后,释放分配的资源if?Assigned(Timer1)thenTimer1.Free;?如何获得命令行参数?有关Delphi传入应用程式的命令列参数,请参考以下的说明??1.取得命令列参数的个数:ParamCount函数2.呼叫ParamStr(0),传回执行档的档名(含路径)3.呼叫ParamStr(n),传回第n个参数的内容例子:procedure TForm1.FormCreate(Sender:TObject);varix:integer;beginMemo1.Lines.Clear;if ParamCount=0thenMemo1.Lines.Add('??统??.')elsebeginMemo1.Lines.Add('档名:'+ParamStr(0));for ix:=1to ParamCount doMemo1.Lines.Add(ParamStr(ix));end;end;查阅所有可视窗口标题下面只是举出一个例子提供参考:运用API函数GetWindow()配合GetWindowText()逐一查出各视窗的标题1.File|New Project开始一个新的工程2.在Form1中安排Button与Memo各一3.在Button1的OnClick事件中撰写程式如下:procedure TForm1.Button1Click(Sender:TObject);varhCurrentWindow:HWnd;szText:array[0..254]of char;beginhCurrentWindow:=GetWindow(Handle,GW_HWNDFIRST);while hCurrentWindow<>0dobeginif GetWindowText(hCurrentWindow,@szText,255)>0then Memo1.Lines.Add(StrPas(@szText));hCurrentWindow:=GetWindow(hCurrentWindow,GW_HWNDNEXT);end;end;在程序中使用自定义的鼠标自订鼠标的部分,在OnLine Help中的说明?没有提到一些细节以下的例子请您参考看看:一.建立工程与一个资源档1.File|New Project2.File|Save Project,将unit1与project1存起来假定是c:\temp目录3.Tools|Image Editor,利用Image Editor新开一个资源档(Fild|New|Resource File<Ok>)4.在这个资源档中新建一个CURSOR_1的CURSOR,设定好它的Hot Spot(Image|Hot Spot)5.将资源档存起来,存档时注意要和上述的Project存在同一个目录,且不要与project的原资源档档名重覆,在本例我们先假定为MyCursor.res二.程序部分6.定义一个常数,这个常数您必须设成大於零的任何整数7.以LoadCursor()函数将自订的鼠标资源load进来以下为源代码//unit.pasunit Unit1;interfaceusesSysUtils,WinTypes,WinProcs,Messages,Classes,Graphics,Controls,Forms,Dialogs;constcrMyCursor=1;(*宣告一个常数*)typeTForm1=class(TForm)procedure FormCreate(Sender:TObject);private{Private declarations}public{Public declarations}end;varForm1:TForm1;{$R mycursor.res}//这行$R不可少,否则自订的鼠游标就出不来了implementation{$R*.DFM}procedure TForm1.FormCreate(Sender:TObject);begin//将鼠标资源load进来Screen.Cursors[crMyCursor]:=LoadCursor(hInstance,'CURSOR_1');//指定form1的cursor为自订鼠标Cursor:=crMyCursor;//指定Button1的cursor为自订鼠标Button1.Cursor:=crMyCursor;end;如何执行外部程序[并一直等到它结束]㈠编程语言Delphi1.0,操作系统Window3.1以下是一个执行外部程序ARJ.EXE的例子的部分代码相信看过就会用了。
varsCommandLine:string;bCreateProcess:boolean;lpStartupInfo:TStartupInfo;lpProcessInformation:TProcessInformation;beginsCommandLine:='ARJ.EXE/?';bCreateProcess:=CreateProcessA(nil,PChar(sCommandLine),nil,nil,True,NORMAL_PRIORITY_CLASS,nil,nil,lpStartupInfo,lpProcessInformation);if bCreateProcess thenWaitForSingleObject(lpProcessInformation.hProcess,INFINITE); end;㈡编程语言Delphi3.0,操作系统Window95同样是上面的例子的部分代码varpWindowsList:pointer;hActiveWindow:HWnd;hExeHandle:THandle;beginpWindowsList:=DisableTaskWindows(0);hActiveWindow:=GetActiveWindow;tryhExeHandle:=WinExec('arj.exe/?',SW_SHOWNORMAL);while GetModuleUsage(hExeHandle)<>0doApplication.ProcessMessages;finallyEnableTaskWindows(pWindowsList);SetActiveWindow(hActiveWindow);end;end;//相信你明白了。
题外话:如果执行的是MSDOS外部程序,如何能让它的窗口不显示出来呢?[接上例]:TStartupInfo这个结构中有一个sShowWindow栏位,将之设为SW_HIDE即可,同时,dwFlags标志中至少需含有STARTF_USESHOWWINDOW,否则CreateProcess时,sShowWindow栏位的设定会无效,以下是修改过的程式:varsCommandLine:string;bCreateProcess:boolean;lpStartupInfo:TStartupInfo;lpProcessInformation:TProcessInformation;begin//sCommandLine的内容请视您的情况修改sCommandLine:='Xcopy d:\temp\temp1\*.*d:\temp\temp2/v/y';lpStartupInfo.dwFlags:=STARTF_USESHOWWINDOW;lpStartupInfo.wShowWindow:=SW_HIDE;bCreateProcess:=CreateProcess(nil,PChar(sCommandLine),nil,nil,True,HIGH_PRIORITY_CLASS,nil,nil,lpStartupInfo,lpProcessInformation);if bCreateProcess thenWaitForSingleObject(lpProcessInformation.hProcess,INFINITE);end;//又有进步了如何得知执行的程序所在的目录?说明:Delphi 1.0请用ExtractFilePath(Application.Exename);(因为没有ExtractFileDir()函数)。
Delphi 2.0/3.0的SysUtils单元中有ExtractFileDir与ExtractFilePath两个类似的函数,用哪一个?没有太大的关系。
不过有以下的差别:ExtractFilePath传回值的最後一个字元是反斜杠“/”。
样例代码:procedure TForm1.Button1Click(Sender:TObject);beginShowMessage(ExtractFileDir(Application.Exename));//ie:c:\temp*)ShowMessage(ExtractFilePath(Application.Exename));//ie:c:\temp\*)end;相同点:如果执行文件在根目录下(如:C:\SAMPLE.EXE)的话,两者的传回值相同,且最后一个字符都是“/”。