Delphi学习笔记(一)

(一)鼠标点击显示和清除文本框内容

1.将文本框和按钮布局好后,在Object Inspector窗体中找到TextVisible

2.Text的内容即文本框要显示的内容

3.Visible初始值设置为False,不可见


4.双击显示按钮,在代码中写入 Edit1.Visible:=true; 即点击后使文本框可见,‘:=’为赋值

 

5.双击清除按钮,在代码中写入 Edit1.Text:='  '; 点击后清除文本框内容





 

(二)鼠标悬停时显示内容

1.选中要悬停显示的控件,找到ShowHintHint

2.将ShowHint设置为True,显示可见

3.Hint中输入要显示的内容

 



(三)在文本框中输入整数,显示个十百千位

1.布局


2.每次单击文本框后,清空内容,等待输入

① 在Object Inspector窗体中选择EventsOnClick

② 输入代码: Edit1.Text:= '';Delphi’’表示空而C/C++””表示空)



3.点击每一位,显示相应数字

① 将文本框中的字符串通过StrToInt()函数转换为整型

 temp:=StrToInt(Edit1.Text);

② 计算后通过IntToStr()函数转换为字符串显示出来

 Label1.Caption:=IntToStr(temp mod 10);



③ 其他位的按钮点击类似

4.结果



展开阅读全文

一郎Delphi学习笔记

