2011年5月5日

delphi窗体动态设计 在系统运行时动态更改控件属性

摘要: http://hi.baidu.com/xtfnpgy/blog/item/e3eab3e7c95f2239b93820c9.html在应用程序的开发中,常常要将某些控件对象(如标签)用鼠标选中后进行拖动操作,用以改变控件的位置,在Delphi中如何实现这一功能呢?笔者想了一个方法:通过在 public 中定义全局变量用以跟踪 鼠标在移动和拖动控件时的坐标,然后在拖动结束时将鼠标的坐标值赋给控件的 TOP和LEFT属性,以达到拖动的目的。 举例如下:创建一个 Panel,再创建一个Label,通过编程使控件 Lable 可以在 Panel 中被拖放到任意位置。以下是具体实现过程: 1. 首先做 阅读全文

posted @ 2011-05-05 16:44 chulia 阅读(997) 评论(0) 推荐(0)

delphi制作透明的控件

摘要: http://hi.baidu.com/huoyl1982/blog/item/bb3ea6812a2da0d09123d93a.html透明的控件, 一般继承自TGraphicControl的(就是那些没有handle属性, 不能有focus的控件, 如image)都有Transparent属性. 对TWinControl类的控件, 要实现透明只要完成以下四步基本上就成了.1.在Create中设定ControlStyle :=ControlStyle - [csOpaque];2. override 它的CreateParams方法, exstyle 里加上WS_EX_TRANSPARENT 阅读全文

posted @ 2011-05-05 16:43 chulia 阅读(2058) 评论(0) 推荐(0)

线程与VCL的消息同步

摘要: http://www.zzyubo.com/runsoft/article.asp?id=34Delphi实现多线程很简单,得益于TThread的良好封装。若在线程中使用VCL,例如要宣告一个事件,并在线程中触发它,一般的方法是使用Synchronize。在Project中这么用可能没什么,但在Dll中呢?例如在链接库中封有窗口,并在里面实现一个与滚动条界面打交道的线程。当线程用Synchronize同步时,会被锁死,由此产生另外一种特效:移动鼠标,线程操作的滚动条就改变进度;否则进度条就不见动静。事实是线程被锁死了,准确的说是Synchronize中WaitForSingleObject函数 阅读全文

posted @ 2011-05-05 16:36 chulia 阅读(316) 评论(0) 推荐(0)

获取Windows消息名称(含VCL消息)

摘要: 获取Windows消息名称(含VCL消息)-1http://blog.csdn.net/DavidHsing/archive/2009/02/25/3935332.aspxMessageTypeNames 部分定义根据winuser.h和网上搜集而来。static const char * const MessageTypeNames[WM_USER + 1] ={ "WM_NULL",//0x0000 "WM_CREATE",//0x0001 "WM_DESTROY",//0x0002 "WM_MOVE",//0 阅读全文

posted @ 2011-05-05 16:33 chulia 阅读(513) 评论(0) 推荐(0)

C++ builder消息的运用

摘要: http://tech.e800.com.cn/articles/2010/17/1262842530085_1.html一、TApplication的OnMessage事件OnMessage事件只处理消息队列中的消息,SendMessage()发送的消息不会被截获。任何窗体接收到一个windows消息,都会触发一次此事件函数原型:typedef void __fastcall (__closure *TMessageEvent) (tagMSG &Msg,bool &Handled);Msg表示被截获的消息,Handled表示是否处理完成,为TRUE则防止被再次处理,设为FA 阅读全文

posted @ 2011-05-05 16:16 chulia 阅读(903) 评论(1) 推荐(0)

Windows中的消息详细列表

摘要: http://study.qqcf.com/web/209/22990.htm消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。 消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg,它在Windows单元中是这样声明的: type TMsg = packed record hwnd: HWND; //窗口句柄 message: UINT; //消息常量标识符 w 阅读全文

posted @ 2011-05-05 16:15 chulia 阅读(244) 评论(0) 推荐(0)

运行时控件的移动可以用

摘要: http://topic.csdn.net/t/20020430/08/690485.html如何移动控件,在DELPHI中见过在回答的,在C++中无人能答吗?http://topic.csdn.net/u/20070711/12/34bb1b52-98a3-4fe5-8ff1-cd2bc38b7574.html在程序运行时,怎么在按住鼠标左键的情况下移动控件 ??答:运行时控件的移动可以用 int __fastcall Perform(Cadinal Msg, int WParam, int LParam) 例子: void __fastcall TForm1::Edit1MouseMov 阅读全文

posted @ 2011-05-05 16:12 chulia 阅读(280) 评论(0) 推荐(0)

导航