随笔分类 -  Delphi-VCL-Form

摘要:一个项目由很多Form组成,默认情况下在启动程序时,这些form都会被建立,这会黑屏很长时间,一种方法是用到Form时再建立,结果又发现如果Form设计复杂,建立的过程也会超过1秒以上,于是想到用线程实现。 在主窗口的oncreate事件中实现: TThread.CreateAnonymousThr 阅读全文
posted @ 2016-07-21 15:16 findumars 阅读(413) 评论(0) 推荐(0) 编辑
摘要:近日在用delphi写一个多文档应用程序,除了一个主界面是自动生成的,其他功能页面全部都是通过Application.CreateForm()动态生成的,也就是说在ProjectManager中点击程序名右键,最后一个选项,打开选项页,在Auto-Create Forms下只有主窗体。主窗体和功能页 阅读全文
posted @ 2016-06-16 00:39 findumars 阅读(708) 评论(0) 推荐(0) 编辑
摘要:第一步:在要实现快捷键的窗体中更改属性“KeyPreview”为True;第二步:在要实现快捷键的窗体中的OnKeyPress事件中填入一个过程名称(在Object Inspector中),填写好后回车就可转入事件代码填写部分;第三步:填写事件处理过程,下面给出一个例子:procedure TFrm 阅读全文
posted @ 2016-06-16 00:36 findumars 阅读(1426) 评论(0) 推荐(0) 编辑
摘要:第一种:需要引用Windows单元 [delphi] view plain copy ShowMessage(IntToStr(GetSystemMetrics(SM_CYSCREEN)-GetSystemMetrics(SM_CYFULLSCREEN)-GetSystemMetrics(SM_CY 阅读全文
posted @ 2016-06-16 00:27 findumars 阅读(1661) 评论(0) 推荐(0) 编辑
摘要:ddd 阅读全文
posted @ 2016-05-11 15:32 findumars 阅读(197) 评论(0) 推荐(0) 编辑
摘要:Windows支持多桌面,Delphi了支持多桌面,今天让程序也支持上多桌面了。 程序运行时会在标题栏最小化按钮旁边显示一个按钮(支持Theme效果),按钮引出一个菜单供用户选择要显示的桌面位置,通过它即可在多桌面间自由往返。(PS:可惜CSDN现在不能上图了。) 演示程序如下: [c-sharp] 阅读全文
posted @ 2016-04-15 00:03 findumars 阅读(633) 评论(0) 推荐(0) 编辑
摘要:在DLL动态链接库中封装VCL的MDI子窗体不多说了,看代码就应该明白了,曾经我遇到的问题,现在放出来大家共享! 这里是工程文件的部分: 在DLL中封装MDI子窗体需要重写DLL入口函数,具体代码如下: var DllApp: TApplication;//定义保存原DLL的TApplication 阅读全文
posted @ 2016-04-14 23:58 findumars 阅读(373) 评论(0) 推荐(0) 编辑
摘要:在DLL中的子窗体不会响应Tab按键的,这个时候就需要手动去指定Tab键的操作,但是前提是主窗体要向这个窗体发送一个消息,一个Tab键按下的消息。基本顺序是这样的: 1. 主窗体用Hook技术捕获Tab按键并向活动子窗体发送一个Tab键按下的消息 2. 子窗体手动定义一个Tab键被按下的处理(需要用 阅读全文
posted @ 2016-04-14 23:57 findumars 阅读(492) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/shuaihj/article/details/6371904 阅读全文
posted @ 2016-04-01 20:06 findumars 阅读(548) 评论(0) 推荐(0) 编辑
摘要:Delphi自带的许多控件都有停靠功能,而且操作非常简单,大可不必选用第三方控件. 基本上,要进行Dock操作至少需要两个组件,一个人被附着的Dock Site组件,另一个人附在Dock Site上的组件,Delphi所提供的可视化组件只有继承自TWinContrl的VCL组件才具有Dock Sit 阅读全文
posted @ 2016-04-01 19:29 findumars 阅读(587) 评论(0) 推荐(0) 编辑
摘要:Delphi中新建一个Form或者Frame时,它的字体都是西文习惯,这样就有可能造成在其他机器上由于字体的原因,窗体十分不美观.怎样才能为Delphi设置一个默认窗体,让它的字体Font符合中国习惯呢,而不用新建时再手工去修改窗体的Font,下面就是解决这个问题的方法.并且随之引出了Delphi的 阅读全文
posted @ 2016-04-01 18:27 findumars 阅读(522) 评论(0) 推荐(0) 编辑
摘要:1.在Delphi中,设置窗体的AlphaBlend := true;AlphaBlendValue := 0-255; AlphaBlendValue越小窗体的透明度就越高。这种方法将会使窗体和窗体中控件都变成透明。2.在Delphi中,设置TransparentColor := True与Tra 阅读全文
posted @ 2016-04-01 18:18 findumars 阅读(987) 评论(0) 推荐(0) 编辑
摘要:窗体上放一个TTimer,然后双击输入: 再添加一个新窗体和2个按钮: 执行Button1或者Button2之后,Timer1仍在主窗体上不停的绘制文字,这是为什么? 查看ShowModal的内容: 再看看Application.HandleMessage的源码: 顺便我还查了一下TTimer的源码 阅读全文
posted @ 2016-03-31 20:45 findumars 阅读(628) 评论(0) 推荐(0) 编辑
摘要:使用如下语句即可Pointer((@Application.MainForm)^) := Form1; 仔细想想和Pointer((Application.MainForm)) := Form1;有什么区别? 好像没区别?但是后者编译不过。 阅读全文
posted @ 2016-03-23 17:12 findumars 阅读(270) 评论(0) 推荐(0) 编辑
摘要:用Delphi画圆角Panel的方法: procedure TForm1.Button5Click(Sender: TObject);var fhr :Thandle;beginfhr:=CreateRoundRectRgn(0,0,panel1.width,panel1.height,4,4);S 阅读全文
posted @ 2016-03-17 17:45 findumars 阅读(2250) 评论(0) 推荐(0) 编辑
摘要:1.移动没有标题栏的窗体   在任何控件的OnMouseDown事件中加入以下代码:         2.创建圆角矩形窗体         阅读全文
posted @ 2016-03-14 23:00 findumars 阅读(242) 评论(0) 推荐(0) 编辑
摘要:通过SetWindowLongPtr来设置窗口样式  Application.MainFormOnTaskbar要设置为True,只有这样,主窗口才会显示在任务栏,接着下面的代码才会有意义。 $16030000是一些窗口样式的组合值,上面只是为了简化书写才写成数字,但注释里有这些样式的常量值。 接着 阅读全文
posted @ 2016-03-14 22:12 findumars 阅读(987) 评论(0) 推荐(0) 编辑
摘要:需要用到的一个函数:       program Project; usesForms, Windows, ufrmMain in 'ufrmMain.pas' {frmMain}; {$R *.res} beginApplication.Initialize;SetWindowLong(Appli 阅读全文
posted @ 2016-03-13 18:03 findumars 阅读(359) 评论(0) 推荐(0) 编辑
摘要:完全自定义窗体风格的实现 最小化到任务栏postmessage(Self.Handle,WM_SYSCOMMAND,SC_MINIMIZE,0); 最大化或还原procedure Tf_MainForm.RzToolButton1Click(Sender: TObject);var abd: TAp 阅读全文
posted @ 2016-03-02 23:43 findumars 阅读(887) 评论(0) 推荐(0) 编辑
摘要:前言:网上有很多介绍delphi创建闪屏的代码,大多只是在程序开启前显示一个闪屏,但是却没有说如何在闪屏上显示程序加载的进度,于是笔者有意思介绍一下这种闪屏方式。 1.创建一个窗体(TfrmSplash),放入一个TImageBox,加载一幅图片,调整好TImageBox与图片的大小,然后在其上放入 阅读全文
posted @ 2016-03-02 22:14 findumars 阅读(1095) 评论(0) 推荐(0) 编辑