08-19

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━rn2002.06.22rnrn1,用Application.Teminate终止程序,不会触发OnClose、OnCloseQuery事件。rnTerminate()会调用Windows的PostQuitMessage()函数向应用程序的消息队列中发一个消息。VCL据此释放应用程序创建的所有对象。但并不是一调用Terminate()就马上使应用程序终止,而是当应用程序检索到WM_QUIT消息时才会真正终止。而Halt()立即终止应用程序的执行,但不释放先前创建的对象,也不会返回到调用Halt()的地方。rnrnrn2,窗体的AlphaBlend,AlphaBlendValue属性,SetLayeredWindowAttributes函数只在WIN2000环境下有效。rnrn3,在菜单中选择Project-Options-Packages选中‘Build with runtime pakages’编译时减少可执行文件大小(执行程序时运行环境必须有这些Packages存在)rnrn4,超链接:uses ShellAPI;rnShellExcute(Handle,'open','http://www.37.com',nil,nil,sw_show);rnShellExcute(Handle,'open','mailto ilang@email.com',nil,nil,sw_show);rnrn-----------------------------------------------------------------------rn5,快捷键rnrn在代码编辑器中按Ctrl+E可以 激活Increment Search。这样就避免了从菜单中选择Search->Find,再输入文本的繁琐步骤。rnrn选中一或者几行文本,然后按Ctrl+Shift+I,可以增加这几行的缩进量;Ctrl+Shift+U减少缩进。缩进的距离取决于Editor Options里面的Auto Indent设置。rnrn选中一些文本,按Ctrl+O+U(保持Ctrl按下,先按O,再按U),将改变选中文本的大小写。Ctrl+K+E将选中文本全部变成小写;Ctrl+K+F变成全部大写。rnrn在Form Designer中工作的时候,选中某个构件,按下Ctrl和方向键拖动它将能够微调它的位置,而不用对齐到网格(Snap to Grid只对鼠标操作有效。)rnrn-----------------------------------------------------------------------rn6,几个预定义的编译符号rnDelphi 版本rnrn$IFDEF VER140rn ShowMessage('Is Delphi 6!')rn$ENDIFrnrn$IFDEF VER130rn ShowMessage('Is Delphi 5!')rn$ENDIFrnrn操作系统rn$IFDEF MSWINDOWSrn ShowMessage('Is MSWINDOWS!')rn$ENDIFrnrn$IFDEF LINUXrn ShowMessage('Is Delphi LINUX!')rn$ENDIFrnrn$IFDEF WIN32rn ShowMessage('Is WIN32!')rn$ENDIFrnrn━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━rn2002.06.25rnrn1,(1)设置没有标题栏但可以改变大小的窗体rnprocedure CreateParams(var Params: TCreateParams); override;rninherited CreateParams(Params);rnParams.Style := WS_THICKFRMAE or WS_POPUP or WS_BORDER;rn(2)设置没有标题栏但可以拖动的窗体rnprocedure WMNCHitTest(var Message: TWMNCHitTest);rn message WM_NCHitTest;rninherited;rnif Message.Result = htClient thenrnMessage.Result := htCaption;rnrn2,TApplication.ExeName 属性:返回应用程序的全路径和文件名;rnExtractFileName(Application.ExeName) 返回文件名rnExtractFilePath(Application.ExeName) 返回全路径rnExtractFileExt(Application.ExeName) 返回文件扩展名rnrn3,(1)对于没有Owner的组件,ComponentIndex属性总等于-1;rn(2)TApplication.HandleException用于显示项目中出现异常的有关信息;rn(3)TApplication.ProcessMessages用于程序执行一个长的过程又不中断其他rn代码的执行(例如安装程序时响应放弃按钮),与HandleMessages的区别是rn如果没有发现消息,ProcessMessages方法不会把应用程序置于空闲状态;rn单单一个在一个处理过程中增加Application.ProcessMessages,则程序在响应rn其他过程后会返回来处理这个过程,且处理完这个过程之前无法退出程序,要在程序rn转向其他过程的时候终止当前过程,可在Application.ProcessMessages后加上rn一个布尔变量判断如 if InterruptProcess then Exit;然后在其他需要响应的过程中设置InterruptProcess := true;(或者设置一个整型变量给予需要这样处理的过程一个过程标识,这样:if ProcessID <> CurID(本过程标识) then Exit )rn(4)TApplication.Minimize用于把应用程序的主窗体最小化;TApplication.rnRestore 用于把主窗体恢复成最小化或最大化前的大小。rn(5)当应用程序置于空闲状态时将触发OnIdle事件。rn(6)Applicatiion.Title属性决定程序最小化时的标题。rnrn4,√√√√√√√√Delphi5开发人员指南(第四章)√√√√√√√推荐阅读rnrn5,LoadBitmap() 不能返回调色板(无法调入256位图),用TBitmap.LoadFromResourceName 或TBitmap.LoadFromResourceIDrnrn6,从资源文件中调入资源,资源的标识符必须全部大写。rnrn7,调入自定义光标rnConst cr := 1;(必须为正数或-20以内的负数)rnrn$R cr.resrnrnScreen.Cursors[cr] := LoadCursor(hInstance,'CR');rnScreen.Cursor := cr;rnrn8,WM_WindowPosChanging 消息 窗体大小改变时发生rnGetSystemMetrics(SM_CYCAPTION)取得标题栏的高度,宽度SM_CXCAPTION。rnrn9,(1)在Windows NT 环境下 使用ExitWindowsEX()不会关闭系统,必须使用rnWIN32 API函数AdjustTokenPrivleges()授予SE_SHUTDOWN_NAME权限;rn(2) 调用ExitWindowsEX()或ExitWindows()时,每个应用程序会收到WM_QUERYENDSESSION消息,如果应用程序从这个消息返回非零值,表示允许关闭,rn运行一个无窗体应用程序时,需要通过拦截这个消息来确定是否关闭系统。rn(3) 可以使用SysUtils.pas中的Win32Check()函数,它将调用Win32 API函数GetLa stError()来显示错误信息。如:Win32Check(ExitWindowsEX(EWX_SHUTDOWN, 0);rnrn10,消息处理的过程命名约定:过程名与消息的标识符一致,但不要全部大写,不要rn有下划线。例:procedure CMDesignHitTest(var Message: TCMDesignHitTest); message CM_DESIGNHITTEST;添加Message.Result := 0 让控件在设计时响应消息rnrn11,一个应用程序内部发送消息 Perform()(不依赖API函数),SendMessage(),PostMessage()。rnrn12,(1)自定义消息rn范围:WM_USER + 100-$7FFF.(WM_USER-$7FFF)rn(2)在两个或多个应用程序之间发送消息:RegisterWindowsMessage();rnrn---------------------------------------------------------------------- 论坛

没有更多推荐了,返回首页